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
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.
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.
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: