Semantic Web ะธ Linked Data ะฟะพะดะพะฑะฝั ะฑะปะธะถะฝะตะผั ะบะพัะผะพัั: ะถะธะทะฝะธ ัะฐะผ ะฝะตั. ะงัะพะฑั ะพัะฟัะฐะฒะธัััั ััะดะฐ ะฝะฐ ะฑะพะปะตะต-ะผะตะฝะตะต ะดะปะธัะตะปัะฝัะน ััะพะบโฆ ะฝั, ะฝะต ะทะฝะฐั, ััะพ ะณะพะฒะพัะธะปะธ ะฒะฐะผ ะฒ ะดะตัััะฒะต ะฒ ะพัะฒะตั ะฝะฐ ยซั ะพัั ััะฐัั ะบะพัะผะพะฝะฐะฒัะพะผยป. ะะพ ะฟะพะฝะฐะฑะปัะดะฐัั ะทะฐ ะฟัะพะธัั ะพะดััะธะผ ะผะพะถะฝะพ ะธ ะฝะฐั ะพะดััั ะฝะฐ ะะตะผะปะต; ััะฐัั ะฐัััะพะฝะพะผะพะผ-ะปัะฑะธัะตะปะตะผ ะธะปะธ ะดะฐะถะต ะฟัะพัะตััะธะพะฝะฐะปะพะผ ะณะพัะฐะทะดะพ ะฟัะพัะต.
ะ ััะฐััะต ัะตัั ะฟะพะนะดะตั ะพ ัะฒะตะถะธั , ะฝะต ััะฐัะตะต ะฝะตัะบะพะปัะบะธั ะผะตัััะตะฒ, ััะตะฝะดะฐั ะธะท ะผะธัะฐ RDF-ั ัะฐะฝะธะปะธั. ะะตัะฐัะพัะฐ ะฒ ะฟะตัะฒะพะผ ะฐะฑะทะฐัะต ะฑัะปะฐ ะฝะฐะฒะตัะฝะฐ ัะฟะธัะตัะบะธั ัะฐะทะผะตัะพะฒ ัะตะบะปะฐะผะฝะพะน ะบะฐััะธะฝะบะพะน ะฟะพะด ะบะฐัะพะผ.
แแแแแฃแ แ แกแฃแ แแแ
I. GraphQL RDF แฌแแแแแแกแแแแก
แงแฃแแแแแ แแก แจแแกแแซแแแแแแแ แแแชแแแฃแแแ:
- แแแ แกแแแแแแฃแ แ แซแแฆแแ (
แฌแแแแแฎแแ ,แแแแฃแแแแขแแชแแ ); - TopQuadrant แแ แแแฃแฅแขแแแ (
webinar ,แแแแฃแแแแขแแชแแ ).
แแฃ แกแแชแแแ แแ แแซแแแแ แแกแแ แจแแกแแซแแแแแแแแก, แแแกแ แแแแแฃแแแแแแแแ แแแแฎแแ แชแแแแแแ แจแแกแแซแแแแแแแ แจแแกแแแแแแกแ โแแแแฎแกแแแแแกโ แแแฌแแ แแ. แแกแ แแแแแแแแก, แแแแแแแแแ, แคแ แแแแฃแ แแ แแแฅแขแจแ
แกแแแแแขแแแฃแ แ แแแแกแ แแ แแแแแแจแแ แแแฃแแ แแแแแชแแแแแแก แแแ แแแแแแแแแแแฃแ แ แแแแแแแ แแก แแแแแกแแแ แแกแแ, แแก แงแแแแแคแแ แ, แ แ แแฅแแ แฃแแแ, แกแแแฌแฃแฎแแ แแ, แ แแแแแ แแก, แ แแแแ แช แฉแแแก, แจแแฅแแแแแแ แจแแแแแแ แแแแแชแแแแ แกแแแแก แแแ แจแแแ แแแแแฃแแ แแแขแแแ แแชแแแกแแแแก แแ แแ แ แจแแกแแคแแ แแกแ แแแแขแคแแ แแแแแกแแแแก (RDF แแแฆแแแแแแ, แ แ แแฅแแ แฃแแแ) .
GraphQL SPARQL-แแแ แจแแแแ แแแแก แจแแแแแญแแแแแแแแ แแ แแแแแ.
- แแ แแแก แแฎแ แแ, GraphQL แฐแแแแก SPARQL-แแก แจแแ แแฃแ แแแแแกแแแก: แแก แฌแงแแแขแก REST-แแกแแแแก แแแแแฎแแกแแแแแแแ แฎแแแแฎแแแ แจแแ แฉแแแแกแ แแ แแ แแแแแ แแแแฎแแแแแก แแ แแแแแแแแก - แ แแแแแก แแแ แแจแแช, แแแแแ, แจแแฃแซแแแแแแ แแฅแแแแแแ แแแแฎแแแแ. แจแแแแแฎแแแก แแแ, แงแแแแ แจแแแแฎแแแแแจแ แแแแแกแแแแก;
- แแแแ แแก แแฎแ แแ, GraphQL-แแก แฎแแกแขแ แกแฅแแแ แแแแแแแชแ แฃแแแฃแแแ. แจแแกแแแแแแกแแ, แแแกแ โแแแขแ แแกแแแฅแขแแฃแแแแโ แซแแแแแ แจแแแฆแฃแแฃแแ แฉแแแก RDF-แแก แกแ แฃแ แ แแคแแแฅแกแฃแ แแแแกแแแ แจแแแแ แแแแ. แแ แแ แแ แกแแแแแก แกแแแฃแแ แแแแก แแแแแแแแแก แแแแแแแ, แแกแ แ แแ, แแ แช แแ แแ แแก แแแแแแ, แ แแขแแ แแ แแก แแก "แแ แแคแแแ".
II. แแแแแขแแ แแแ MongoDB-แกแแแแก
แฌแแแ แขแแแแแแชแแแก แแแกแแแก.
- ะฒ Stardog ัะตะฟะตัั
แแแแแ - แแแ แซแแ, แงแแแแ แแ แแกแ แแ แแแแแ GraphQL-แแ - แแแแแแแคแแแฃแ แแ แแ MongoDB แแแแแชแแแแแแก แ แฃแแแแ แแแ แขแฃแแแฃแ RDF แแ แแคแแแแแจแ; - GraphDB ั ะฝะตะดะฐะฒะฝะธั
ะฟะพั
แกแแจแฃแแแแแแก แแซแแแแก แฉแแแแ แคแ แแแแแแขแแแ SPARQL-แจแ MongoDB Query-แแ.
แแฃ แฃแคแ แ แคแแ แแแ แแแกแแฃแแ แแแ JSON แฌแงแแ แแแแแก แแแแแขแแ แแแแ, แ แแแแแแแช แกแแจแฃแแแแแแก แแซแแแแก แแแข-แแแแแแแแ โแคแ แแแแจแโ แฌแแ แแแแแแแแแ แแ แฌแงแแ แแแแจแ แจแแแแฎแฃแแ JSON, แ แแแแ แช RDF, แจแแแแแซแแแ แแแแแฎแกแแแแ แกแแแแแแ แแแแ แฎแแแก แแแแแแแแแแแจแ.
แแแ แแแแ แแ แ แขแแแแแแชแแแก แจแแฏแแแแแแ, แจแแแแแซแแแ แแแฅแแแ, แ แแ RDF แกแแชแแแแแ แแฉแแแแแแก แกแ แฃแ แแแแแงแแคแแแก แแแขแแแ แแชแแแกแแแแก แแ แคแฃแแฅแชแแแแแ แแแแกแแแแก โแแแแแแแแขแฃแ แ แแแแ แแแแแแกโ แแแ แแแแแจแ. แแฃแแชแ แชแแแแแแแ, แ แแ แแก แฃแแแแแกแแแแแ แแแแ แฎแแแแ แแแแแแแ แแแแแแ แแ แแแกแ แฉแแแแชแแแแแ แฎแแแแ
แแแแแแ, แแ แแแแแแ แจแแแแฎแแแแแจแ. แแกแฃแ แก แชแแแแ แกแขแแขแแ แแแแฃแซแฆแแแ แแ แแแแแแแแแแฃแ แ DBMS-แแแแก แแแแแก, แแแแ แแ แแ แแ แแแกแแแแก แจแแแซแแแแ แแฆแแแแจแแแก, แ แแ แแแแแแแ แแ แแ แกแแแแแก แแ แแแแแแแแแแฃแ แ DBMS-แแแ, แ แแแแแแแช โแแแคแฃแซแแแแฃแแแโ แแ แแคแแแฃแ แแแแแแแ (RDF แจแแแซแแแแ แฉแแแแแแแแก แแแก แขแแแแ). . แ แแแแแแแแ แแชแแ แ แแ แแแแ แแแแแแแ แแแ - RDF แจแแแแฎแแแก แแฎแแ แแแญแแ แ แแแขแแ แแแขแแฃแแ LPG แแ แแคแแแแก แแแแแแแกแแแแก - แแแแฎแแแฃแแ แแฅแแแแ
III. OLTP vs. OLAP
แแฃแแชแ, แแแแแ Gartner
แแแแ แแ แกแแ แแแแแแ แแแแก RDF แกแแชแแแแแ OLTP-OLAP แแแกแจแขแแแแ? แแ แแกแ แแแแแกแฃแฎแแแแ: แแ แช แแฅ แแ แแ แช แแฅ. แแแแก แแแแแแแแแกแแแแก, แแฃ แ แแกแแแแก แแ แแก แแแแแฃแแแแแแ, แกแแญแแ แแ แแแกแแแ แแแ แแแแแขแฃแ แ. แ แแแแ แช แแแ แแแแขแก แแ แจแแแแแแแแแแแแแ OLIP โ แแแแแแ แแแขแแแแฅแขแฃแแแฃแ แ แแแแฃแจแแแแแ.
แแฃแแชแ, แแแแแช:
- GraphDB-แจแ แแแแแ แแแแ MongoDB-แแแ แแแขแแแ แแชแแแก แแแฅแแแแแแแแ แแ แแแแแแแ แแแแจแแแแแแแแแแ
แแแแแฃแแแแแแแ แฌแแ แแก แจแแกแ แฃแแแแแก แกแแแแแฎแแแแก แแ แแแแแ แแฃแจแแแแ; - Stardog แแแแแ แฃแคแ แ แจแแ แก แแ แแแแแแแแ แแแแแก
แแแแแฌแแ แก แซแ แแแ, แแกแแ แฉแแฌแแ แแก แจแแกแ แฃแแแแแก แแแฃแแฏแแแแกแแแแก แแแแแแ.
ะ ัะตะฟะตัั ัะฐะทัะตัะธัะต ะฟัะตะดััะฐะฒะธัั ะฝะพะฒะพะณะพ ะธะณัะพะบะฐ ะฝะฐ ััะฝะบะต. ะพั ัะพะทะดะฐัะตะปะตะน IBM Netezza ะธ Amazon Redshift โ
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { โฆ }
IV. RocksDB
แฃแแแ แแแฆแแ
แแแ แแแ แ แแแจแ, แแแแกแฏแแแแแ
แแแแ แแช, RocksDB-แแ แแฅแแแแแ แแ แแแฅแขแแแ (แแแฃ แแ แแแฃแฅแขแแแ) แจแแกแแแแแแก แแแแแแแ.
แแแแแแแแแ, eBay แแงแแแแแก RocksDB-แจแ
แแแแแ แแ แแ แแแแแแแแ - แแก, แ แแแแแแช แ แแแแแแแแ แแแแก แฌแแ แแแแแฉแแแ
V. LPG แแฎแแ แแแญแแ แ
แแแแ แแแแแชแแ แจแแแแฎแกแแแแ แแแแแแ แ แแแแกแฎแแแแแแ LPG แแ แแคแแแแแกแ แแ RDF แแ แแคแแแแแก แจแแ แแก.
LPG-แจแ แกแแแแแ แฃแแ แแแแกแแแแแ แจแแแซแแแแ แแแแแแญแแก แแแแแแแแก แแแกแขแแแชแแแแก, แฎแแแ RDF-แจแ แแแแ แแแแแญแแแ แจแแกแแซแแแแแแแ แแฎแแแแ แแแแแแแแก โแขแแแแแแโ (แแแแ แแ แแ แ แแฎแแแแ แกแแแแแ แฃแแ แแแแกแแแแแ, แแ แแแแ แฉแแแฃแแแแ แแแ แแแแจแแ แแแแช). RDF-แแก แแก แจแแแฆแฃแแแ LPG-แแแ แจแแแแ แแแแ
แชแฎแแแแ, "LPG แแฎแแ แแแญแแ แแก" แแแแชแแแ แแ แแแฌแแแแ แแงแแคแ:
- RDF แแแแแแจแ แชแแแแแแแแแแก แจแแขแแแ, แ แแช แจแแกแแซแแแแแแก แฎแแแก แแแกแจแ LPG แกแขแ แฃแฅแขแฃแ แแแแก แกแแแฃแแแชแแแก;
- แชแแแแแแแแแแก แจแแขแแแ RDF แจแแแแแฎแแแก แแแแจแ, แ แแช แจแแกแแซแแแแแแก แฎแแแก แแ แจแแชแแแแ แแแแแแจแ แแแแแชแแแแแแ แฌแแแแแแก, แแ แแ แแแแแแแ แแแแฎแแแแแแแก แแแงแแแแแแก แจแแกแแซแแแแแแแแก แแแแแ แแแ LPG-แแก แแแแฎแแแแแก แแแแฃแแแ แฃแ แแแแแแ.
V.1. แแแแแชแแแแ แแแแแแ
แแฅ แ แแแแแแแแ แจแแกแแซแแ แแแแแแแแ.
V.1.1. แกแแแแแขแแแแก แฅแแแแแ
RDF แแ LPG แฐแแ แแแแแแแชแแแก แงแแแแแแ แแแ แแแแแ แ แแแแแแแ แแแแแ แแ แแก
- แแแแแแแแแ, แแ แแแแแแขแแก แแแชแแแแ
:isMarriedTo
แแแแแแงแแแแแ แแ แแแแแแขแแแ:isMarriedTo1
,:isMarriedTo2
i t. แ. - แแก แแ แแแแแแขแแแ แจแแแแแ แฎแแแแ แแฎแแแ แกแแแแฃแแแก แกแแแแแแ:
:isMarriedTo1 :since "2013-09-13"^^xsd:date
แแ แ.แจ. - แแ แแแแแแขแแแแก แแ แจแแแแฎแแแแแแแก แแแแจแแ แ แกแแแ แแ แแ แแแแแแขแแแ แแงแแ แแแแ แคแแ แแแก แกแแแแฃแแแแแ
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo
. - แชแฎแแแแ,
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type
, แแแแ แแ แแแคแแฅแ แแแ, แ แแขแแ แแ แฃแแแ แแแฌแแ แแ:isMarriedTo1 rdf:type :isMarriedTo
.
"LPG แแฎแแ แแแญแแ แแก" แแ แแแแแแ แแแแแแ แแแฃแแแ แแฅ RDFS แแแแแแ. แแกแแแ แแแแแฌแงแแแขแแแแแ แแแแแฎแแแก แจแแกแแแแแแกแจแ แฉแแ แแแแก
V.1.2. แ แแคแแแแชแแ แจแแกแ แฃแแแแฃแแแ แกแฌแแ แแ
แแแแแแแแ แแฃแแฃแแ แงแแแแ แแแแแแแแแ แแแแแแแแแแ แแแแก แแแแก แแแชแแแแแแ แแแแ, แ แแ แกแแแฃแแ แแแแก แจแแแแฎแแแแแแ แกแ แฃแแแ แฌแแ แแแฃแแแแแแแแ แกแแแแฃแแแ. แกแแแแฃแแแ แ แแฆแแชแแก แแฅแแแก แจแแกแแซแแแแแแแแ, แฉแแแ แจแแแซแแแแ แแแกแแฃแแ แแ แกแแแฃแแ แแแแก แจแแแแฎแแแแแแแ.
แแ แแแแแแแแแแแแ แงแแแแแแ แซแแแแ แแ
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .
V.1.3. แกแฎแแ แแแแแแแแแ
แแฅแแแ แแ แจแแแแซแแแแ แจแแฌแฃแฎแแแ แคแแ แแแแฃแ แ แกแแแแแขแแแแ, แแแแ แแ แฃแแ แแแแ แแแแแ แแฃแแแ, แ แแ แขแ แแแแแขแแแก แแฅแแ แแแ แแแแฃแแ แแแแแขแแคแแแแขแแ แแแ, แ แแแแแแแช, แ แ แแฅแแ แฃแแแ, แแ แแก URI-แแแ แแ แแ URI-แแแแ แฅแแแแแ แแฎแแ แกแแแแฃแแแแก. แ แฉแแแ แแฎแแแแ SPARQL-แจแ แแ URI-แแแแ แฌแแแแแแก แแแชแแแ. แฒแกแ
แแแแแ แแแ แแคแจแ
:bob :marriedTo :alice {"since" : "2013-09-13"}
V.2. แจแแแแแฎแแแก แแแแแ
แแแแแแแก แแแแแแ แแแ แแฃ แแ แแแแ LPG-แก แแฎแแ แแแญแแ แแ, แแฅแแแ แฃแแแ แจแแแแซแแแ แแกแแ แแแแแแจแ แแแแแชแแแแแแก แจแแแแแฎแแแก แแแแแแแแ.
- Blazegraph RDF* แแแแฎแแแแแแแกแแแแก แแฎแแ แก แฃแญแแ แก
SPARQL* ะธแแ แแแแแ . SPARQL* แจแแแแแฎแแ แแกแ แแแแแแงแฃแ แแแ:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }
- แแแแแแ แแคแ แแกแแแ แแฎแแ แก แฃแญแแ แก
SPARQL* แแ แแแแ แแแก แแฎแแ แแแญแแ แแกCypher , แจแแแแแฎแแแก แแแ Neo4j-แจแ. - Stardog แแฎแแ แก แฃแญแแ แก แกแแแฃแแแ แแแแก
แแแคแแ แแแแแ SPARQL แแแแกแแ แแ แแแแแแ. แแฅแแแ แจแแแแซแแแแ แแแแฆแแ แขแ แแแแแขแ URI แแ โแแแขแ-แแแคแแ แแแชแแโ SPARQL-แจแ แแกแแแแกแ แ แแแแก แแแแแงแแแแแแ:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}
- แแแแแ แแแ แแคแ แแกแแแ แแฎแแ แก แฃแญแแ แก แกแแแฃแแแ แก
แแแคแแ แแแแแ SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }
แกแฎแแแแ แจแแ แแก, GraphDB แแ แ แแ แแก แแฎแแ แก แฃแญแแ แแ Tinkerpop/Gremlin-แก LPG-แแก แแฎแแ แแแญแแ แแก แแแ แแจแ, แแแแ แแ แแก แจแแฉแแ แแ 8.0 แแ 8.1 แแแ แกแแแจแ.
VI. แแแชแแแแแแแแก แแแแแแชแ แแแ
ะะธะบะฐะบะธั ะฟัะธะฑะฐะฒะปะตะฝะธะน ะฒ ะฟะตัะตัะตัะตะฝะธะธ ะผะฝะพะถะตััะฒ ยซtriplestore of choiceยป ะธ ยซopen source triplestoreยป ะฒ ะฟะพัะปะตะดะฝะตะต ะฒัะตะผั ะฝะต ัะปััะฐะปะพัั. ะะพะฒัะผ RDF-ั ัะฐะฝะธะปะธัะฐะผ ั ะพัะบััััะผ ะธัั ะพะดะฝัะผ ะบะพะดะพะผ ะดะฐะปะตะบะพ ะดะพ ัะพะณะพ, ััะพะฑั ััะฐัั ั ะพัะพัะธะผ ะฒัะฑะพัะพะผ ะดะปั ะฟะพะฒัะตะดะฝะตะฒะฝะพะณะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธั, ะฐ ะธัั ะพะดะฝัะน ะบะพะด ะฝะพะฒัั RDF-ั ัะฐะฝะธะปะธั, ะบะพัะพััะต ั ะพัะตะปะพัั ะฑั ะฟะพะธัะฟะพะปัะทะพะฒะฐัั (ัะพะณะพ ะถะต AnzoGraph), ะทะฐะบััั. ะกะบะพัะตะต ะผะพะถะฝะพ ะณะพะฒะพัะธัั ะดะฐะถะต ะพะฑ ัะฑะฐะฒะปะตะฝะธัั โฆ
แ แ แแฅแแ แฃแแแ, แฆแแ แฌแงแแ แ แแ แแงแ แแแฎแฃแ แฃแแ แฌแแ แกแฃแแจแ, แแแแ แแ แแแแแแ แแ แฆแแ แแแแแก แกแแชแแแ แแแ-แแแแ แแฆแแ แแ แแก แแฆแฅแแฃแแ, แ แแแแ แช แแ แฉแแแแก แฆแแ แกแ. Virtuoso, แ แแแแแกแแช แแฅแแก opensource แแแแแชแแแ, แฉแแแ แแแ แแ, แแฎแ แฉแแแ แแแแแแจแ. Blazegraph แจแแแซแแแ AWS-แแ แแ แจแแฅแแแ Amazon Neptune-แแก แกแแคแฃแซแแแแ; แแฎแแ แแแฃแ แแแแแแแแ แแฅแแแแ แแฃ แแ แ แแแแแ แแ แแ แแแแแจแแแแ. แแแ แฉแ แแฎแแแแ แแแแ...
แแฃ แฆแแ แฌแงแแ แ แแ แแ แแก แซแแแแแ แแแแจแแแแแแแแแ, แแแแ แแ แแฅแแแ แฃแแ แแแแ แแกแฃแ แ แกแชแแแแ, แแแจแแ แงแแแแแคแแ แ แแกแแแ แแแแแแแแ แแแ แแแกแคแแ แแ, แแแแ แ แแแ แ. แฒแแแแแแแแ:
- แแแ แกแแแแแแฃแ แ แซแแฆแแ
แแฉแแ แแแก แแแแแ แชแแแแ แฃแคแแกแ แแแ แกแแ (แแฃแแชแ, แ แแแฃแแแ แฃแแ แแแ แกแแแก แกแแชแแแแ แแแ แแแแ แแแแ แแแแแ); - ะฒ
GraphDB Cloud , ะณะดะต ัะฐะฝััะต ะผะพะถะฝะพ ะฑัะปะพ ะฒัะฑัะฐัั ะฑะตัะฟะปะฐัะฝัะน ะฑะฐะทะพะฒัะน ะฟะปะฐะฝ, ะฟัะธะพััะฐะฝะพะฒะปะตะฝะฐ ัะตะณะธัััะฐัะธั ะฝะพะฒัั ะฟะพะปัะทะพะฒะฐัะตะปะตะน .
แแแแแแแ, แกแแจแฃแแแ IT แแแแแแแแแกแแแแก แกแแแ แชแ แกแฃแ แฃแคแ แ แแ แฃแคแ แ แแแฃแฌแแแแแแแ แฎแแแแ, แแแกแ แแแแแแแแ แแแ แฎแแแแ แแแ แแแ แแชแแแแแก แฃแแแ แแแ แแแฌแแแ.
แฌแงแแ แ: www.habr.com