سپاركل

SPARQL
SPARQL-logo.png
ParadigmQuery language
DeveloperW3C
First appeared2008; 16 years ago (2008
الإصدار المستقر
1.1 / 21 مارس 2013; منذ 11 سنة (2013-03-21
Websitewww.w3.org/TR/sparql11-query/
Major implementations
Jena,[1] OpenLink Virtuoso[1]

سپاركل SPARQL (وتُنطق "سپاركل" /ˈspɑːkəl/، وهي اختصار متكرر[2] لـ پروتوكول سپاركل ولغة استعلام RDF) هي لغة استعلام RDF - أي لغة استعلام دلالية لـ قواعد البيانات - قادرة على استرداد البيانات المخزنة ومعالجتها بتنسيق إطار موصف المصادر (RDF).[3][4] تم وضعه كمعيار من قبل مجموعة عمل الوصول إلى البيانات RDF (DAWG) من اتحاد شبكة الوب العالمية، ومعترف بها كواحدة من التقنيات الرئيسية لـ الوب الدلالي. في 15 يناير 2008، تم الاعتراف بـ سپاركل 1.0 من قبل W3C كتوصية رسمية،[5][6] و سپاركل 1.1 في مارس 2013.[7]

تسمح سپاركل أن يتكون الاستعلام من الأنماط الثلاثية، الاقترانات، الانفصالات ، و التصاميم الاختيارية.[8]

توجد تطبيقات لعدة لغات برمجة.[9]توجد أدوات تسمح بالاتصال وإنشاء استعلام سپاركل بشكل شبه تلقائي لمرحلة نهائية لـ سپاركل، على سبيل المثال ViziQuer ڤيزي‌كوير.[10] بالإضافة إلى ذلك، توجد أدوات لترجمة استعلامات سپاركل إلى لغات الاستعلام الأخرى، على سبيل المثال إلى SQL[11] و إلى إكس‌كويري.[12]

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

المميزات

يسمح سپاركل للمستخدمين بكتابة استعلامات مقابل ما يمكن تسميته بشكل فضفاض ببيانات "قيمة المفتاح" أو بشكل أكثر تحديداً، البيانات التي تتبع مواصفات RDF الخاصة بـ W3C. وبالتالي، فإن قاعدة البيانات بأكملها عبارة عن مجموعة من ثلاثيات "الموضوع - القاعدة - الشيء". هذا مشابه لاستخدام بعض قواعد بيانات NoSQL لمصطلح "الملف-المفتاح-القيمة"، مثل MongoDB.

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

وبالتالي، يوفر سپاركل مجموعة كاملة من عمليات الاستعلام التحليلي مثل JOIN، SORT، AGGREGATE للبيانات التي مخطط جزء جوهري من البيانات بدلاً من طلب تعريف مخطط منفصل. ومع ذلك، غالباً ما يتم توفير معلومات المخطط (الأنطولوجية) خارجياً، للسماح بالانضمام إلى مجموعات البيانات المختلفة بشكل لا لبس فيه. بالإضافة إلى ذلك، توفر سپاركل رسم بياني صيغة اجتياز محددة للبيانات التي يمكن اعتبارها كرسم بياني.

يوضح المثال أدناه استعلاماً بسيطاً يستخدم تعريف الأنطولوجية foaf ("صديق لصديق").

على وجه التحديد، يعرض الاستعلام التالي أسماء ورسائل بريد إلكتروني لكل شخص في مجموعة البيانات:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name 
       ?email
WHERE
  {
    ?person  a          foaf:Person .
    ?person  foaf:name  ?name .
    ?person  foaf:mbox  ?email .
  }

يجمع طلب البحث هذا مع كل الثلاثيات مع موضوع مطابق، حيث يكون نوع القاعدة شخصاً "a"، (foaf:Person)، ويكون لدى الشخص اسم واحد أو أكثر (foaf:name) وصناديق البريد (foaf:mbox).

اختار مؤلف هذا الاستعلام الإشارة إلى الموضوع باستخدام اسم المتغير "?person" لوضوح مقروء. نظراً لأن العنصر الأول من الثلاثي هو دائماً الموضوع، فقد يكون للمؤلف بنفس السهولة استخدام أي اسم متغير، مثل "?subj" أو "?x". أياً كان الاسم الذي يتم اختياره، يجب أن يكون هو نفسه في كل سطر من الاستعلام للإشارة إلى أن محرك الاستعلام سينضم إلى ثلاثة أضعاف مع نفس الموضوع.

نتيجة الانضمام هي مجموعة من الصفوف - ?person، ?name، ?email. يعرض طلب البحث هذا ?name و ?email لأن ?person غالباً ما يكون URI معقداً وليس سلسلة سهلة الاستخدام. لاحظ أن أي ?person قد يمتلك صناديق بريد متعددة، لذلك في المجموعة التي تم إرجاعها، قد يظهر صف ?name عدة مرات، مرة واحدة لكل صندوق بريد.

يمكن توزيع هذا الاستعلام على عدة نقاط نهاية لـ سپاركل (الخدمات التي تقبل استعلامات سپاركل ونتائج الإرجاع)، وحسابها، وجمع النتائج، وهو إجراء يُعرف باسم الاستعلام الموحد.

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


نماذج الاستعلام

في حالة الاستعلامات التي تقرأ البيانات من قاعدة البيانات، تحدد لغة سپاركل أربعة أشكال مختلفة للاستعلام لأغراض مختلفة.

استعلام SELECT
تُستخدم لاستخراج القيم الأولية من مرحلة نهاية سپاركل، ويتم إرجاع النتائج بتنسيق جدول.
استعلام CONSTRUCT
تُستخدم لاستخراج المعلومات من مرحلة نهاية سپاركل وتحويل النتائج إلى RDF متاحة.
استعلام ASK
يستخدم لتقديم نتيجة صواب / خطأ بسيطة لاستعلام على مرحلة نهاية سپاركل.
استعلام DESCRIBE
يُستخدم لاستخراج رسم بياني RDF من مرحلة نهاية سپاركل، ويترك محتواه إلى نقطة النهاية لتحديده، بناءً على ما يعتبره المشرف معلومات مفيدة.

يأخذ كل نموذج من نماذج الاستعلام هذه كتلة WHERE لتقييد الاستعلام، على الرغم من أنه في حالة الاستعلام DESCRIBE، يكون WHERE اختيارياً.

تحدد سپاركل 1.1 لغة لتحديث قاعدة البيانات بعدة نماذج استعلام جديدة.[13]

مثال

مثال آخر على استعلام سباركل يضع نموذجاً للسؤال "ما هي كل عواصم الدول في إفريقيا؟":

PREFIX ex: <http://example.com/exampleOntology#>
SELECT ?capital
       ?country
WHERE
  {
    ?x  ex:cityname       ?capital   ;
        ex:isCapitalOf    ?y         .
    ?y  ex:countryname    ?country   ;
        ex:isInContinent  ex:Africa  .
  }

تتم الإشارة إلى المتغيرات ببادئة ? أو $ . سيتم إرجاع ارتباطات <?capital و ?country. عندما ينتهي الثلاثي بفاصلة منقوطة، فإن الموضوع من هذا الثلاثي سوف يكمل ضمنياً الزوج التالي إلى ثلاثي كامل. على سبيل المثال، ex:isCapitalOf ?y اختصار لـ ?x ex:isCapitalOf ?y. .

سيبحث معالج استعلام سپاركل عن مجموعات ثلاثية تتطابق مع هذه الأنماط الثلاثية الأربعة، وربط المتغيرات في الاستعلام بالأجزاء المقابلة من كل ثلاثية. من المهم ملاحظة "اتجاه الخاصية" (يمكن إجراء تطابقات الفئة فقط من خلال سمات أو خصائص الفئة - راجع Duck typing)

لجعل الاستعلامات موجزة، تسمح سپاركل بتعريف البادئات URIs الأساسية بطريقة مشابهة لـ ترتل. في هذا الاستعلام، تشير البادئة “http://example.com/exampleOntology#”.

الملحقات

تحدد جيوسپاركل وظائف ترشيح استعلامات نظام المعلومات الجغرافية (GIS) باستخدام معايير OGC المفهومة جيدا ( GML، WKT، إلخ.).

سپارل هو امتداد آخر لـ سپاركل. يتيح تحديث متجر RDF بلغة الاستعلام البيانية هذه، عن طريق إضافة أساليب INSERT و DELETE.

تطبيقات

تطبيقات مرجعية لسپاركل ذات المصدر المفتوح

راجع قائمة تطبيقات سپاركل للحصول على تغطية أكثر شمولاً، بما في ذلك مخزن الثلاثيات و API والمخازن الأخرى التي طبقت معيار سپاركل.

انظر أيضاً

الهامش

  1. ^ أ ب Hebeler, John; Fisher, Matthew; Blace, Ryan; Perez-Lopez, Andrew (2009). Semantic Web Programming. Indianapolis, Indiana: John Wiley & Sons. p. 406. ISBN 978-0-470-41801-7.
  2. ^ Beckett, Dave (2011-10-06). "What does SPARQL stand for?". semantic-web@w3.org.
  3. ^ Jim Rapoza (2 May 2006). "SPARQL Will Make the Web Shine". eWeek. Retrieved 2007-01-17.
  4. ^ Segaran, Toby; Evans, Colin; Taylor, Jamie (2009). Programming the Semantic Web. O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. p. 84. ISBN 978-0-596-15381-6.
  5. ^ "W3C Semantic Web Activity News – SPARQL is a Recommendation". W3.org. 2008-01-15. Retrieved 2009-10-01.
  6. ^ "XML and Semantic Web W3C Standards Timeline" (PDF). 2012-02-04. Retrieved 2013-11-27.
  7. ^ "Eleven SPARQL 1.1 Specifications are W3C Recommendations". w3.org. 2013-03-21. Retrieved 2013-04-25.
  8. ^ "XML and Web Services in the News". xml.org. 6 October 2006. Retrieved 2007-01-17.
  9. ^ "SparqlImplementations – ESW Wiki". Esw.w3.org. Retrieved 2009-10-01.
  10. ^ "ViziQuer a tool to construct SPARQL queries automatically". lumii.lv. Retrieved 2011-02-25.
  11. ^ "D2R Server". Retrieved 2012-02-04.
  12. ^ "SPARQL2XQuery Framework". Retrieved 2012-02-04.
  13. ^ Yu, Liyang (2014). A Developer’s Guide to the Semantic Web. Springer. p. 308. ISBN 9783662437964.

وصلات خارجية


الكلمات الدالة: