RDF भण्डारणमा अहिले के भइरहेको छ?

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

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


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

RDF भण्डारणमा अहिले के भइरहेको छ?

I. RDF पहुँचको लागि GraphQL

उनीहरु भन्छनGraphQL ले विश्वव्यापी डाटाबेस पहुँच भाषा बन्ने लक्ष्य राखेको छ। GraphQL प्रयोग गरेर RDF पहुँच गर्ने क्षमताको बारेमा के हो?

बक्स बाहिर यो अवसर द्वारा प्रदान गरिएको छ:

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

सिमान्टिक वेब र लिङ्क गरिएको डाटाको एक अर्थोडक्स अनुयायीको दृष्टिकोणबाट, यो सबै, अवश्य पनि, दुःखी छ, किनकि यो अर्को डाटा साइलो वरिपरि निर्मित एकीकरणको लागि डिजाइन गरिएको देखिन्छ, र उपयुक्त प्लेटफर्महरू छैनन् (RDF स्टोरहरू, अवश्य)। ।

GraphQL लाई SPARQL सँग तुलना गर्ने प्रभावहरू दुई गुणा हुन्छन्।

  • एकातिर, GraphQL SPARQL को टाढाको नातेदार जस्तो देखिन्छ: यसले पुन: नमूना र बहुविध प्रश्नहरूको समाधान गर्दछ जुन REST को लागि सामान्य हुन्छ - जसको बिना, सम्भवतः, यो विचार गर्न सम्भव हुँदैन। प्रश्न भाषा, कम्तिमा वेब को लागी;
  • अर्कोतर्फ, GraphQL को कठोर योजना निराशाजनक छ। तदनुसार, RDF को पूर्ण रिफ्लेक्सिभिटीको तुलनामा यसको "आत्मविवेकीपन" धेरै सीमित देखिन्छ। र त्यहाँ सम्पत्ती मार्गहरूको कुनै एनालग छैन, त्यसैले यो किन "ग्राफ-" हो भन्ने पनि स्पष्ट छैन।

II। MongoDB का लागि एडेप्टरहरू

अघिल्लोको लागि पूरक प्रवृत्ति।

  • в Stardog теперь सम्भवतः - विशेष गरी, सबै समान GraphQL मा - भर्चुअल RDF ग्राफहरूमा MongoDB डाटाको म्यापिङ कन्फिगर गर्नुहोस्;
  • GraphDB с недавних пор यसलाई अनुमति दिन्छ MongoDB क्वेरीमा SPARQL मा टुक्राहरू घुसाउनुहोस्।

यदि हामी JSON स्रोतहरूमा एडेप्टरहरूको बारेमा थप व्यापक रूपमा कुरा गर्छौं, जसले यी स्रोतहरूमा भण्डारण गरिएको JSON लाई RDF को रूपमा प्रतिनिधित्व गर्न "उडानमा" अनुमति दिन्छ, हामी धेरै लामो समयदेखिको सम्झना गर्न सक्छौं। SPARQL उत्पन्न गर्नुहोस्समायोजन गर्न सकिने, उदाहरणका लागि, Apache Jena लाई।

पहिलो दुई प्रवृतिहरू संक्षेपमा, हामी भन्न सक्छौं कि RDF भण्डारहरूले "पोलिग्लोट दृढता" को अवस्थामा एकीकरण र सञ्चालनको लागि पूर्ण तत्परता देखाउँछन्। यो ज्ञात छ, तथापि, यो पछिल्लो लामो फेसन बाहिर भएको छ, र द्वारा प्रतिस्थापित भइरहेको छ आउँदैछ बहु मोडेल। RDF भण्डारणको संसारमा बहु-मोडलिंगको बारेमा के हो?

छोटकरीमा, कुनै तरिका छैन। म बहु-मोडेल DBMSs को विषयमा छुट्टै लेख समर्पित गर्न चाहन्छु, तर अहिलेको लागि यो नोट गर्न सकिन्छ कि हाल ग्राफ मोडेलमा "आधारित" बहु-मोडेल DBMS हरू छैनन् (RDF यसको एक प्रकार मान्न सकिन्छ) । केही साना बहु-मोडलिंग - वैकल्पिक LPG ग्राफ मोडेलको लागि RDF भण्डारण समर्थन - मा छलफल गरिनेछ खण्ड वि.

III। OLTP बनाम OLAP

यद्यपि, उही गार्टनर तिनी लेख्छन्त्यो मल्टिमोडेल मुख्यतयाको लागि अनिवार्य शर्त हो सञ्चालन कोठाहरू DBMS। यो बुझ्न सकिने छ: "बहुभिन्न भण्डारण" को अवस्थामा, मुख्य समस्या लेनदेन संग उत्पन्न हुन्छ।

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

यद्यपि, अझै पनि:

  • GraphDB मा लागू गरिएको MongoDB सँग एकीकरण संयन्त्रहरू कम छैनन् अभिप्रेरित लेखन कार्यसम्पादन मुद्दाहरूको वरिपरि काम गर्न;
  • Stardog अझ अगाडि र पूर्ण रूपमा जान्छ पुन: लेख्छ इन्जिन, फेरि रेकर्डिङ प्रदर्शन सुधार गर्ने लक्ष्यको साथ।

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

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

IV। RocksDB

पहिले नै उच्च त्यहाँ एक लिङ्क थियो Stardog 7 Beta को घोषणामा, जसले भनेको थियो कि Stardog ले RocksDB लाई अन्तर्निहित भण्डारण प्रणालीको रूपमा प्रयोग गर्न गइरहेको छ - एक प्रमुख-मूल्य स्टोर, Google को LevelDB को Facebook फोर्क। किन यो एक निश्चित प्रवृत्ति को बारे मा कुरा गर्न लायक छ?

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

दोस्रो, सान्दर्भिक विषयहरूमा परियोजनाहरू (अर्थात उत्पादनहरू होइन) RocksDB मा सिर्जना गरिन्छ।

उदाहरण को लागी, eBay मा RocksDB प्रयोग गर्दछ प्लेटफर्म तपाईको "ज्ञान ग्राफ" को लागी। वैसे, यो पढ्न रमाइलो छ: क्वेरी भाषा घरेलु ढाँचाको रूपमा सुरु भयो, तर हालसालै यो SPARQL जस्तै बन्न ट्रान्जिसन हुँदैछ।। मजाकमा जस्तै: हामीले जतिसुकै ज्ञानको ग्राफ बनायौं, हामी अझै पनि RDF सँग समाप्त हुन्छौं।

अर्को उदाहरण - केहि महिना अघि देखा परेको छ विकिडाटा इतिहास क्वेरी सेवा। यसको परिचय अघि, विकिडाटा ऐतिहासिक जानकारी मार्फत पहुँच गर्न आवश्यक थियो MWAPI मानक Mediawiki API मा। अब शुद्ध SPARQL संग धेरै सम्भव छ। "हुड मुनि" त्यहाँ RocksDB पनि छ। वैसे, WDHQS बनाइएको हो, यस्तो देखिन्छ, Google Knowledge Graph मा Freebase आयात गर्ने व्यक्तिद्वारा।

V. LPG समर्थन

मलाई LPG ग्राफ र RDF ग्राफहरू बीचको मुख्य भिन्नताको सम्झना गरौं।

LPG मा, स्केलर गुणहरू किनारा उदाहरणहरूमा तोक्न सकिन्छ, जबकि RDF मा तिनीहरू केवल किनारा "प्रकारहरू" मा तोक्न सकिन्छ (तर स्केलर गुणहरू मात्र होइन, तर साधारण जडानहरू पनि)। LPG को तुलनामा RDF को यो सीमा परास्त एक वा अर्को मोडेलिङ प्रविधि। RDF को तुलनामा LPG को सीमितताहरू पार गर्न धेरै गाह्रो छ, तर LPG ग्राफहरू RDF ग्राफहरू भन्दा हरारी पाठ्यपुस्तकका चित्रहरू जस्तै छन्, त्यसैले मानिसहरू तिनीहरूलाई चाहन्छन्।

स्पष्ट रूपमा, "LPG समर्थन" को कार्य दुई भागहरूमा पर्दछ:

  1. RDF मोडेलमा परिवर्तनहरू गर्दै जसले यसलाई LPG संरचनाहरू अनुकरण गर्न सम्भव बनाउँदछ;
  2. यो परिमार्जित मोडेलमा डाटा पहुँच गर्न सम्भव बनाउने RDF क्वेरी भाषामा परिवर्तनहरू गर्दै, वा लोकप्रिय LPG क्वेरी भाषाहरूमा यो मोडेलमा प्रश्नहरू गर्ने क्षमता कार्यान्वयन गर्दै।

V.1। डाटा मोडेल

यहाँ धेरै सम्भावित दृष्टिकोणहरू छन्।

V.1.1। सिंगलटन सम्पत्ति

RDF र LPG मिलाउनको लागि सबैभन्दा शाब्दिक दृष्टिकोण सायद हो सिंगलटन सम्पत्ति:

  • को सट्टा, उदाहरण को लागी, predicate :isMarriedTo predicates प्रयोग गरिन्छ :isMarriedTo1, :isMarriedTo2 र यति।
  • यी भविष्यवाणीहरू त्यसपछि नयाँ त्रिगुटहरूको विषय बन्छन्: :isMarriedTo1 :since "2013-09-13"^^xsd:date र अन्य।
  • एक साझा predicate संग predicates को यी उदाहरणहरु को जडान फारम को triplets द्वारा स्थापित छ :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • यो स्पष्ट छ कि rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, तर तपाईले किन लेख्नु हुँदैन भनेर सोच्नुहोस् :isMarriedTo1 rdf:type :isMarriedTo.

"LPG समर्थन" को समस्या यहाँ RDFS स्तरमा हल गरिएको छ। यस्तो निर्णय उपयुक्तमा समावेश गर्न आवश्यक छ मानक। संलग्न परिणामहरूलाई समर्थन गर्ने RDF स्टोरहरूको लागि केही परिवर्तनहरू आवश्यक हुन सक्छ, तर अहिलेको लागि, सिंगलटन सम्पत्तिलाई अर्को मोडलिङ प्रविधिको रूपमा सोच्न सकिन्छ।

V.1.2। Reification सही भयो

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

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

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

V.1.3। अन्य दृष्टिकोणहरू

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

Allegrograph मा गए मध्यवर्ती तरिकामा। यो ज्ञात छ कि एलिग्रोग्राफमा ट्रिपलेट पहिचानकर्ताहरू त्यहाँ छ, तर ट्रिपल विशेषताहरू लागू गर्दा तिनीहरू टाँसिदैनन्। यद्यपि, यो अझै औपचारिक अर्थशास्त्रबाट धेरै टाढा छ। यो उल्लेखनीय छ कि ट्रिपलेट विशेषताहरू URI होइनन्, र यी विशेषताहरूको मान पनि शाब्दिक मात्र हुन सक्छ। LPG अनुयायीहरूले उनीहरूले चाहेको ठीक पाउँछन्। विशेष आविष्कार गरिएको NQX ढाँचामा, RDF* को लागि माथिको जस्तै एउटा उदाहरण यस्तो देखिन्छ:

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

V.2। प्रश्न भाषाहरू

LPG लाई मोडेल स्तरमा एक वा अर्को तरिकामा समर्थन गरिसकेपछि, तपाईंले यस्तो मोडेलमा डाटामा प्रश्नहरू गर्न सम्भव बनाउन आवश्यक छ।

  • RDF * प्रश्नहरूको लागि Blazegraph समर्थन गर्दछ स्पार्कल* и Gremlin। एउटा SPARQL* क्वेरी यस्तो देखिन्छ:

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

  • Anzograph पनि समर्थन गर्दछ स्पार्कल* र समर्थन गर्न जाँदैछ साइफर, Neo4j मा एक क्वेरी भाषा।
  • Stardog आफ्नै समर्थन गर्दछ विस्तार SPARQL र फेरी ग्रेम्लिन। तपाईंले SPARQL मा ट्रिपलेट URI र "मेटा-जानकारी" प्राप्त गर्न सक्नुहुन्छ यस प्रकारको केहि प्रयोग गरेर:

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

  • Allegrograph पनि आफ्नै समर्थन गर्दछ विस्तार स्पार्कल:

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

वैसे, GraphDB ले एक पटक Tinkerpop/Gremlin लाई LPG लाई समर्थन नगरी समर्थन गर्यो, तर यो संस्करण 8.0 वा 8.1 मा रोकियो।

VI। लाइसेन्स कडाई

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

अवश्य पनि, खुला स्रोत विगतमा बन्द गरिएको छैन, तर केही खुला स्रोत भण्डारहरू अब बिस्तारै छनौट गर्न लायकको रूपमा देखिँदैनन्। Virtuoso, जसको ओपनसोर्स संस्करण छ, मेरो विचारमा बगहरूमा डुबिरहेको छ। Blazegraph AWS द्वारा खरिद गरिएको थियो र Amazon Neptune को आधार बनाइएको थियो; अब यो स्पष्ट छैन कि त्यहाँ कम्तिमा एक थप रिलीज हुनेछ। जेना मात्र बाँकी छ...

यदि खुला स्रोत धेरै महत्त्वपूर्ण छैन, तर तपाईं यसलाई प्रयास गर्न चाहनुहुन्छ भने, त्यसपछि सबै कुरा पनि पहिले भन्दा कम गुलाबी छ। उदाहरणका लागि:

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

सामान्यतया, औसत आईटी व्यक्तिको लागि, ठाउँ थप र अधिक दुर्गम हुँदै गइरहेको छ; यसको विकास निगमहरूको धेरै बनिरहेको छ।

स्रोत: www.habr.com

एक टिप्पणी थप्न