डेटा प्रारूप विवरण भाषा

From Vigyanwiki

डाटा फॉर्मेट विवरण भाषा (डीएफडीएल, प्रायः डै-फो-डिल के रूप में उच्चारित किया जाता है), फरवरी 2021 में एक ओपन ग्रिड फोरम संस्तुति के रूप में प्रकाशित हुआ है, जो साधारणतयः सामान्य टेक्स्ट और बाइनरी डेटा का वर्णन करने के लिए मॉडलिंग भाषा है। डीएफडीएल मॉडल या स्कीमा किसी भी टेक्स्ट या बाइनरी डेटा को उसके स्थानीय प्रारूप से पढ़ने (या "पार्स करने") और किसी सुचना समुच्चय के एक उदाहरण के रूप में प्रस्तुत करने की अनुमति प्रदान करता है। (एक सुचना समुच्चय डेटा सामग्री का तार्किक प्रतिनिधित्व है, जो भौतिक प्रारूप से भिन्न होता है। उदाहरण के लिए, दो रिकॉर्ड्स भिन्न-भिन्न प्रारूप में हो सकते हैं, क्योंकि एक के पास नियत लंबाई के फील्ड होते हैं और दूसरे में सीमाओं का उपयोग होता है, लेकिन वे पूर्णतयः एक ही डेटा को सम्प्रेषित कर सकते हैं और दोनों को एक ही सुचना समुच्चय द्वारा प्रतिष्ठित किया जाएगा)। एक ही डीएफडीएल स्कीमा भी डेटा को एक सुचना समुच्चय के उदाहरण से लिए जा सकता है और उसे अपने स्थानीय प्रारूप में लिखा जा सकता है (या "क्रमबद्ध या सीरियलाइज्ड")।

डीएफडीएल वर्णनात्मक (डिस्क्रिप्टिव) होता है और निर्देशात्मक (प्रिस्क्रिप्टिव) नहीं होता है। डीएफडीएल एक डेटा प्रारूप नहीं है, और यह किसी विशेष डेटा प्रारूप के उपयोग को लागू करने की बाध्यता नहीं देता है। इसके बजाय, यह बहुत से विभिन्न प्रकार के डेटा प्रारूपों का वर्णन करने की एक मानक विधि प्रदान करता है। इस दृष्टिकोण के कई लाभ होते हैं।[1] यह एक अनुप्रयोग लेखक को उनकी आवश्यकताओं के अनुसार एक उचित डेटा प्रतिष्ठान डिज़ाइन करने की अनुमति प्रदान करता है जबकि इसे एक मानक विधि वर्णित किया जाता है जो साझा किया जा सकता है, जिससे अनेक प्रोग्राम प्रत्यक्ष डेटा का विनिमय कर सकते हैं।

डीएफडीएल इसे डब्ल्यू3सी एक्सएमएल स्कीमा 1.0 की सुविधाओं पर निर्माण करके यह प्राप्त करता है। इसमें एक्सएमएल स्कीमा का एक उपसमुच्चय उपयोग किया जाता है, जो गैर-एक्सएमएल डेटा के मॉडलिंग को संभव बनाता है। इस दृष्टिकोण की प्रेरणा एक पूरी तरह से नई स्कीमा भाषा का आविष्कार करने से बचना है, और यह सरलता से सामान्य टेक्स्ट और डीएफडीएल सूचना सेट के माध्यम से सामान्य टेक्स्ट और बाइनरी डेटा को संबंधित एक्सएमएल दस्तावेज़ में परिवर्तित करना सरल बनाना है।

शैक्षणिक सामग्री डीएफडीएल ट्यूटोरियल्स, वीडियो और कई हैंड्स-ऑन डीएफडीएल प्रयोगशालाओं के रूप में उपलब्ध है।

इतिहास

ग्रिड एपीआई को स्रोत के अनुसार डेटा को समझने की आवश्यकता के प्रतिक्रिया के अंतर्गत डीएफडीएल का निर्माण किया गया था। एक ऐसी भाषा की आवश्यकता थी जो स्थायी टेक्स्ट और बाइनरी डेटा प्रारूपों के विभिन्न प्रकार के मॉडलिंग की क्षमता रखती हो। एक वर्किंग ग्रुप को 2003 में वैश्विक ग्रिड फोरम (जो बाद में ओपन ग्रिड फोरम बन गया) में स्थापित किया गया था जो इस तरह की भाषा के लिए एक विनिर्देशिका बनाने के लिए निर्मित हुआ।

गैर-एक्सएमएल भौतिक अभ्यावेदन का वर्णन करने के लिए आवश्यक अतिरिक्त जानकारी ले जाने के लिए <xs:appinfo> एनोटेशन का उपयोग करते हुए, डब्ल्यू3सी एक्सएमएल स्कीमा के उपसमुच्चय पर भाषा को आधार बनाने का निर्णय लिया गया था। यह एक स्थापित दृष्टिकोण है जो आज वाणिज्यिक प्रणालियों में पहले से ही उपयोग किया जा रहा है। डीएफडीएल इस दृष्टिकोण को अपनाता है और इसे विवृत मानक में विकसित करता है जो कई टेक्स्ट या बाइनरी डेटा प्रारूपों का वर्णन करने में सक्षम है।

भाषा पर काम जारी रहा, जिसके परिणामस्वरूप जनवरी 2011 में ओजीएफ प्रस्तावित संस्तुति जीएफडी.174 के रूप में डीएफडीएल 1.0 विनिर्देश का प्रकाशन हुआ।

आधिकारिक ओजीएफ संस्तुति जीएफडी.240 है जो फरवरी 2021 में प्रकाशित हुई, जो सभी पूर्व संस्करणों को अप्रचलित करती है और आज तक नोट किए गए सभी समस्याओं को सम्मिलित करता है (https://github.com/OpenGridForum/DFDL/blob/master/docs/current/gwdrp-dfdl-v1.0.8-GFD-RP.240.htm के रूप में भी उपलब्ध है)। डीएफडीएल और इसकी विशेषताओं का सारांश ओजीएफ पर उपलब्ध है। विनिर्देशन से संबंधित किसी भी समस्या को गिटहब समस्या ट्रैकर्स का उपयोग करके ट्रैक किया जा रहा है।

कार्यान्वयन

डीएफडीएल प्रोसेसर का कार्यान्वयन जो डीएफडीएल स्कीमा का उपयोग करके डेटा को पार्स और क्रमबद्ध कर सकता है, उपलब्ध हैं।

गिटहब पर व्यावसायिक और वैज्ञानिक डेटा प्रारूपों का वर्णन करने वाले डीएफडीएल स्कीमा के लिए एक सार्वजनिक संग्रह स्थापित किया गया है। यूएन/ईडीआईएफएसीटी, एनएसीएचए, एमआईएल-एसटीडी-2045, एनआईटीएफ और आईएसओ8583 जैसे प्रारूपों के लिए डीएफडीएल स्कीमा निः शुल्क डाउनलोड के लिए उपलब्ध हैं।

उदाहरण

एक उदाहरण के रूप में निम्नलिखित टेक्स्ट डेटा स्ट्रीम ले जिसमें किसी व्यक्ति का नाम, आयु और स्थान दिया गया है:

इस डेटा के लिए यहां एक एक्सएमएल स्कीमा डॉक्यूमेंट के निम्नलिखित अंशों का वर्णन किया जा सकता है जो इस डेटा के लिए तार्किक मॉडल प्रदान करता है। फ़ील्ड के क्रम, नाम, प्रकार और गणनीयता (कार्डिनैलिटी) एक्सएमएल स्कीमा मॉडल द्वारा व्यक्त की जाती है।

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>

<xs:complexType name="person_type">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="age" type="xs:short"/>
    <xs:element name="county" type="xs:string"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

</xs:schema>

डेटा स्ट्रीम के भौतिक प्रतिनिधित्व को अतिरिक्त रूप से मॉडल करने के लिए, डीएफडीएल एक्सएमएल स्कीमा खंड को एक्सएस: एलिमेंट और एक्सएस: अनुक्रम ऑब्जेक्ट पर एनोटेशन के साथ निम्नानुसार बढ़ाता है:

<xs:schema xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>

<xs:complexType name="person_type">
  <xs:sequence>
    <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:sequence encoding="ASCII" sequenceKind="ordered" 
                       separator="," separatorType="infix" separatorPolicy="required"/>                   
    </xs:appinfo></xs:annotation>
    <xs:element name="name" type="xs:string">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element lengthKind="delimited" encoding="ASCII"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
    <xs:element name="age" type="xs:short">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element representation="text" lengthKind="delimited" encoding="ASCII"
                      textNumberRep="standard" textNumberPattern="#0" textNumberBase="10"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
    <xs:element name="county" type="xs:string">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element lengthKind="delimited" encoding="ASCII"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
    <xs:element name="country" type="xs:string">
      <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/">
        <dfdl:element lengthKind="delimited" encoding="ASCII"/>                   
      </xs:appinfo></xs:annotation>
    </xs:element>
  </xs:sequence>
</xs:complexType>

</xs:schema>

इन डीएफडीएल एनोटेशन पर प्रॉपर्टी विशेषताएं का उपयोग करके यह व्यक्त किया जाता है कि डेटा एक एएससीआईआई टेक्स्ट प्रारूप में प्रतिष्ठित है, जहां फ़ील्ड अस्थायी लंबाई के होते हैं और कॉमा द्वारा विभाजित होते हैं।

एक वैकल्पिक, अधिक कॉम्पैक्ट सिंटेक्स भी प्रदान किया जाता है, जहां डीएफडीएल प्रॉपर्टीज एक्सएमएल स्कीमा ऑब्जेक्ट्स पर नॉन-नेटिव एट्रिब्यूट के रूप में ले जाया जाता है।

<xs:schema xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>

<xs:complexType name="person_type">
  <xs:sequence dfdl:encoding="ASCII" dfdl:sequenceKind="ordered" 
               dfdl:separator="," dfdl:separatorType="infix" dfdl:separatorPolicy="required">
    <xs:element name="name" type="xs:string"
                dfdl:lengthKind="delimited" dfdl:encoding="ASCII"/>                   
    <xs:element name="age" type="xs:short"
                dfdl:representation="text" dfdl:lengthKind="delimited" dfdl:encoding="ASCII"
                dfdl:textNumberRep="standard" dfdl:textNumberPattern="##0" dfdl:textNumberBase="10"/>                   
    <xs:element name="county" type="xs:string"
                dfdl:lengthKind="delimited" dfdl:encoding="ASCII"/>                   
    <xs:element name="country" type="xs:string"
                dfdl:lengthKind="delimited" dfdl:encoding="ASCII"/>                   
  </xs:sequence>
</xs:complexType>

</xs:schema>

विशेषताएं

डीएफडीएल का लक्ष्य किसी भी टेक्स्ट या बाइनरी डेटा प्रारूप का प्रतिनिधित्व करने में सक्षम एक समृद्ध मॉडलिंग भाषा प्रदान करना है। यह लक्ष्य की दिशा में 1.0 रिलीज एक बड़ा कदम है। इसकी क्षमता में निम्नलिखित सपोर्ट सम्मिलित है:

  • टेक्स्ट डेटा प्रकार जैसे स्ट्रिंग, संख्या, ज़ोन डेसिमल, कैलेंडर और बूलियन
  • बाइनरी डेटा प्रकार जैसे दो के कॉम्प्लीमेंट पूर्णांक, बीसीडी, पैक्ड डेसीमल, फ्लोट, कैलेंडर और बूलियन
  • फिक्स्ड लेंथ डेटा और टेक्स्ट या बाइनरी मार्कअप द्वारा सीमांकित डेटा
  • भाषा डेटा संरचनाएँ COBOL, C और PL/1 जैसी भाषाओं में पाई गईं
  • उद्योग मानक जैसे सीएसवी, स्विफ्ट, फिक्स, एचएल7, एक्स12, एचआईपीएए, ईडीआईएफएसीटी, आईएसओ 8583
  • कोई एन्कोडिंग और एंडियन-नेस
  • यादृच्छिक लंबाई का बिट डेटा
  • टेक्स्ट संख्याओं और कैलेंडरों के लिए पैटर्न भाषाएँ
  • क्रमबद्ध, अव्यवस्थित और फ़्लोटिंग सामग्री
  • पार्सिंग और क्रमांकन पर डिफ़ॉल्ट मान
  • आउट-ऑफ़-बैंड डेटा के प्रबंधन की क्षमता निल मान है
  • निश्चित और परिवर्तनीय सरणियाँ
  • डायनेमिक डेटा को मॉडल करने के लिए चर सहित एक्सपाथ 2.0 अभिव्यक्ति भाषा
  • विकल्पों और वैकल्पिकता को हल करने के लिए स्पेक्युलेटिवे पार्सिंग और अन्य मैकेनिज्म
  • एक्सएमएल स्कीमा 1.0 नियमों का सत्यापन
  • एक स्कोपिंग मैकेनिज्म जो सामान्य प्रॉपर्टी मानों को कई एनोटेशन बिंदुओं पर लागू करने की अनुमति देता है
  • सूचना समुच्चय से डेटा में तत्वों को छिपाना
  • सूचना समुच्चय के लिए तत्व मानों की गणना

यह भी देखें

  • ओपन ग्रिड फोरम
  • डब्ल्यू3सी एक्सएमएल स्कीमा

संदर्भ


बाहरी संबंध