ما الذي يحدث مع مستودعات RDF الآن؟

يشبه الويب الدلالي والبيانات المرتبطة الفضاء الخارجي: لا توجد حياة هناك. للذهاب إلى هناك لفترة طويلة أو أقل ... لا أعرف ما قالوه لك عندما كنت طفلاً ردًا على "أريد أن أصبح رائد فضاء." لكن يمكنك مشاهدة ما يحدث أثناء وجودك على الأرض ؛ أن تصبح فلكيًا هاوًا أو حتى محترفًا أسهل بكثير.

ستركز المقالة على الاتجاهات الجديدة ، التي لا يزيد عمرها عن بضعة أشهر ، من عالم تخزين RDF. الاستعارة في الفقرة الأولى مستوحاة من صورة ترويجية ملحمية أسفل المقطع.


صورة ملحمية

ما الذي يحدث مع مستودعات RDF الآن؟

I. GraphQL للوصول إلى RDF

يقولونأن GraphQL تدعي أنها لغة الوصول إلى قاعدة البيانات العالمية. وماذا عن القدرة على الوصول باستخدام GraphQL إلى RDF؟

خارج الصندوق ، يتم توفير هذه الفرصة من خلال:

إذا لم يوفر المستودع مثل هذه الفرصة ، يتم تنفيذها بشكل مستقل عن طريق كتابة "المحلل" المناسب (محلل). تم ذلك ، على سبيل المثال ، في المشروع الفرنسي سياحة البيانات. أو لا يمكنك كتابة أي شيء بالفعل ، ولكن فقط خذ هايبرغرافQL.

من وجهة نظر أحد المتابعين الأرثوذكس للويب الدلالي والبيانات المرتبطة ، كل هذا ، بالطبع ، محزن ، لأنه يبدو أنه مخصص للتكامل المبني حول صومعة البيانات التالية ، وليس الأنظمة الأساسية المناسبة (بالطبع ، مخازن RDF) .

الانطباعات من مقارنة GraphQL مع SPARQL ذات شقين.

  • من ناحية أخرى ، تبدو GraphQL كقريب بعيد لـ SPARQL: فهي تحل مشاكل إعادة الاختيار والاستعلامات المتعددة التي تعتبر نموذجية لـ REST - والتي بدونها ، على الأرجح ، لن يكون من الممكن التفكير فيها لغة الاستعلام، على الأقل للويب ؛
  • من ناحية أخرى ، يزعج المخطط الصارم لـ GraphQL. وفقًا لذلك ، يبدو أن "استبطانه" محدود للغاية مقارنةً بالانعكاسية الكاملة لـ RDF. ولا يوجد تناظرية لمسارات الملكية ، لذلك ليس من الواضح تمامًا سبب كونه "رسم بياني-".

ثانيًا. محولات لـ MongoDB

اتجاه مكمل للاتجاه السابق.

  • في Stardog الآن ربما - على وجه الخصوص ، الكل على نفس GraphQL - تكوين عرض بيانات MongoDB في رسوم بيانية RDF افتراضية ؛
  • Ontotext GraphDB مؤخرًا يسمح إدراج في أجزاء سباركل في استعلام MongoDB.

عند التحدث على نطاق أوسع ، حول مهايئات مصادر JSON التي تسمح "أثناء التنقل" أكثر أو أقل لتمثيل JSON المخزنة في هذه المصادر على أنها RDF ، ثم يمكننا أيضًا تذكر المحولات الموجودة لبعض الوقت سباركل توليدالتي يمكن تعديلها مثلا، إلى أباتشي جينا.

بتلخيص الاتجاهين الأولين ، يمكننا القول أن مستودعات RDF تظهر الاستعداد الكامل للتكامل والعمل في ظروف "التخزين المتعدد" (ثبات متعدد اللغات). ومع ذلك ، فمن المعروف أن هذا الأخير قد عفا عليه الزمن منذ فترة طويلة ، واستبداله قادم النمذجة المتعددة. وماذا عن النمذجة المتعددة في عالم تخزين RDF؟

باختصار ، مستحيل. أرغب في تخصيص مقال منفصل لموضوع DBMS متعدد النماذج ، ولكن في الوقت الحالي يمكنك أن ترى أنه لا يوجد نظام DBMS متعدد النماذج "قائم على" نموذج الرسم البياني (يمكن اعتبار RDF تباينًا منه) الآن. ستتم مناقشة بعض النمذجة الصغيرة المتعددة - التي تدعمها مخازن RDF لنموذج رسم بياني LPG بديل - في القسم الخامس.

ثالثا. OLTP مقابل. OLAP

ومع ذلك ، فإن نفس جارتنر يكتبأن النمذجة المتعددة شرط لا غنى عنه في المقام الأول غرف العمليات نظم إدارة قواعد البيانات. هذا أمر مفهوم: في حالة "التخزين المتعدد" ، تنشأ المشاكل الرئيسية في المعاملات.

ولكن أين توجد مستودعات RDF على مقياس OLTP-OLAP؟ أود أن أجيب على هذا النحو: لا يوجد ولا هنا. للإشارة إلى الغرض منها ، هناك حاجة إلى بعض الاختصار الثالث. كخيار أود أن أقترح أوليب - المعالجة الفكرية عبر الإنترنت.

ومع ذلك ، لا يزال:

  • آليات التكامل المطبقة في GraphDB مع MongoDB ليست أقلها مقصود للتغلب على مشاكل الأداء في الكتابة ؛
  • يذهب Stardog إلى أبعد من ذلك وبشكل كامل يعيد الكتابة المحرك ، مرة أخرى بهدف تحسين أداء الكتابة.

والآن اسمحوا لي أن أقدم لاعبًا جديدًا في السوق. من مبتكري IBM Netezza و Amazon Redshift - AnzoGraph ™. تم وضع صورة من إعلان لمنتج يعتمد عليه في بداية المقال. تضع AnzoGraph نفسها كحل GOLAP. كيف تحب سباركل مع وظائف النافذة؟ -

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

رابعا. روكس دي بي

أعلاه بالفعل كان هناك ارتباط للإعلان عن Stardog 7 Beta ، والذي قال إن Stardog كانت ستستخدم RocksDB كنظام تخزين أساسي - تخزين ذو قيمة رئيسية ، تفرع Facebook من LevelDB من Google. لماذا يستحق الحديث عن اتجاه معين؟

أولا ، انطلاقا من مقالة ويكيبيديا، لا يتم "زرع" مستودعات RDF فقط في RocksDB. هناك مشاريع لاستخدام RocksDB كمحرك تخزين في ArangoDB و MongoDB و MySQL و MariaDB و Cassandra.

ثانيًا ، يتم تنفيذ المشاريع (وليس المنتجات) للموضوع المقابل على RocksDB.

على سبيل المثال ، يستخدم eBay RocksDB بتنسيق منصة من أجل "الرسم البياني المعرفي" الخاص بك. بالمناسبة ، من المضحك أن تقرأ: بدأت لغة الاستعلام كتنسيق محلي ، لكنها تحولت مؤخرًا لتصبح أكثر شبهاً بـ SPARQL. كما في النكتة: بغض النظر عن مقدار الرسم البياني المعرفي الذي نقوم به ، ما زلنا نحصل على RDF.

مثال آخر - ظهر قبل بضعة أشهر خدمة استعلام تاريخ ويكي بيانات. قبل تقديمها ، كان لا بد من الوصول إلى المعلومات التاريخية لـ Wikidata من خلال موابي إلى Mediawiki API القياسي. الكثير ممكن الآن في سباركل النقية. "تحت غطاء محرك السيارة" هناك أيضا RocksDB. بالمناسبة ، WDHQS فعل ذلك ، يبدو أنه الشخص المتورط في استيراد Freebase إلى Google Knowledge Graph.

V. دعم غاز البترول المسال

اسمحوا لي أن أذكرك بالفرق الرئيسي بين الرسوم البيانية LPG والرسوم البيانية RDF.

في LPG ، يمكن إرفاق الخصائص العددية بمثيلات الحافة ، بينما في RDF يمكن ربطها فقط بـ "أنواع" الحواف (ولكن ليس فقط الخصائص العددية ، ولكن أيضًا الروابط العادية). هذا القيد من RDF مقارنة بغاز البترول المسال يغلب نوع من تقنية النمذجة. من الصعب التغلب على قيود LPG مقارنة بـ RDF ، لكن الرسوم البيانية LPG تشبه الصور من كتاب Harari المدرسي أكثر من الرسوم البيانية RDF ، لذلك يريدها الناس.

من الواضح أن مهمة "دعم غاز البترول المسال" تنقسم إلى قسمين:

  1. إجراء تغييرات على نموذج RDF التي تجعل من الممكن محاكاة بنيات غاز البترول المسال فيه ؛
  2. إجراء تغييرات على لغة استعلام RDF التي تجعل من الممكن الوصول إلى البيانات في هذا النموذج المعدل ، أو تنفيذ القدرة على الاستعلام عن هذا النموذج بلغات استعلام LPG الشائعة.

V.1. نموذج البيانات

هناك العديد من الطرق الممكنة هنا.

V.1.1. الملكية المفردة

ربما يكون النهج الأكثر حرفية لتنسيق RDF و LPG هو الملكية المفردة:

  • بدلا من المسند على سبيل المثال :isMarriedTo تستخدم المسندات :isMarriedTo1, :isMarriedTo2 إلخ
  • ثم تصبح هذه المسندات موضوعات لثلاثة توائم جديدة: :isMarriedTo1 :since "2013-09-13"^^xsd:date إلخ
  • يتم إنشاء اتصال هذه الحالات من المسندات مع المسند المشترك من خلال ثلاثة توائم من النموذج :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • ومن الواضح أن rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type، لكن ضع في اعتبارك لماذا لا تكتفي بالكتابة :isMarriedTo1 rdf:type :isMarriedTo.

تم حل مهمة "دعم غاز البترول المسال" هنا على مستوى RDFS. مثل هذا القرار يتطلب إدراجها في ذات الصلة معيار. قد تكون هناك حاجة لبعض التغييرات من مستودعات RDF التي تدعم إرفاق النتائج ، ولكن في الوقت الحالي ، يمكن اعتبار Singleton Property مجرد أسلوب نمذجة آخر.

V.1.2. التوحيد الحق

تنبع الأساليب الأقل سذاجة من إدراك أن مثيلات الملكية يتم إنشاء مثيل لها بشكل مثالي بواسطة ثلاثة توائم. من خلال القدرة على التحدث عن ثلاثة توائم ، يمكننا أيضًا التحدث عن حالات الملكية.

أكثر هذه الأساليب صلابة هو RDF *ويعرف أيضًا باسم RDR ، وُلِدّ في أحشاء بلازيغراف. إنه من البداية انتخب لنفسي ولأنزوغراف. يتم تحديد صلابة النهج من خلال حقيقة أنه في إطاره تقدم التغييرات المقابلة في RDF دلالات. ومع ذلك ، فإن النقطة بسيطة للغاية. في تسلسل RDF Turtle ، يمكنك الآن كتابة شيء مثل هذا:

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

V.1.3. مناهج أخرى

لا يمكنك أن تهتم بالدلالات الرسمية ، ولكن ضع في اعتبارك ببساطة أن الثلاثة توائم لها بعض المعرفات ، والتي ، بالطبع ، هي URIs ، وتشكل ثلاثة توائم جديدة باستخدام URIs. كل ما تبقى هو إتاحة الوصول إلى URIs في SPARQL. لذا يصل ستاردوج.

في Allegrograph لنذهب بطريقة وسيطة. ومن المعروف أن معرفات التوائم الثلاثة في Allegrograph غير، ولكن عندما يتم تنفيذ السمات الثلاثية ، فإنها لا تلتزم. ومع ذلك ، حتى الدلالات الرسمية بعيدة جدًا. وتجدر الإشارة إلى أن السمات الثلاثية ليست عناوين URI ، ويمكن أيضًا أن تكون قيم هذه السمات حرفية فقط. يحصل أتباع غاز البترول المسال على ما يريدون بالضبط. في تنسيق NQX الذي تم اختراعه خصيصًا ، يبدو مثال مشابه للمثال أعلاه لـ RDF * كما يلي:

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

V.2. لغات الاستعلام

بعد أن دعمت LPG بطريقة أو بأخرى على مستوى النموذج ، فإنك تحتاج إلى إتاحة الاستعلام عن البيانات في مثل هذا النموذج.

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

  • يدعم Anzograph أيضًا سباركل * وسوف تدعم سايفر، لغة الاستعلام في Neo4j.
  • Stardog تحتفظ بنفسها تمديد سباركل و مرة أخرى شبح. يمكنك الحصول على 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.

السادس. تشديد التراخيص

لم تكن هناك إضافات حديثة إلى تقاطع مجموعتي "triplestore of Choice" و "open source triplestore". لا تعد متاجر RDF الجديدة مفتوحة المصدر خيارًا جيدًا للاستخدام اليومي ، وتم إغلاق كود المصدر للمتاجر الثلاثية الجديدة التي أرغب في استخدامها (على سبيل المثال ، AnzoGraph). بدلا من ذلك ، يمكننا التحدث عن التخفيضات ...

بالطبع ، لم يكن المصدر المفتوح سابقًا مغلقًا ، لكن بعض مستودعات المصادر المفتوحة لم تعد تُعتبر تدريجيًا جديرة بالاختيار. Virtuoso ، الذي يحتوي على إصدار مفتوح المصدر ، في رأيي ، يغرق في الأخطاء. اشترت Blazegraph بواسطة AWS وشكلت أساس Amazon Neptune ؛ الآن ليس من الواضح ما إذا كان سيكون هناك إصدار واحد آخر على الأقل. يبقى جينا فقط ...

إذا لم يكن المصدر المفتوح مهمًا جدًا ، لكنك تريد فقط المحاولة ، فكل شيء أيضًا أقل وردية من ذي قبل. على سبيل المثال:

  • ستاردوغ توقف توزيع الإصدار المجاني (ومع ذلك ، فقد تضاعفت الفترة التجريبية للإصدار العادي) ؛
  • в سحابة غراف دي بي، حيث يمكنك مسبقًا اختيار الخطة الأساسية المجانية ، يتم تعليق تسجيل مستخدم جديد.

بشكل عام ، أصبح الفضاء يتعذر الوصول إليه بشكل متزايد بالنسبة لشخص عادي في مجال تكنولوجيا المعلومات ، وأصبح تطوره في كثير من الأحيان الكثير من الشركات.

المصدر: www.habr.com

إضافة تعليق