Mis toimub praegu RDF-ladustamistega?

Semantiline veeb ja seotud andmed on nagu lĂ€hedane kosmos: seal pole elu. Et sinna minna pikaajaliselt... noh, ma ei tea, mida teile lapsepĂ”lves ĂŒtlesid, kui soovisite saada kosmonaudiks. Kuid seda, mis toimub, saab jĂ€lgida ka Maa pealt; amatööraastronoomiks vĂ”i isegi professionaaliks saamine on palju lihtsam.

Artiklis kÀsitletakse viimaseid, mitte vanemaid kui paar kuud, trende RDF-ladustamiste maailmas. Esimese lÔigu metafoor sai inspiratsiooni epohhialisest reklaamipildist, mis on allpool.


Epohhine pilt

Mis toimub praegu RDF-ladustamistega?

I. GraphQL RDF-le ligipÀÀsemiseks

Öeldakse,, et GraphQL pĂŒĂŒab saada universaalseks andmebaaside ligipÀÀsu keel. Aga kuidas on lood GraphQL-iga RDF-i juurdepÀÀsuga?

„Karbist vĂ€lja“ pakuvad selle vĂ”imalust:

Kui ladustamine ei paku sellist vĂ”imalust, siis rakendatakse seda iseseisvalt, kirjutades vastava „tuvastaja“ (resolver). Nii tehti nĂ€iteks Prantsuse projektis DataTourisme. VĂ”i vĂ”ib-olla ei pea enam midagi kirjutama, vaid saab lihtsalt vĂ”tta HyperGraphQL.

ÜkskĂ”ik, kuidas vaadata ortodokssest Semantic Web ja Linked Data poolest, on see kĂ”ik kahetsusvÀÀrne, kuna see tundub olevat mĂ”eldud integratsioonideks, mis on ĂŒles ehitatud uute andmesilo ĂŒmber, mitte platvormide jaoks (loomulikult RDF-hoidlate jaoks).

GraphQL ja SPARQL'i vÔrdlemise muljed on kahetised.

  • Ühelt poolt nĂ€eb GraphQL vĂ€lja nagu kauge sugulane SPARQL'ist: selles on lahendatud REST-i iseloomulikud probleemid, nagu andmete liigne valimine ja paljusus pĂ€ringute osas — ilma milleta ei saaks ilmselt rahuldavalt arvestada pĂ€ringute keele, isegi veebis;
  • Teiselt poolt on GraphQL'i range skeemilisus pettumus. Seega nĂ€ib selle «introspektiivsus» vĂ€ga piiratud vĂ”rreldes RDF-i tĂ€ieliku refleksiivsusega. Ja puudub mis tahes analoog property paths'ile, nii et isegi ei ole eriti selge, miks see on «Graph-».

II. Adapterid MongoDB-le

Trend, mis tÀiendab eelnevat.

  • Stardogis nĂŒĂŒd on vĂ”imalik — eelkĂ”ige, kĂ”ik samal GraphQL'il — on seadistatud MongoDB andmete kuvamine virtuaalsetesse RDF-graafikutesse;
  • GraphDB on hiljuti lubab lisanud SPARQL'i MongoDB Query fragmente.

Lai runātu plaƥāk par JSON avotu adapteriem, kas ÄŒauj vairāk vai mazāk "uz vietas" attēlot ĆĄajos avotos saglabāto JSON kā RDF, var pieminēt arÄ« salÄ«dzinoĆĄi sen pieejamo SPARQL Generate, ko var pievienot nĂ€iteks, Apache Jena.

Kopsavilkumā par pirmajiem diviem virzieniem var teikt, ka RDF krātuves demonstrē pilnÄ«gu gatavÄ«bu integrācijām un darbÄ«bai “daĆŸÄdu glabāƥanas variantu” (polyglot persistence) apstākÄŒos. Tomēr ir zināms, ka pēdējais jau ilgu laiku nav modē, un tam tuvojas multimodelitāte. Un kā ir ar multimodelitāti RDF krātuÄŒu pasaulē?

Ja Ä«si, tad nekādi. Tēmai par multimodelitātes DBMS vēlētos veltÄ«t atseviĆĄÄ·u rakstu, taču ĆĄobrÄ«d var atzÄ«mēt, ka nav multimodelitātes DBMS, kas "balstās" uz grafu modeli (kas ir tā pavediena veids, ko var uzskatÄ«t par RDF). Par zināmu nelielo multimodelitāte — alternatÄ«vās grafu modeÄŒa LPG atbalsts RDF krātuvēs — tiks stāstÄ«ts V nodaČā.

III. OLTP vs. OLAP

Tomēr tas pats Gartner writes, ka multimodelitāte ir sine qua non nosacÄ«jums pirmkārt operatÄ«vajām AND. Selge on see, et "mitmekesises andmesalves" on peamised probleemid seotud tehingute tĂ€itmisega.

Aga kus asuvad RDF-andmehoidlad OLTP—OLAP skaalal? Minu vastus oleks: ei seal, ega siin. Nende mĂ”eldud kasutusalade kirjeldamiseks on vajalik mingi kolmas akronĂŒĂŒm. NĂ€iteks vĂ”iks pakkuda OLIP — VeebipĂ”hine Intellektuaalne Protsessimine.

Kuid siiski:

AnzoGraph . Reklaampilt selle toote pĂ”hjal oli artikli alguses. AnzoGraph positsioneerib end GOLAP lahendusena. Kuidas oleks SPARQL-i aknafunktsioonidega? —SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { 
 }

IV. RocksDB

Ülal oli juba

link oli link Stardog 7 Beta vĂ€ljakuulutamisel öeldi, et Stardog kavatseb kasutada aluseks olevat salvestussĂŒsteemi RocksDB — vĂ”tme-vÀÀrtuse salvestust, Facebooki haru Google'i LevelDB-st. Miks tasub juba rÀÀkida mingist trendist?

Esiteks, tÔenÀoliselt Wikipeedia artiklisse, RocksDB-le «istuvad» mitte ainult RDF-salvestused. On projekte, mis kasutavad RocksDB-d salvestusmehhanismina ArangoDB-s, MongoDB-s, MySQL-is ja MariaDB-s, Cassandra.

Teiseks, RocksDB-l pÔhinevad projektid (st mitte tooted) vastava temaatikaga.

NÀiteks kasutab eBay RocksDB-d platvormil oma «teadmusgraafi» jaoks. Muide, on huvitav lugeda: the query language started as a home grown format, but more recently it has been transitioning to be much more like SPARQL. Nagu anekdootides: kui palju teadmusgraafe ka ei loo, alati tuleb vÀlja RDF.

Teine nĂ€ide on paar kuud tagasi ilmunud Wikidata History Query Service. Enne selle ilmumist tuli ajaloolistele Wikidata andmetele pöörduda lĂ€bi MWAPI standardsest Mediawiki API-st. NĂŒĂŒd on palju vĂ”imalik puhtal SPARQL-il. «Kapoti all» on sealgi RocksDB. Muide, WDHQS-i tegi ilmselt inimene, kes tegeles Freebase'i importimisega Google Knowledge Graphi.

V. LPG toe tugi

Tulet meelde LPG graafide peamine erinevus RDF graafidest.

LPG-s vĂ”ivad servade eksemplaridel olla skalaaromadused, samas kui RDF-is saavad need kinnitada ainult "tĂŒĂŒpide" omadusi (kuid mitte ainult skalaaromadusi, vaid ka tavalisi suhteid). See piirang, mida RDF vĂ”rreldes LPG-lt kannatab, ĂŒletatakse kasutades erinevaid modelleerimistehnikaid. LPG piirangud vĂ”rreldes RDF-iga on keerulisemad, kuid LPG graafid on rohkem sarnased Harari Ă”pikute piltidele, mistĂ”ttu inimesed neid eelistavad.

Ilmselgelt jaguneb ĂŒlesanne „LPG toetamine” kaheks osaks:

  1. RDF mudelisse tehtavad muudatused, mis vÔimaldavad imiteerida LPG struktuure;
  2. muudatused RDF pĂ€ringute keeles, mis vĂ”imaldavad andmeid sel muudetud mudelil ligipÀÀseda — vĂ”i samuti vĂ”imaluse teostada pĂ€ringuid selle mudeli jĂ€rgi populaarses LPG pĂ€ringute keeltes.

V.1. Andmemudel

Siin on mitmeid vÔimalikke lÀhenemisviise.

V.1.1. Üksiku omadus

KÔige otsesem lÀhenemine RDF ja LPG harmoneerimisele on tÔenÀoliselt singleton property:

  • NĂ€iteks eelduse asemel :isMarriedTo kasutatakse eelduseid :isMarriedTo1, :isMarriedTo2 jne.
  • SeejĂ€rel muutuvad need predikaadid uute triplettide subjektideks: :isMarriedTo1 :since "2013-09-13"^^xsd:date ja sarnased.
  • Nende predikaatide eksemplaride seos ĂŒhise predikaadiga kehtestatakse triplettide vormis :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Ilmselt on nii, et rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, aga mĂ”tle, miks ei tasu lihtsalt kirjutada :isMarriedTo1 rdf:type :isMarriedTo.

Ülesanne „LPG toetamine“ lahendatakse siin RDFS tasemel. Selline lahendus nĂ”uab vastavat standard. Mingid muudatused vĂ”ivad olla vajalikud RDF-ladude jaoks, mis toetavad tagajĂ€rgede lisamist, samas kui Singleton Propertyt saab pidada lihtsalt veel ĂŒheks modelleerimise tehnikaks.

V.1.2. Reifikatsioon Ôigesti tehtud

Mugavamad lÀhenemised tulenevad teadlikkusest, et omaduste eksemplare saab tÀiesti instantsida triplettidega. Kui meil on vÔimalus rÀÀkida triplettidest, saame rÀÀkida ka omaduste eksemplaridest.

Nendest lĂ€henemistest kĂ”ige soliidsem on RDF*, tuntud ka kui RDR, mis sĂŒndis Blazegraph'i sĂŒgavustes. Seda on algusest peale valinud enda jaoks ja AnzoGraph'i jaoks. LĂ€henemise soliidne ilu seisneb selles, et selle raames katseid on vastavad muudatused RDF Semantics. Siiski on alus ÀÀrmiselt lihtne. Turtle RDF serialiseerimises saab nĂŒĂŒd kirjutada umbes nii:

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

V.1.3. Muud lÀhenemised

Ei pea formaalse semantika ĂŒle keerutama, vaid vĂ”ib lihtsalt eeldada, et tripletitel on mingid identifikaatorid, mis on loomulikult URI-d, ja luua uusi tripleteid nende URI-dega. Tuleb vaid anda juurdepÀÀs nendes URI-des SPARQL-is. Nii tegutseb Stardog. Allegrograph

jÔudis vahepealsele teele. On teada, et tripletite identifikaatorid Allegrograph-is , kuid kolmekordsete atribuutide rakendamisel ei ole need vÀljas. Siiski on formalisest semantikast kaugel. MÀrkimisvÀÀrne on, et tripletite atribuudid ei ole URI-d ja nende atribuutide vÀÀrtused vÔivad olla ainult literaalid. LPG pooldajad saavad tÀpselt seda, mida nad soovisid. Spetsiaalselt vÀlja töötatud NQX formaadis nÀeb nÀide, mis on eespooltoodud RDF* analoog, vÀlja nii: has:bob :marriedTo :alice {"since" : "2013-09-13"}

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

V.2. KĂŒsimuste keeled

Toetades mingil moel LPG mudeli tasemel, tuleb vÔimaldada andmete pÀringute tegemine sellises mudelis.

  • Blazegraph toetab pĂ€ringute tegemist RDF* jaoks SPARQL* ja Gremlin. PĂ€ring SPARQL* nĂ€eb vĂ€lja nii:

 SELECT * { <> :since ?since }

  • AnzoGraph toetab samuti SPARQL* ja kavatseb toetada Cypher, pĂ€ringukeelt Neo4j-s.
  • Stardog toetab oma laiendust SPARQL ja taas Gremlin. SPARQL-i URI kolmnurkade ja 'metaandmete' saamiseks vĂ”ib kasutada umbes sellist konstruktsiooni:

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

  • AllegroGraph toetab samuti oma laiendust SPARQL:

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

Muide, GraphDB toetas mÔne aja jooksul Tinkerpop/Gremlini, samas ei toetanud ta LPG-d, kuid versioonis 8.0 vÔi 8.1 lÔpetati see.

VI. Licenceerimise karmistamine

Viimase ajal ei ole toimunud ĂŒhtegi tĂ€iendust „triplestore of choice“ ja „open source triplestore“ ĂŒhisosas. Uued avatud lĂ€htekoodiga RDF-andmehoidlad on kaugel heaks valikuks igapĂ€evasest kasutusest, ja uute RDF-andmehoidlate lĂ€htekood, mida sooviks kasutada (nĂ€iteks AnzoGraph), on suletud. Pigem vĂ”ib rÀÀkida isegi vĂ€henemistest


Muidugi, avatud lĂ€htekood ei sulgu, kuid mĂ”ned avatud lĂ€htekoodiga hoidlad kaotavad jĂ€rk-jĂ€rgult oma atraktiivsuse. Arvan, et Virtuoso, millel on avatud lĂ€htekoodi versioon, hakkab bugide tĂ”ttu vajuma. Blazegraph ostis AWS ja see sai Amazon Neptune'i aluseks; nĂŒĂŒd on ebaselge, kas tuleb veel mĂ”ni vĂ€ljalase. JÀÀnud on vaid Jena


Kui avatud lÀhtekood pole eriti oluline ja soovid lihtsalt proovida, siis on olukord samuti vÀhem lootustandev kui varem. NÀiteks:

  • Stardog lĂ”petab tasuta versiooni levitamise (kuid tegelikult on tavaline prooviperiood kahekordistunud);
  • ĂŒhes GraphDB Cloud, kus varasemalt sai valida tasuta pĂ”hiplaani, on uute kasutajate registreerimine peatatud.

KokkuvĂ”ttes muutub kosmos tavalisele IT-inimesele ĂŒha kĂ€ttesaamatumaks, selle saavutamine jÀÀb suurkorporatsioonide mĂ€nguks.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster