RDF omborlari bilan nima sodir bo'lmoqda?

Semantik Internet va bog'langan ma'lumotlar kosmosga o'xshaydi: u erda hayot yo'q. U yerga ozmi-ko‘pmi uzoq muddatga borish uchun... Bolaligingizda “Men kosmonavt bo‘lmoqchiman” degan javobga nima deyishganini bilmayman. Ammo siz Yerda bo'lganingizda nima bo'layotganini kuzatishingiz mumkin; Havaskor astronom yoki hatto professional bo'lish ancha oson.

Maqolada RDF saqlash dunyosidagi so'nggi, bir necha oydan ortiq bo'lmagan tendentsiyalarga e'tibor qaratiladi. Birinchi xatboshidagi metafora kesma ostidagi epik o'lchamdagi reklama tasviridan ilhomlangan.


Epik rasm

RDF omborlari bilan nima sodir bo'lmoqda?

I. RDF kirish uchun GraphQL

Ular aytishdiGraphQL universal ma'lumotlar bazasiga kirish tili bo'lishni maqsad qilgan. GraphQL yordamida RDFga kirish imkoniyati haqida nima deyish mumkin?

Ushbu imkoniyatdan tashqarida quyidagilar taqdim etiladi:

Agar ombor bunday imkoniyatni ta'minlamasa, u tegishli "resolver" yozish orqali mustaqil ravishda amalga oshirilishi mumkin. Masalan, frantsuz loyihasida ular shunday qilishdi DataTourisme. Yoki endi hech narsa yoza olmaysiz, shunchaki oling HyperGraphQL.

Semantik Internet va bog'langan ma'lumotlarning pravoslav tarafdori nuqtai nazaridan, bularning barchasi, albatta, achinarli, chunki u keyingi ma'lumotlar silosi atrofida qurilgan integratsiya uchun mo'ljallangan ko'rinadi va mos kelmaydigan platformalar (albatta RDF do'konlari) .

GraphQL-ni SPARQL bilan taqqoslashdan olingan taassurotlar ikki xil.

  • Bir tomondan, GraphQL SPARQL ning uzoq qarindoshiga o'xshaydi: u REST uchun xos bo'lgan so'rovlarning ko'pligi va qayta namuna olish muammolarini hal qiladi - ularsiz, ehtimol, ko'rib chiqish mumkin emas edi. so'rov tili, hech bo'lmaganda veb uchun;
  • Boshqa tomondan, GraphQL ning qattiq sxemasi umidsizlikka tushadi. Shunga ko'ra, uning "introspektivligi" RDFning to'liq refleksivligi bilan solishtirganda juda cheklangan ko'rinadi. Va mulk yo'llarining o'xshashi yo'q, shuning uchun nima uchun bu "Graph-" ekanligi aniq emas.

II. MongoDB uchun adapterlar

Oldingi tendentsiyani to'ldiradigan tendentsiya.

  • Hozir Stardogda ehtimol - xususan, barchasi bir xil GraphQL-da - MongoDB ma'lumotlarini virtual RDF grafiklariga solishtirishni sozlash;
  • Ontotext GraphDB yaqinda paydo bo'ldi Bu beradi MongoDB so'rovida SPARQL-ga fragmentlarni qo'shing.

Agar biz JSON manbalariga adapterlar haqida kengroq gapiradigan bo'lsak, ular ushbu manbalarda saqlangan JSON-ni RDF sifatida ko'proq yoki kamroq ko'rsatishga imkon beradi, biz juda uzoq vaqtdan beri mavjud bo'lgan narsalarni eslashimiz mumkin. SPARQL yaratish, sozlanishi mumkin, masalan, Apache Jenaga.

Birinchi ikkita tendentsiyani sarhisob qilsak, shuni aytishimiz mumkinki, RDF omborlari "poliglot qat'iyligi" sharoitida integratsiya va ishlashga to'liq tayyorligini namoyish etadi. Biroq, ma'lumki, bu ikkinchisi uzoq vaqtdan beri modadan chiqib ketgan va uning o'rnini egallab kelmoqda kelmoqda ko'p modelli. RDF saqlash dunyosida ko'p modellashtirish haqida nima deyish mumkin?

Qisqasi, yo'q. Ko'p modelli ma'lumotlar bazasi to'plami mavzusiga alohida maqola bag'ishlamoqchiman, ammo hozircha shuni ta'kidlash mumkinki, hozirda grafik modelga asoslangan ko'p modelli ma'lumotlar bazasi mavjud emas (RDFni uning turi deb hisoblash mumkin). . Ba'zi bir kichik ko'p modellashtirish - muqobil LPG grafik modeli uchun RDF saqlash qo'llab-quvvatlash - muhokama qilinadi V bo'lim.

III. OLTP va boshqalar. OLAP

Biroq, xuddi shu Gartner U yozadibu multimodel birinchi navbatda zaruriy shartdir operatsiya xonalari DBMS. Bu tushunarli: "ko'p qirrali saqlash" sharoitida asosiy muammolar tranzaksiya bilan bog'liq.

OLTP-OLAP shkalasi bo'yicha RDF omborlari qayerda joylashgan? Men shunday javob berardim: na u yerda, na bu yerda. Ular nima uchun mo'ljallanganligini ko'rsatish uchun uchinchi qisqartma kerak. Variant sifatida men taklif qilaman OLIP — Onlayn intellektual ishlov berish.

Biroq, hali ham:

  • GraphDB-da amalga oshirilgan MongoDB bilan integratsiya mexanizmlari kam emas mo'ljallangan yozish samaradorligi bilan bog'liq muammolarni hal qilish;
  • Stardog yanada uzoqroq va butunlay ketadi qayta yozadi Dvigatel, yana yozib olish samaradorligini oshirish maqsadida.

Endi bozorga yangi o'yinchini tanishtirishga ijozat bering. IBM Netezza va Amazon Redshift yaratuvchilardan - AnzoGraph™. Maqolaning boshida uning asosidagi mahsulot reklamasidan surat joylashtirilgan. AnzoGraph o'zini GOLAP yechimi sifatida ko'rsatadi. Oyna funksiyalari bilan SPARQL sizga qanday yoqadi? —

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

IV. RocksDB

Allaqachon yuqoriroq havola bor edi Stardog 7 Beta-ning e'loniga, unda Stardog RocksDB-dan asosiy saqlash tizimi - kalit qiymatlar do'koni, Google LevelDB-ning Facebook tarmog'i sifatida foydalanishini aytdi. Nima uchun ma'lum bir tendentsiya haqida gapirishga arziydi?

Birinchidan, hukm qilish Vikipediya maqolasi, nafaqat RDF omborlari RocksDB-ga "ko'chirilgan". ArangoDB, MongoDB, MySQL va MariaDB, Cassandra-da RocksDB-dan saqlash mexanizmi sifatida foydalanish loyihalari mavjud.

Ikkinchidan, RocksDB da tegishli mavzular bo'yicha loyihalar (ya'ni mahsulotlar emas) yaratiladi.

Masalan, eBay RocksDB-dan foydalanadi platforma "bilimlar grafigingiz" uchun. Aytgancha, o'qish kulgili: so'rovlar tili uy formati sifatida boshlangan, ammo yaqinda u SPARQL ga o'xshab ketmoqda.. Hazilda bo'lgani kabi: biz qanchalik ko'p bilim grafigini yaratmasak ham, biz RDF bilan yakun topamiz.

Yana bir misol - bir necha oy oldin paydo bo'lgan Vikimaʼlumotlar tarixi soʻrovi xizmati. Uni joriy etishdan oldin Vikidata tarixiy ma'lumotlarga kirish kerak edi MWAPI standart Mediawiki API-ga. Endi sof SPARQL bilan ko'p narsa mumkin. "Kaput ostida" RocksDB ham mavjud. Aytgancha, WDHQS Freebase-ni Google Knowledge Graph-ga import qilgan odam tomonidan yaratilganga o'xshaydi.

V. LPG qo'llab-quvvatlash

Sizga LPG grafiklari va RDF grafiklari o'rtasidagi asosiy farqni eslatib o'taman.

LPGda skalyar xususiyatlar chekka namunalarga tayinlanishi mumkin, RDFda esa ular faqat chekka "turlarga" tayinlanishi mumkin (lekin nafaqat skalar xususiyatlar, balki oddiy ulanishlar ham). LPG bilan solishtirganda RDFning bu cheklovi yengish u yoki bu modellashtirish texnikasi. RDF bilan solishtirganda LPG cheklovlarini engish qiyinroq, ammo LPG grafiklari RDF grafiklaridan ko'ra Harari darsligidagi rasmlarga o'xshaydi, shuning uchun odamlar ularni xohlaydi.

Shubhasiz, "LPG qo'llab-quvvatlash" vazifasi ikki qismga bo'linadi:

  1. RDF modeliga undagi LPG tuzilmalarini simulyatsiya qilish imkonini beradigan o'zgartirishlar kiritish;
  2. ushbu o'zgartirilgan modeldagi ma'lumotlarga kirish imkonini beruvchi RDF so'rovlar tiliga o'zgartirishlar kiritish yoki mashhur LPG so'rov tillarida ushbu modelga so'rovlar qilish imkoniyatini amalga oshirish.

V.1. Ma'lumotlar modeli

Bu erda bir nechta mumkin bo'lgan yondashuvlar mavjud.

V.1.1. Singleton mulki

RDF va LPGni uyg'unlashtirishning eng to'g'ri yondashuvi, ehtimol singleton mulki:

  • Masalan, predikat o'rniga :isMarriedTo predikatlar ishlatiladi :isMarriedTo1, :isMarriedTo2 va hokazo.
  • Keyin bu predikatlar yangi uchliklarning sub'ektlariga aylanadi: :isMarriedTo1 :since "2013-09-13"^^xsd:date va boshqalar.
  • Ushbu predikatlar misollarining umumiy predikat bilan bog'lanishi shaklning uchliklari bilan o'rnatiladi :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Bu aniq rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, lekin nima uchun shunchaki yozmaslik kerakligini o'ylab ko'ring :isMarriedTo1 rdf:type :isMarriedTo.

"LPG-ni qo'llab-quvvatlash" muammosi bu erda RDFS darajasida hal qilinadi. Bunday qaror tegishli qarorga kiritilishini talab qiladi standart. Qo'shish oqibatlarini qo'llab-quvvatlaydigan RDF do'konlari uchun ba'zi o'zgarishlar talab qilinishi mumkin, ammo hozircha Singleton mulkini boshqa modellashtirish usuli sifatida ko'rish mumkin.

V.1.2. Refiksatsiya toʻgʻri bajarildi

Kamroq sodda yondashuvlar, mulkiy misollar uchlik tomonidan to'liq lahzali ekanligini anglashdan kelib chiqadi. Uch egizaklar haqida biror narsa aytish mumkin bo'lsa, biz mulkiy misollar haqida gapirishimiz mumkin.

Ushbu yondashuvlarning eng ishonchlisi RDF*, aka RDR, tug'ilgan Blazegraf chuqurligida. Bu boshidanoq saylangan o'zingiz va AnzoGraph uchun. Yondashuvning mustahkamligi uning doirasida ekanligi bilan belgilanadi taklif qildi tegishli oʻzgarishlar RDF semantikasi. Biroq, nuqta juda oddiy. RDF ning Turtle serializatsiyasida siz endi shunday yozishingiz mumkin:

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

V.1.3. Boshqa yondashuvlar

Siz rasmiy semantika bilan bezovta qila olmaysiz, lekin oddiygina uchlik ma'lum identifikatorlarga ega deb taxmin qiling, ular, albatta, URIlardir va bu URIlar bilan yangi tripletlar yaratadi. SPARQL-da ushbu URI-larga ruxsat berish qoladi. Shunday qilib keladi Yulduzli it.

Allegrografda ketdi oraliq tarzda. Ma'lumki, Allegrografda uchlik identifikatorlar bo'ladi, lekin uchlik atributlarni amalga oshirishda ular ajralib turmaydi. Biroq, u hali ham rasmiy semantikadan juda uzoqdir. Shunisi e'tiborga loyiqki, triplet atributlari URI emas va bu atributlarning qiymatlari ham faqat harf bo'lishi mumkin. LPG tarafdorlari o'zlari xohlagan narsani olishadi. Maxsus ixtiro qilingan NQX formatida RDF* uchun yuqoridagiga o'xshash misol quyidagicha ko'rinadi:

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

V.2. So'rov tillari

LPG-ni model darajasida u yoki bu tarzda qo'llab-quvvatlagan holda, siz bunday modeldagi ma'lumotlar bo'yicha so'rovlarni amalga oshirishga imkon berishingiz kerak.

  • RDF* so'rovlari uchun Blazegraph qo'llab-quvvatlaydi SPARQL* и Gremlin. SPARQL* so'rovi quyidagicha ko'rinadi:

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

  • Anzograf ham qo'llab-quvvatlaydi SPARQL* va qo'llab-quvvatlamoqchi Cypher, Neo4j-dagi so'rovlar tili.
  • Stardog o'zini qo'llab-quvvatlaydi kengaytirish SPARQL va yana Gremlin. Siz SPARQL-da uchlik URI va "meta-ma'lumot" ni quyidagi kabi ishlatishingiz mumkin:

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

  • Allegrograf ham o'zinikini qo'llab-quvvatlaydi kengaytirish SPARQL:

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

Aytgancha, GraphDB bir vaqtning o'zida LPG-ni qo'llab-quvvatlamasdan Tinkerpop/Gremlin-ni qo'llab-quvvatlagan, ammo bu 8.0 yoki 8.1 versiyalarida to'xtagan.

VI. Litsenziyalarni kuchaytirish

"Tanlash uch do'koni" va "ochiq manbali uch do'kon" to'plamlari kesishuviga yaqinda hech qanday qo'shimchalar kiritilmagan. Yangi ochiq kodli RDF do'konlari kundalik foydalanish uchun yaxshi tanlov bo'lishdan ancha uzoqdir va men foydalanmoqchi bo'lgan yangi uch do'konlar (masalan, AnzoGraph) yopiq manbadir. Aksincha, biz pasayish haqida gapirishimiz mumkin ...

Albatta, ochiq manba o'tmishda yopilmagan, ammo ba'zi ochiq manbalar omborlari asta-sekin endi tanlashga loyiq emas. Ochiq manba nashriga ega Virtuoso, mening fikrimcha, xatolarga botib ketmoqda. Blazegraph AWS tomonidan sotib olindi va Amazon Neptunining asosini tashkil etdi; endi kamida yana bitta reliz bo'ladimi yoki yo'qmi noma'lum. Faqat Jena qoldi...

Agar ochiq manba juda muhim bo'lmasa, lekin siz shunchaki sinab ko'rmoqchi bo'lsangiz, unda hamma narsa avvalgidan kamroq qizg'ish. Masalan:

  • Yulduzli it tugatadi bepul versiyani tarqatish (ammo oddiy versiyaning sinov muddati ikki baravar ko'paydi);
  • в GraphDB buluti, Agar ilgari bepul asosiy tarif rejasini tanlashingiz mumkin bo'lsa, yangi foydalanuvchi ro'yxatga olishlari to'xtatilgan.

Umuman olganda, oddiy IT-oddiy uchun makon tobora ko'proq erishib bo'lmaydigan bo'lib bormoqda, uning rivojlanishi korporatsiyalarning ko'p qismiga aylanmoqda.

Manba: www.habr.com

a Izoh qo'shish