अब आरडीएफ भंडारण के साथ क्या हो रहा है?

Semantic Web и Linked Data подобны ближнему космосу: жизни там нет. Чтобы отправиться туда на более-менее длительный срок… ну, не знаю, что говорили вам в детстве в ответ на «хочу стать космонавтом». Но понаблюдать за происходящим можно и находясь на Земле; стать астрономом-любителем или даже профессионалом гораздо проще.

В статье речь пойдет о свежих, не старее нескольких месяцев, трендах из мира RDF-хранилищ. Метафора в первом абзаце была навеяна эпических размеров рекламной картинкой под катом.


महाकाव्य चित्र

अब आरडीएफ भंडारण के साथ क्या हो रहा है?

I. आरडीएफ एक्सेस के लिए ग्राफक्यूएल

वे कहते हैंग्राफक्यूएल का लक्ष्य एक सार्वभौमिक डेटाबेस एक्सेस भाषा बनना है। GraphQL का उपयोग करके आरडीएफ तक पहुंचने की क्षमता के बारे में क्या?

बॉक्स से बाहर यह अवसर निम्नलिखित द्वारा प्रदान किया जाता है:

यदि रिपॉजिटरी ऐसा अवसर प्रदान नहीं करती है, तो इसे उपयुक्त "रिज़ॉल्वर" लिखकर स्वतंत्र रूप से कार्यान्वित किया जा सकता है। उदाहरण के लिए, उन्होंने फ्रांसीसी परियोजना में यही किया डेटाटूरिज्म. या आप अब कुछ भी नहीं लिख सकते, बस ले सकते हैं हाइपरग्राफक्यूएल.

सिमेंटिक वेब और लिंक्ड डेटा के एक रूढ़िवादी अनुयायी के दृष्टिकोण से, यह सब, निश्चित रूप से, दुखद है, क्योंकि ऐसा लगता है कि यह अगले डेटा साइलो के आसपास निर्मित एकीकरण के लिए डिज़ाइन किया गया है, न कि उपयुक्त प्लेटफ़ॉर्म (निश्चित रूप से आरडीएफ स्टोर) के लिए। .

GraphQL की SPARQL से तुलना करने पर प्रभाव दुगने हैं।

  • एक ओर, GraphQL SPARQL के दूर के रिश्तेदार की तरह दिखता है: यह पुन: नमूनाकरण और प्रश्नों की बहुलता की समस्याओं को हल करता है जो REST के लिए विशिष्ट हैं - जिसके बिना, शायद, इस पर विचार करना संभव नहीं होगा पूछताछ भाषा, कम से कम वेब के लिए;
  • दूसरी ओर, GraphQL की कठोर स्कीमा निराशाजनक है। तदनुसार, आरडीएफ की पूर्ण संवेदनशीलता की तुलना में इसकी "आत्मनिरीक्षणशीलता" बहुत सीमित लगती है। और संपत्ति पथों का कोई एनालॉग नहीं है, इसलिए यह भी स्पष्ट नहीं है कि यह "ग्राफ-" क्यों है।

द्वितीय. MongoDB के लिए एडेप्टर

पिछली प्रवृत्ति का पूरक प्रवृत्ति।

  • в Stardog теперь शायद - विशेष रूप से, सभी एक ही ग्राफक्यूएल पर - MongoDB डेटा की मैपिंग को वर्चुअल आरडीएफ ग्राफ़ में कॉन्फ़िगर करें;
  • GraphDB с недавних пор यह अनुमति देता है MongoDB क्वेरी पर SPARQL में टुकड़े डालें।

यदि हम JSON स्रोतों के एडेप्टर के बारे में अधिक व्यापक रूप से बात करते हैं, जो इन स्रोतों में संग्रहीत JSON को RDF के रूप में प्रस्तुत करने के लिए कमोबेश "फ़्लाई पर" अनुमति देते हैं, तो हम काफी लंबे समय से चले आ रहे को याद कर सकते हैं SPARQL जनरेट करें, जिसे समायोजित किया जा सकता है, उदाहरण के लिये, अपाचे जेना को।

पहले दो रुझानों को सारांशित करते हुए, हम कह सकते हैं कि आरडीएफ भंडारण "पॉलीग्लॉट दृढ़ता" की स्थितियों में एकीकरण और संचालन के लिए पूर्ण तत्परता प्रदर्शित करते हैं। हालाँकि, यह ज्ञात है कि यह उत्तरार्द्ध लंबे समय से फैशन से बाहर है, और इसे प्रतिस्थापित किया जा रहा है आ रहा है बहु-मॉडल. आरडीएफ भंडारण की दुनिया में मल्टी-मॉडलिंग के बारे में क्या?

संक्षेप में, कोई रास्ता नहीं. मैं मल्टी-मॉडल डीबीएमएस के विषय पर एक अलग लेख समर्पित करना चाहूंगा, लेकिन अभी यह ध्यान दिया जा सकता है कि वर्तमान में ग्राफ़ मॉडल पर "आधारित" कोई मल्टी-मॉडल डीबीएमएस नहीं हैं (आरडीएफ को इसका एक प्रकार माना जा सकता है) . कुछ छोटे मल्टी-मॉडलिंग - वैकल्पिक एलपीजी ग्राफ मॉडल के लिए आरडीएफ भंडारण समर्थन - पर चर्चा की जाएगी खंड वी.

तृतीय. ओएलटीपी बनाम ओलाप

हालाँकि, वही गार्टनर Ð ¿Ð ¸ ÑÐμÑ,वह मल्टीमॉडल मुख्य रूप से एक अनिवार्य शर्त है संचालन कक्ष डीबीएमएस। यह समझने योग्य है: "बहुभिन्नरूपी भंडारण" की स्थिति में, मुख्य समस्याएँ लेन-देन को लेकर उत्पन्न होती हैं।

लेकिन OLTP-OLAP पैमाने पर RDF भंडारण कहाँ स्थित हैं? मैं इस प्रकार उत्तर दूँगा: न वहाँ, न यहाँ। यह इंगित करने के लिए कि उनका उद्देश्य क्या है, किसी तीसरे संक्षिप्तीकरण की आवश्यकता है। एक विकल्प के रूप में मैं सुझाव दूंगा ओलिप - ऑनलाइन बौद्धिक प्रसंस्करण।

हालाँकि, फिर भी:

  • ग्राफडीबी में लागू MongoDB के साथ एकीकरण तंत्र कम से कम नहीं हैं इरादा लेखन प्रदर्शन के मुद्दों पर काम करना;
  • स्टारडॉग और भी आगे और पूरी तरह से जाता है पुनर्लेखन इंजन, फिर से रिकॉर्डिंग प्रदर्शन में सुधार के लक्ष्य के साथ।

А теперь разрешите представить нового игрока на рынке. от создателей IBM Netezza и Amazon Redshift — AnzoGraph. इस पर आधारित उत्पाद के विज्ञापन की एक तस्वीर लेख की शुरुआत में पोस्ट की गई थी। AnzoGraph स्वयं को GOLAP समाधान के रूप में स्थापित करता है। आपको विंडो फ़ंक्शंस के साथ SPARQL कैसा लगा? —

SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  …  }

चतुर्थ. रॉक्सडीबी

पहले से ही उच्चतर एक लिंक था स्टारडॉग 7 बीटा की घोषणा में, जिसमें कहा गया था कि स्टारडॉग एक अंतर्निहित भंडारण प्रणाली के रूप में रॉक्सडीबी का उपयोग करने जा रहा था - एक कुंजी-मूल्य स्टोर, Google के लेवलडीबी का एक फेसबुक फोर्क। एक निश्चित प्रवृत्ति के बारे में बात करना क्यों उचित है?

सबसे पहले, निर्णय लेते हुए विकिपीडिया लेख, न केवल RDF स्टोरेज को RocksDB में "प्रत्यारोपित" किया जाता है। ArangoDB, MongoDB, MySQL और MariaDB, Cassandra में RocksDB को स्टोरेज इंजन के रूप में उपयोग करने की परियोजनाएं हैं।

दूसरे, प्रासंगिक विषयों पर प्रोजेक्ट (अर्थात उत्पाद नहीं) RocksDB पर बनाए जाते हैं।

उदाहरण के लिए, eBay RocksDB का उपयोग करता है मंच आपके "ज्ञान ग्राफ" के लिए। वैसे, यह पढ़ना मज़ेदार है: क्वेरी भाषा एक घरेलू प्रारूप के रूप में शुरू हुई थी, लेकिन हाल ही में यह SPARQL की तरह परिवर्तित हो रही है. जैसा कि मजाक में कहा गया है: चाहे हम कितना भी ज्ञान का ग्राफ बना लें, हम फिर भी आरडीएफ के साथ ही समाप्त होते हैं।

एक और उदाहरण - जो कुछ महीने पहले सामने आया था विकिडेटा इतिहास क्वेरी सेवा. इसकी शुरूआत से पहले, विकिडेटा ऐतिहासिक जानकारी तक पहुँचना आवश्यक था एमडब्ल्यूएपीआई मानक मीडियाविकी एपीआई के लिए। अब शुद्ध SPARQL से बहुत कुछ संभव है। "हुड के नीचे" RocksDB भी है। वैसे, ऐसा लगता है कि WDHQS उस व्यक्ति द्वारा बनाया गया था, जिसने फ़्रीबेस को Google नॉलेज ग्राफ़ में आयात किया था।

वी. एलपीजी समर्थन

मैं आपको एलपीजी ग्राफ़ और आरडीएफ ग्राफ़ के बीच मुख्य अंतर याद दिलाना चाहता हूँ।

एलपीजी में, स्केलर गुणों को किनारे के उदाहरणों को सौंपा जा सकता है, जबकि आरडीएफ में उन्हें केवल किनारे "प्रकारों" को सौंपा जा सकता है (लेकिन न केवल स्केलर गुण, बल्कि सामान्य कनेक्शन भी)। एलपीजी की तुलना में आरडीएफ की यह सीमा पर काबू पाने एक या दूसरी मॉडलिंग तकनीक। आरडीएफ की तुलना में एलपीजी की सीमाओं को पार करना अधिक कठिन है, लेकिन एलपीजी ग्राफ आरडीएफ ग्राफ की तुलना में हरारी पाठ्यपुस्तक के चित्रों की तरह हैं, यही कारण है कि लोग उन्हें चाहते हैं।

जाहिर है, "एलपीजी समर्थन" का कार्य दो भागों में आता है:

  1. आरडीएफ मॉडल में बदलाव करना जिससे इसमें एलपीजी संरचनाओं का अनुकरण करना संभव हो सके;
  2. आरडीएफ क्वेरी भाषा में परिवर्तन करना जिससे इस संशोधित मॉडल में डेटा तक पहुंच संभव हो सके, या लोकप्रिय एलपीजी क्वेरी भाषाओं में इस मॉडल से क्वेरी करने की क्षमता लागू की जा सके।

वी.1. डेटा मॉडल

यहां कई संभावित दृष्टिकोण हैं।

वी.1.1. सिंगलटन संपत्ति

आरडीएफ और एलपीजी में सामंजस्य स्थापित करने का संभवतः सबसे शाब्दिक तरीका है सिंगलटन संपत्ति:

  • इसके बजाय, उदाहरण के लिए, विधेय :isMarriedTo विधेय का प्रयोग किया जाता है :isMarriedTo1, :isMarriedTo2 और इतने पर।
  • ये विधेय फिर नए त्रिक के विषय बन जाते हैं: :isMarriedTo1 :since "2013-09-13"^^xsd:date आदि
  • विधेय के इन उदाहरणों का एक सामान्य विधेय के साथ संबंध प्रपत्र के त्रिगुणों द्वारा स्थापित किया जाता है :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • जाहिर है, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, लेकिन इस बारे में सोचें कि आपको सिर्फ लिखना क्यों नहीं चाहिए :isMarriedTo1 rdf:type :isMarriedTo.

"एलपीजी समर्थन" की समस्या का समाधान यहां आरडीएफएस स्तर पर किया गया है। इस तरह के निर्णय के लिए उपयुक्त में शामिल किए जाने की आवश्यकता होती है मानक. आरडीएफ स्टोर्स के लिए कुछ बदलावों की आवश्यकता हो सकती है जो संलग्न परिणामों का समर्थन करते हैं, लेकिन अभी के लिए, सिंगलटन प्रॉपर्टी को सिर्फ एक अन्य मॉडलिंग तकनीक के रूप में सोचा जा सकता है।

वी.1.2. पुनरावलोकन सही हुआ

कम अनुभवहीन दृष्टिकोण इस अहसास से उपजा है कि संपत्ति के उदाहरण ट्रिपल द्वारा पूरी तरह से तात्कालिक हैं। त्रिक के बारे में कुछ कहने में सक्षम होने से, हम संपत्ति के उदाहरणों के बारे में बात करने में सक्षम होंगे।

इनमें से सबसे मजबूत दृष्टिकोण है आरडीएफ*, उर्फ ​​आरडीआर, जन्म ब्लेज़ग्राफ की गहराई में. यह शुरू से ही है निर्वाचित आपके और AnzoGraph के लिए। दृष्टिकोण की दृढ़ता इस तथ्य से निर्धारित होती है कि इसके ढांचे के भीतर पेशकश कर रहे हैं में तदनुरूप परिवर्तन आरडीएफ शब्दार्थ. हालाँकि, बात बेहद सरल है। आरडीएफ के टर्टल क्रमांकन में अब आप कुछ इस तरह लिख सकते हैं:

<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .

वी.1.3. अन्य दृष्टिकोण

आप औपचारिक शब्दार्थ से परेशान नहीं हो सकते हैं, लेकिन बस यह मान लें कि त्रिक के कुछ निश्चित पहचानकर्ता हैं, जो निश्चित रूप से, यूआरआई हैं, और इन यूआरआई के साथ नए त्रिक बनाते हैं। SPARQL में इन URI तक पहुंच प्रदान करना ही शेष है। इसलिए आता है स्टारडॉग.

एलेग्रोग्राफ में चलो चलते हैं मध्यवर्ती तरीके से. यह ज्ञात है कि एलेग्रोग्राफ में ट्रिपलेट पहचानकर्ता वहाँ है, लेकिन ट्रिपल विशेषताओं को लागू करते समय वे टिके नहीं रहते। हालाँकि, यह अभी भी औपचारिक शब्दार्थ से बहुत दूर है। उल्लेखनीय है कि ट्रिपल विशेषताएँ यूआरआई नहीं हैं, और इन विशेषताओं का मान भी केवल शाब्दिक हो सकता है। एलपीजी समर्थकों को वही मिलता है जो वे चाहते थे। विशेष रूप से आविष्कृत एनक्यूएक्स प्रारूप में, आरडीएफ* के लिए ऊपर दिए गए उदाहरण के समान एक उदाहरण इस तरह दिखता है:

:bob :marriedTo :alice {"since" : "2013-09-13"}

वी.2. क्वेरी भाषाएँ

मॉडल स्तर पर एक या दूसरे तरीके से एलपीजी का समर्थन करने के बाद, आपको ऐसे मॉडल में डेटा पर क्वेरी करना संभव बनाना होगा।

 SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }

  • एन्जोग्राफ भी सपोर्ट करता है स्पार्कल* और समर्थन देने जा रहा है बीजलेख, Neo4j में एक क्वेरी भाषा।
  • स्टारडॉग अपना समर्थन करता है विस्तार स्पार्कल और दोबारा ग्रेमलिन. आप कुछ इस तरह का उपयोग करके SPARQL में ट्रिपल यूआरआई और "मेटा-सूचना" प्राप्त कर सकते हैं:

SELECT * {
    BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
    ?id :since ?since
}

  • एलेग्रोग्राफ़ भी अपना समर्थन करता है विस्तार स्पार्कल:

 SELECT * { ("since" ?since)  franz:attributesNameValue  ( :bob :marriedTo ?wife ) }

वैसे, ग्राफडीबी ने एक समय एलपीजी का समर्थन किए बिना टिंकरपॉप/ग्रेमलिन का समर्थन किया था, लेकिन यह संस्करण 8.0 या 8.1 में बंद हो गया।

VI. लाइसेंसों पर सख्ती

Никаких прибавлений в пересечении множеств «triplestore of choice» и «open source triplestore» в последнее время не случалось. Новым RDF-хранилищам с открытым исходным кодом далеко до того, чтобы стать хорошим выбором для повседневного использования, а исходный код новых RDF-хранилищ, которые хотелось бы поиспользовать (того же AnzoGraph), закрыт. Скорее можно говорить даже об убавлениях…

बेशक, ओपन सोर्स को अतीत में बंद नहीं किया गया है, लेकिन कुछ ओपन सोर्स रिपॉजिटरी को अब धीरे-धीरे चुनने लायक नहीं माना जाता है। Virtuoso, जिसका एक ओपनसोर्स संस्करण है, मेरी राय में, बग में डूबा हुआ है। ब्लेज़ग्राफ को AWS द्वारा खरीदा गया और अमेज़ॅन नेप्च्यून का आधार बनाया गया; अब यह स्पष्ट नहीं है कि कम से कम एक और रिलीज़ होगी या नहीं। केवल जेना ही बची है...

यदि ओपन सोर्स बहुत महत्वपूर्ण नहीं है, लेकिन आप बस इसे आज़माना चाहते हैं, तो सब कुछ पहले की तुलना में कम गुलाबी है। उदाहरण के लिए:

  • स्टारडॉग बंद हो जाता है मुफ़्त संस्करण वितरित करें (हालाँकि, नियमित संस्करण की परीक्षण अवधि दोगुनी हो गई है);
  • в ग्राफडीबी क्लाउड, где раньше можно было выбрать бесплатный базовый план, приостановлена регистрация новых пользователей .

सामान्य तौर पर, औसत आईटी व्यक्ति के लिए, स्थान अधिक से अधिक दुर्गम होता जा रहा है, इसका विकास निगमों का भाग्य बनता जा रहा है।

स्रोत: www.habr.com

एक टिप्पणी जोड़ें