RDF anbarları ilə indi nə baş verir?

Semantik Veb və Əlaqəli Məlumatlar kosmosa bənzəyir: orada həyat yoxdur. Oraya az-çox uzun müddətə getmək üçün... Bilmirəm, uşaq vaxtı sizə “Astronavt olmaq istəyirəm” cavabında nə dedilər. Amma siz Yerdə olarkən nə baş verdiyini müşahidə edə bilərsiniz; Həvəskar astronom və ya hətta peşəkar olmaq daha asandır.

Məqalədə RDF saxlama dünyasından bir neçə aydan çox olmayan son tendensiyalar diqqət mərkəzində olacaq. Birinci abzasdakı metafora kəsik altındakı epik ölçülü reklam təsvirindən ilhamlanıb.


Epik şəkil

RDF anbarları ilə indi nə baş verir?

I. RDF girişi üçün GraphQL

Deyirlərki, GraphQL universal verilənlər bazasına giriş dili olmağı hədəfləyir. GraphQL istifadə edərək RDF-ə daxil olmaq imkanı haqqında nə demək olar?

Qutudan kənar bu fürsəti təmin edir:

Repozitoriya belə bir fürsət vermirsə, müvafiq "həlledici" yazmaqla müstəqil şəkildə həyata keçirilə bilər. Məsələn, fransız layihəsində belə etdilər DataTourisme. Yoxsa artıq heç nə yaza bilməzsən, sadəcə götür HyperGraphQL.

Semantik Veb və Əlaqəli Məlumatların pravoslav tərəfdarı nöqteyi-nəzərindən, bütün bunlar, əlbəttə ki, kədərlidir, çünki o, növbəti məlumat silosu ətrafında qurulmuş inteqrasiyalar üçün nəzərdə tutulmuş görünür və uyğun olmayan platformalar (əlbəttə RDF mağazalar) .

GraphQL ilə SPARQL müqayisəsinin təəssüratları ikiqatdır.

  • Bir tərəfdən, GraphQL SPARQL-in uzaq qohumuna bənzəyir: o, REST üçün xarakterik olan sorğuların təkrar nümunələşdirilməsi və çoxluğu problemlərini həll edir - onsuz, yəqin ki, nəzərdən keçirmək mümkün olmazdı. sorğu dili, ən azı internet üçün;
  • Digər tərəfdən, GraphQL-in sərt sxemi məyusedicidir. Müvafiq olaraq, onun “introspektivliyi” RDF-nin tam refleksivliyi ilə müqayisədə çox məhdud görünür. Mülkiyyət yollarının analoqu yoxdur, buna görə də bunun niyə "Qrafik-" olduğu o qədər də aydın deyil.

II. MongoDB üçün adapterlər

Əvvəlkini tamamlayan bir tendensiya.

  • İndi Stardogda bəlkə - xüsusən, hamısı eyni GraphQL-də - MongoDB məlumatlarının virtual RDF qrafiklərində xəritələşdirilməsini konfiqurasiya edin;
  • Ontotext GraphDB bu yaxınlarda var imkan MongoDB Query-də SPARQL-ə fraqmentlər daxil edin.

Bu mənbələrdə saxlanılan JSON-u RDF kimi az və ya çox “tez” təqdim etməyə imkan verən JSON mənbələrinə adapterlər haqqında daha geniş danışsaq, kifayət qədər uzun müddətdir mövcud olanları xatırlaya bilərik. SPARQL Yaradın, tənzimlənə bilən, məsələn, Apache Jenaya.

İlk iki tendensiyanı ümumiləşdirərək deyə bilərik ki, RDF anbarları inteqrasiyaya və “poliqlot əzmkarlığı” şəraitində işləməyə tam hazır olduğunu nümayiş etdirir. Bununla belə, məlumdur ki, bu sonuncu çoxdan dəbdən çıxıb və onu əvəz edir gəlir çoxmodelli. RDF saxlama dünyasında çox modelləşdirmə haqqında nə demək olar?

Bir sözlə, heç bir şəkildə. Çoxmodelli DBMS-lər mövzusuna ayrıca məqalə həsr etmək istərdim, lakin hələlik qeyd etmək olar ki, hazırda qrafik model əsasında “əsaslanan” çoxmodelli DBMS yoxdur (RDF onun bir növü hesab edilə bilər) . Bəzi kiçik multi-modelləşdirmə - alternativ LPG qrafik modeli üçün RDF saxlama dəstəyi - məqalədə müzakirə olunacaq bölmə V.

III. OLTP vs. OLAP

Ancaq eyni Gartner yazırki, multimodel ilk növbədə onun üçün olmazsa olmaz şərtdir fəaliyyət göstərir DBMS. Bu başa düşüləndir: "çoxvariantlı saxlama" vəziyyətində əsas problemlər tranzaksiya ilə əlaqədar yaranır.

Bəs RDF anbarları OLTP-OLAP miqyasında harada yerləşir? Mən belə cavab verərdim: nə orada, nə də burada. Onların nə üçün nəzərdə tutulduğunu göstərmək üçün bəzi üçüncü abbreviatura lazımdır. Bir seçim olaraq mən təklif edərdim OLIP — Onlayn İntellektual Emal.

Bununla belə, yenə də:

  • GraphDB-də həyata keçirilən MongoDB ilə inteqrasiya mexanizmləri az deyil nəzərdə tutulub performans problemləri üzərində işləmək;
  • Stardog daha da irəli və tamamilə gedir yenidən yazır mühərrik, yenidən qeyd performansını yaxşılaşdırmaq məqsədi ilə.

İndi icazə verin bazara yeni oyunçu təqdim edim. IBM Netezza və Amazon Redshift yaradıcılarından - AnzoGraph™. Məqalənin əvvəlində onun əsasında məhsulun reklamından şəkil yerləşdirilib. AnzoGraph özünü GOLAP həlli kimi təqdim edir. Pəncərə funksiyaları ilə SPARQL-i necə bəyənirsiniz? —

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

IV. RocksDB

Artıq daha yüksək link var idi Stardog 7 Beta-nın elanına, Stardog-un RocksDB-ni əsas saxlama sistemi - açar dəyər mağazası, Google-un LevelDB-nin Facebook fork kimi istifadə edəcəyini söylədi. Niyə müəyyən bir tendensiya haqqında danışmağa dəyər?

Birincisi, mühakimə Vikipediya məqaləsi, təkcə RDF anbarları RocksDB-yə “köçürülmür”. RocksDB-ni ArangoDB, MongoDB, MySQL və MariaDB, Cassandra-da yaddaş mühərriki kimi istifadə etmək üçün layihələr var.

İkincisi, RocksDB-də müvafiq mövzularda layihələr (yəni məhsullar deyil) yaradılır.

Məsələn, eBay RocksDB-dən istifadə edir platforma "bilik qrafikiniz" üçün. Yeri gəlmişkən, oxumaq gülməlidir: sorğu dili evdə yetişdirilən format kimi başladı, lakin son vaxtlar daha çox SPARQL-ə bənzəyir.. Zarafatda olduğu kimi: nə qədər bilik qrafiki yaratsaq da, yenə də RDF ilə nəticələnirik.

Başqa bir nümunə - bir neçə ay əvvəl ortaya çıxan biri Vikidata Tarix Sorğu Xidməti. Təqdim edilməzdən əvvəl Vikidata tarixi məlumatı vasitəsilə əldə edilməli idi MWAPI standart Mediawiki API-yə. İndi təmiz SPARQL ilə çox şey mümkündür. "Başlıq altında" RocksDB də var. Yeri gəlmişkən, WDHQS, görünür, Freebase-i Google Knowledge Graph-a idxal edən şəxs tərəfindən hazırlanmışdır.

V. LPG dəstəyi

LPG qrafikləri ilə RDF qrafikləri arasındakı əsas fərqi xatırlatmaq istərdim.

LPG-də skalyar xüsusiyyətlər kənar nümunələrə təyin edilə bilər, RDF-də isə onlar yalnız kənar “tiplərə” təyin edilə bilər (lakin təkcə skalyar xüsusiyyətlərə deyil, həm də adi əlaqələrə). LPG ilə müqayisədə RDF-nin bu məhdudiyyəti qalib gəlmək bu və ya digər modelləşdirmə texnikası. LPG-nin RDF ilə müqayisədə məhdudiyyətlərini aradan qaldırmaq daha çətindir, lakin LPG qrafikləri RDF qrafiklərindən daha çox Harari dərsliyindəki şəkillərə bənzəyir, buna görə də insanlar onları istəyirlər.

Aydındır ki, "LPG dəstəyi" vəzifəsi iki hissəyə bölünür:

  1. RDF modelində LPG strukturlarını simulyasiya etməyə imkan verən dəyişikliklərin edilməsi;
  2. bu dəyişdirilmiş modeldə verilənlərə daxil olmağı mümkün edən RDF sorğu dilinə dəyişikliklərin edilməsi və ya məşhur LPG sorğu dillərində bu modelə sorğuların aparılması imkanının həyata keçirilməsi.

V.1. Məlumat modeli

Burada bir neçə mümkün yanaşma var.

V.1.1. Singleton Mülkiyyəti

RDF və LPG-nin uyğunlaşdırılması üçün ən hərfi yanaşma yəqin ki, budur singleton əmlakı:

  • Məsələn, predikatın əvəzinə :isMarriedTo predikatlardan istifadə olunur :isMarriedTo1, :isMarriedTo2 i t. d.
  • Bu predikatlar daha sonra yeni üçlülərin subyektləri olur: :isMarriedTo1 :since "2013-09-13"^^xsd:date və s.
  • Bu predikat nümunələrinin ümumi predikatla əlaqəsi formanın üçlükləri ilə qurulur :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Aydındır ki rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ancaq niyə sadəcə yazmamalı olduğunuzu düşünün :isMarriedTo1 rdf:type :isMarriedTo.

“LPG dəstəyi” problemi burada RDFS səviyyəsində həll olunur. Belə bir qərar müvafiq qərara daxil edilməsini tələb edir стандарт. Əlavə nəticələrini dəstəkləyən RDF mağazalarında bəzi dəyişikliklər tələb oluna bilər, lakin hələlik Singleton Property başqa bir modelləşdirmə texnikası kimi düşünülə bilər.

V.1.2. Refikasiya Düzgün edilib

Daha az sadəlövh yanaşmalar, mülkiyyət nümunələrinin üçlülər tərəfindən tam olaraq ani ola biləcəyinin dərk edilməsindən irəli gəlir. Üçəmlər haqqında bir şey deyə bilməklə, əmlak nümunələri haqqında danışa biləcəyik.

Bu yanaşmalardan ən möhkəmi RDF*, aka RDR, anadan olub Blazegraphın dərinliklərində. Əvvəldəndir seçilmiş özünüz və AnzoGraph üçün. Yanaşmanın möhkəmliyi onun çərçivəsində olması ilə müəyyən edilir təklif etdi müvafiq dəyişikliklər RDF semantikası. Bununla belə, məsələ son dərəcə sadədir. RDF-nin Tısbağa serializasiyasında indi belə bir şey yaza bilərsiniz:

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

V.1.3. Digər yanaşmalar

Siz formal semantika ilə narahat ola bilməzsiniz, sadəcə olaraq güman edin ki, üçlülərin müəyyən identifikatorları var, əlbəttə ki, URI-lər və bu URI-lərlə yeni üçlüklər yaradırlar. SPARQL-də bu URI-lərə giriş vermək qalır. Belə ki gəlir Ulduz iti.

Alleqroqrafda getdi aralıq şəkildə. Alleqroqrafda üçlü identifikatorların olduğu məlumdur yoxdur, lakin üçlü atributları həyata keçirərkən onlar kənarda qalmırlar. Bununla belə, o, hələ də formal semantikadan çox uzaqdır. Maraqlıdır ki, üçlü atributlar URI deyil və bu atributların dəyərləri də yalnız hərf ola bilər. LPG tərəfdarları tam olaraq istədiklərini alırlar. Xüsusi olaraq icad edilmiş NQX formatında RDF* üçün yuxarıda göstərilənə bənzər bir nümunə belə görünür:

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

V.2. Sorğu dilləri

LPG-ni model səviyyəsində bu və ya digər şəkildə dəstəkləyərək, belə bir modeldəki məlumatlar üzrə sorğular etməyə imkan verməlisiniz.

  • RDF* sorğuları üçün Blazegraph dəstəkləyir SPARQL* и Gremlin. SPARQL* sorğusu belə görünür:

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

  • Anzoqraf da dəstəkləyir SPARQL* və dəstəkləyəcək Rəqəm, Neo4j-də sorğu dili.
  • Stardog özünü dəstəkləyir genişlənmə SPARQL və yenidən Gremlin. Bu kimi bir şeydən istifadə edərək SPARQL-də üçlü URI və "meta-məlumat" əldə edə bilərsiniz:

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

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

Yeri gəlmişkən, GraphDB bir vaxtlar LPG-ni dəstəkləmədən Tinkerpop/Gremlin-i dəstəkləyirdi, lakin bu, 8.0 və ya 8.1 versiyalarında dayandı.

VI. Lisenziyaların sərtləşdirilməsi

“Seçim üç mağazası” və “açıq mənbəli üçlü mağaza” dəstlərinin kəsişməsinə son əlavələr edilməmişdir. Yeni açıq mənbəli RDF mağazaları gündəlik istifadə üçün yaxşı seçim olmaqdan çox uzaqdır və istifadə etmək istədiyim yeni üçlü mağazalar (AnzoGraph kimi) qapalı mənbədir. Əksinə, azalmalardan danışmaq olar...

Əlbəttə ki, keçmişdə açıq mənbə bağlanmayıb, lakin bəzi açıq mənbə depoları yavaş-yavaş artıq seçilməyə dəyməz. Açıq mənbə nəşri olan Virtuoso, mənim fikrimcə, böcəklərdə boğulur. Blazegraph AWS tərəfindən alınmış və Amazon Neptunun əsasını təşkil etmişdir; indi ən azı bir daha buraxılış olub-olmayacağı bəlli deyil. Yalnız Jena qalır...

Açıq mənbə çox vacib deyilsə, ancaq onu sınamaq istəyirsinizsə, onda hər şey əvvəlkindən daha az çəhrayıdır. Misal üçün:

  • Ulduz iti dayanır pulsuz versiyanı yaymaq (lakin adi versiyanın sınaq müddəti iki dəfə artıb);
  • в GraphDB Cloud, əvvəllər pulsuz əsas plan seçə bildiyiniz halda, yeni istifadəçi qeydiyyatı dayandırılıb.

Ümumiyyətlə, orta İT insanı üçün məkan getdikcə daha əlçatmaz olur, onun inkişafı korporasiyaların çoxluğuna çevrilir.

Mənbə: www.habr.com

Добавить комментарий