Dab tsi tshwm sim nrog RDF cia tam sim no?

Semantic Web thiab Linked Data zoo li qhov chaw sab nraud: tsis muaj lub neej nyob ntawd. Mus rau qhov ntawd ntau dua lossis tsawg dua lub sijhawm ... Kuv tsis paub qhov lawv tau hais rau koj li cas thaum menyuam yaus teb rau "Kuv xav dhau los ua tus neeg caij nkoj." Tab sis koj tuaj yeem soj ntsuam qhov tshwm sim thaum nyob hauv ntiaj teb; Nws yog qhov yooj yim dua los ua ib tug amateur astronomer lossis txawm tias tus kws tshaj lij.

Tsab ntawv xov xwm yuav tsom mus rau qhov tsis ntev los no, tsis muaj hnub nyoog tshaj li ob peb lub hlis, tiam sis los ntawm lub ntiaj teb ntawm RDF cia. Cov piv txwv nyob rau hauv thawj kab lus yog tshwm sim los ntawm epic-loj advertising duab nyob rau hauv qhov txiav.


Epic duab

Dab tsi tshwm sim nrog RDF cia tam sim no?

I. GraphQL rau RDF nkag

Lawv haistias GraphQL lub hom phiaj los ua ib qho kev nkag mus rau cov ntaub ntawv thoob ntiaj teb. Puas muaj peev xwm nkag tau rau RDF siv GraphQL?

Tawm ntawm lub thawv no lub sijhawm yog muab los ntawm:

Yog tias lub chaw khaws cia tsis muab lub sijhawm zoo li no, nws tuaj yeem siv nws tus kheej los ntawm kev sau ib qho "resolver" tsim nyog. Nov yog qhov lawv tau ua, piv txwv li, hauv Fab Kis qhov project DataTourisme. Lossis koj tsis tuaj yeem sau dab tsi ntxiv lawm, tab sis tsuas yog nqa HyperGraphQL.

Los ntawm qhov kev xav ntawm kev ntseeg orthodox adherent ntawm Semantic Web thiab Linked Data, tag nrho cov no, ntawm chav kawm, yog tu siab, vim nws zoo nkaus li tsim rau kev sib koom ua ke ua ib ncig ntawm cov ntaub ntawv tom ntej, thiab tsis haum platforms (RDF khw, tau kawg) .

Qhov kev xav los ntawm kev sib piv GraphQL nrog SPARQL yog ob npaug.

  • Ntawm ib sab, GraphQL zoo li tus txheeb ze nyob deb ntawm SPARQL: nws daws cov teeb meem ntawm resampling thiab ntau cov lus nug uas raug rau REST - tsis muaj qhov twg, tej zaum, nws yuav tsis tuaj yeem xav txog. lus nug, yam tsawg kawg rau lub vev xaib;
  • Ntawm qhov tod tes, qhov nruj schema ntawm GraphQL poob siab. Yog li ntawd, nws "introspectiveness" zoo nkaus li txwv heev piv rau tag nrho reflexivity ntawm RDF. Thiab tsis muaj qhov sib piv ntawm cov cuab yeej txoj hauv kev, yog li nws tsis paub meej vim li cas nws yog "Graph-".

II. Adapters rau MongoDB

Ib qho piv txwv ntxiv rau yav dhau los.

  • Hauv Stardog tam sim no yog ua tau - tshwj xeeb, tag nrho ntawm tib GraphQL - teeb tsa daim duab qhia ntawm MongoDB cov ntaub ntawv rau hauv virtual RDF graphs;
  • Ontotext GraphDB tsis ntev los no nws tso cai rau ntxig fragments rau hauv SPARQL ntawm MongoDB Query.

Yog tias peb tham ntau dua txog kev hloov pauv rau JSON cov peev txheej, uas tso cai ntau dua lossis tsawg dua "ntawm ya" los sawv cev JSON khaws cia hauv cov peev txheej no ua RDF, peb tuaj yeem nco qab qhov ntev ntev. SPARQL Tsim, uas tuaj yeem hloov kho, piv txwv, rau Apache Jena.

Raws li cov ntsiab lus ntawm thawj ob lub tswv yim, peb tuaj yeem hais tias RDF khaws cia ua kom pom kev npaj txhij rau kev sib koom ua ke thiab kev ua haujlwm hauv cov xwm txheej ntawm "polyglot persistence". Nws paub, txawm li cas los xij, tias qhov tom kawg no tau ntev dhau los ntawm kev zam, thiab tau hloov los ntawm yog los ntau tus qauv. Yuav ua li cas txog ntau tus qauv hauv ntiaj teb ntawm RDF cia?

Hauv luv, tsis muaj txoj kev. Kuv xav muab ib tsab xov xwm cais rau lub ntsiab lus ntawm ntau tus qauv DBMSs, tab sis tam sim no nws tuaj yeem raug sau tseg tias tam sim no tsis muaj ntau tus qauv DBMSs "raws li" ntawm tus qauv duab (RDF tuaj yeem suav tias yog hom ntawm nws) . Qee tus qauv me me - RDF cia kev txhawb nqa rau lwm LPG daim duab qauv - yuav tau tham hauv ntu V.

III. OLTP vs. OLAP

Txawm li cas los xij, tib yam Gartner nws sau hais tiasuas multimodel yog sine qua tsis mob feem ntau rau chav ua haujlwm DBMS. Qhov no yog to taub: nyob rau hauv ib qho xwm txheej ntawm "multivariate cia", cov teeb meem tseem ceeb tshwm sim nrog kev hloov pauv.

Tab sis qhov twg RDF khaws cia nyob rau ntawm OLTP-OLAP nplai? Kuv yuav teb li no: tsis muaj los yog nyob ntawm no. Txhawm rau qhia tias lawv xav tau dab tsi, yuav tsum muaj qee tus lej thib peb. Raws li ib qho kev xaiv kuv xav qhia OLIP - Kev Txawj Ntse Hauv Online.

Txawm li cas los xij, tseem:

  • cov txheej txheem kev koom ua ke nrog MongoDB siv hauv GraphDB tsis tsawg npaj ua haujlwm nyob ib puag ncig sau cov teeb meem kev ua haujlwm;
  • Stardog mus ntxiv thiab tag nrho rov sau dua cav, dua nrog lub hom phiaj ntawm kev txhim kho cov ntaubntawv povthawj siv.

Tam sim no cia kuv qhia tus neeg ua si tshiab rau kev ua lag luam. Los ntawm cov tsim ntawm IBM Netezza thiab Amazon Redshift - AnzoGraphβ„’. Ib daim duab los ntawm kev tshaj tawm rau ib yam khoom raws li nws tau muab tso rau thaum pib ntawm tsab xov xwm. AnzoGraph tso nws tus kheej ua GOLAP kev daws teeb meem. Koj nyiam SPARQL li cas nrog lub qhov rais ua haujlwm? β€”

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

IV. RocksDB

Twb siab lawm muaj ib qhov txuas rau kev tshaj tawm ntawm Stardog 7 Beta, uas tau hais tias Stardog yuav siv RocksDB raws li lub hauv paus chaw cia khoom - lub khw muag khoom tseem ceeb, Facebook diav rawg ntawm Google's LevelDB. Vim li cas thiaj tsim nyog tham txog ib qho kev sib txawv?

Ua ntej, txiav txim los ntawm Wikipedia tsab xov xwm, tsis tsuas yog RDF khaws cia yog "hloov" rau RocksDB. Muaj cov phiaj xwm siv RocksDB ua lub cav cia hauv ArangoDB, MongoDB, MySQL thiab MariaDB, Cassandra.

Qhov thib ob, cov haujlwm (uas yog, tsis yog cov khoom lag luam) ntawm cov ncauj lus tseem ceeb yog tsim los ntawm RocksDB.

Piv txwv li, eBay siv RocksDB hauv lub platform rau koj "knowledge graph". Los ntawm txoj kev, nws yog funny nyeem: cov lus nug tau pib ua hom ntawv cog qoob loo hauv tsev, tab sis tsis ntev los no nws tau hloov mus ua ntau yam zoo li SPARQL. Ib yam li hauv lus tso dag: txawm hais tias peb muaj kev paub ntau npaum li cas, peb tseem xaus nrog RDF.

Lwm qhov piv txwv - ib qho uas tshwm sim ob peb lub hlis dhau los Wikidata Keeb Kwm Query Service. Ua ntej nws taw qhia, Wikidata cov ntaub ntawv keeb kwm yuav tsum tau nkag mus los ntawm MUA mus rau tus txheej txheem Mediawiki API. Tam sim no muaj ntau yam ua tau nrog ntshiab SPARQL. "Hauv qab hood" tseem muaj RocksDB. Los ntawm txoj kev, WDHQS tau tsim, zoo li, los ntawm tus neeg uas tau import Freebase rau hauv Google Knowledge Graph.

V. LPG kev them nyiaj yug

Cia kuv ceeb toom koj txog qhov sib txawv tseem ceeb ntawm LPG graphs thiab RDF graphs.

Hauv LPG, scalar cov khoom tuaj yeem raug xa mus rau cov xwm txheej ntug, thaum nyob rau hauv RDF lawv tsuas tuaj yeem raug xa mus rau ntug "hom" (tab sis tsis yog cov khoom siv scalar nkaus xwb, tab sis kuj muaj kev sib txuas zoo tib yam). Qhov kev txwv no ntawm RDF piv rau LPG kov yeej ib los yog lwm txoj kev ua qauv. Cov kev txwv ntawm LPG piv rau RDF yog qhov nyuaj rau kev kov yeej, tab sis LPG daim duab zoo li cov duab los ntawm phau ntawv Harari dua li RDF cov duab, uas yog vim li cas tib neeg xav tau lawv.

Pom tseeb, txoj haujlwm ntawm "kev txhawb nqa LPG" poob rau ob ntu:

  1. kev hloov pauv rau RDF qauv uas ua rau nws muaj peev xwm simulate LPG cov qauv hauv nws;
  2. Kev hloov pauv rau RDF cov lus nug uas ua rau nws tuaj yeem nkag mus rau cov ntaub ntawv hauv cov qauv hloov kho no, lossis siv lub peev xwm los nug cov qauv no hauv cov lus nug nrov LPG.

V.1. Cov ntaub ntawv qauv

Muaj ob peb txoj hauv kev tuaj yeem nyob ntawm no.

V.1.1. Singleton Khoom

Txoj hauv kev zoo tshaj plaws rau kev sib haum xeeb RDF thiab LPG yog tej zaum singleton khoom:

  • Es tsis txhob, piv txwv li, lub predicate :isMarriedTo predicates yog siv :isMarriedTo1, :isMarriedTo2 thiab ua li ntawd.
  • Cov predicates ces dhau los ua cov ntsiab lus ntawm triplets tshiab: :isMarriedTo1 :since "2013-09-13"^^xsd:date thiab lwm tus.
  • Kev sib txuas ntawm cov piv txwv ntawm cov predicates nrog ib qho kev sib koom ua ke yog tsim los ntawm triplets ntawm daim ntawv :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Hais meej, rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, tab sis xav txog vim li cas koj yuav tsum tsis txhob sau xwb :isMarriedTo1 rdf:type :isMarriedTo.

Qhov teeb meem ntawm "kev txhawb nqa LPG" yog daws ntawm no ntawm RDFS qib. Qhov kev txiav txim siab zoo li no yuav tsum tau suav nrog hauv qhov tsim nyog txuj. Qee qhov kev hloov pauv yuav xav tau rau RDF cov khw muag khoom uas txhawb nqa qhov tshwm sim, tab sis tam sim no, Singleton Property tuaj yeem xav tias tsuas yog lwm cov qauv tsim qauv.

V.1.2. Reification Ua Tau Zoo

Tsawg naive mus kom ze tshwm sim los ntawm kev paub tias cov khoom vaj khoom tsev yog tam sim no los ntawm triplets. Los ntawm muaj peev xwm hais ib yam dab tsi txog triplets, peb yuav muaj peev xwm tham txog cov khoom vaj tse.

Qhov zoo tshaj plaws ntawm cov txheej txheem no yog RDF*, aka RDR, yug hauv qhov tob ntawm Blazegraph. Nws yog los ntawm qhov pib xaiv rau koj tus kheej thiab AnzoGraph. Lub solidity ntawm txoj kev yog txiav txim los ntawm qhov tseeb hais tias nyob rau hauv nws lub moj khaum muaj hloov pauv hauv RDF Semantics. Lub ntsiab lus, txawm li cas los xij, yog qhov yooj yim heev. Hauv vaub kib serialization ntawm RDF koj tam sim no tuaj yeem sau qee yam zoo li no:

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

V.1.3. Lwm txoj hauv kev

Koj tsis tuaj yeem thab nrog cov semantics raug cai, tab sis tsuas yog xav tias triplets muaj qee yam cim, uas yog, tau kawg, URIs, thiab tsim triplets tshiab nrog URIs. Txhua yam uas tseem tshuav yog muab kev nkag mus rau cov URIs hauv SPARQL. Yog li tuaj txog Stardog.

Hauv Allegrograph mus nyob rau hauv ib txoj kev nruab nrab. Nws paub tias triplet identifiers hauv Allegrograph yog, tab sis thaum siv peb tus cwj pwm lawv tsis lo. Txawm li cas los xij, nws tseem nyob deb heev ntawm kev siv semantics. Nws yog ib qho tseem ceeb uas peb cov cwj pwm tsis yog URIs, thiab cov txiaj ntsig ntawm cov cwj pwm no tuaj yeem tsuas yog cov ntawv nyeem xwb. LPG adherents tau raws nraim qhov lawv xav tau. Hauv tshwj xeeb tsim NQX hom ntawv, piv txwv zoo ib yam li ib qho saum toj no rau RDF * zoo li qhov no:

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

V.2. Lus nug

Muaj kev txhawb nqa LPG nyob rau hauv ib txoj kev lossis lwm qhov ntawm tus qauv qib, koj yuav tsum ua kom nws muaj peev xwm ua cov lus nug ntawm cov ntaub ntawv hauv cov qauv zoo li no.

  • Blazegraph rau RDF * cov lus nug txhawb nqa SPARQL* ΠΈ gremlin. SPARQL * lus nug zoo li no:

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

  • Anzograph kuj txhawb nqa SPARQL* thiab yuav txhawb nqa Cypher, lus nug hauv Neo4j.
  • Stardog txhawb nws tus kheej nthuav SPARQL thiab dua Gremlin. Koj tuaj yeem tau txais triplet URI thiab "meta-cov ntaub ntawv" hauv SPARQL siv qee yam zoo li no:

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

  • Allegrograph kuj txhawb nws tus kheej nthuav SPARQL:

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

Los ntawm txoj kev, GraphDB ib zaug txhawb Tinkerpop / Gremlin yam tsis txhawb LPG, tab sis qhov no tau nres hauv version 8.0 lossis 8.1.

VI. Tightening ntawm daim ntawv tso cai

Tsis muaj qhov tsis ntev los no ntxiv rau qhov kev sib tshuam ntawm "triplestore ntawm kev xaiv" thiab "qhib qhov chaw triplestore" teev. Cov khw muag khoom qhib tshiab RDF yog txoj hauv kev ntev los ntawm kev xaiv zoo rau kev siv txhua hnub, thiab cov khw muag khoom tshiab peb zaug uas kuv xav siv (xws li AnzoGraph) yog qhov chaw kaw. Hloov chaw, peb tuaj yeem tham txog kev txo qis ...

Tau kawg, qhib qhov chaw tsis tau raug kaw yav dhau los, tab sis qee qhov qhib qhov chaw khaws cia tau maj mam tsis pom tias tsim nyog xaiv. Virtuoso, uas muaj ib qho kev tshaj tawm opensource, hauv kuv lub tswv yim, poob rau hauv kab. Blazegraph tau yuav los ntawm AWS thiab tsim lub hauv paus ntawm Amazon Neptune; tam sim no nws tsis paub meej tias yuav muaj tsawg kawg yog ib qho kev tso tawm ntxiv. Tsuas yog Jena tseem nyob ...

Yog tias qhib qhov chaw tsis tseem ceeb heev, tab sis koj tsuas yog xav sim nws, ces txhua yam kuj tsis tshua muaj rosy dua li ua ntej. Piv txwv li:

  • Stardog nres faib cov dawb version (txawm li cas los xij, lub sijhawm sim ntawm cov version ib txwm muaj ob npaug);
  • Π² GraphDB Huab, qhov twg yav dhau los koj tuaj yeem xaiv txoj kev npaj pub dawb, cov neeg siv npe tshiab tau raug ncua.

Feem ntau, rau tus neeg nruab nrab IT, qhov chaw tau dhau los ua tsis tau zoo; nws txoj kev loj hlob tau dhau los ua ntau lub koom haum.

Tau qhov twg los: www.hab.com

Ntxiv ib saib