Semantic Web αα·α Linked Data ααΊααΌα ααΆααα αααΆααααα α αα·αααΆαααΈαα·ααα ααΈαααααα αα βααΈαααβαααα»αβααααααβααΌα α¬βαα·α βααΆαβααα... αααα»αβαα·αβααΉαβααΈβα’αααΈβαααβααβααααΆααβα’αααβααΆαβααΈβαααααβαααα»αβααΆαβααααΎαβααβαα βααΉα "αααα»αβα ααβααααΆαβααΆβα’αααΆαααΆαα·α"α ααα»ααααα’αααα’αΆα ααααααααΎαα’αααΈααααααα»αααΎαα‘αΎαααααααααααα ααΎαααααΈ; ααΆααΆααααααΆααααα½ααααα»αααΆαααααΆαααΆααΆααΆαα·ααΌαααααααα α·ααα α¬ααΌααααΈααα’αααααααΆαα
α’ααααααααααΉααααααααΎααΆαααααΈα ααααα·αα αΆααααΆαα αααΎααα αα·ααααΆααΆαααΈαα·ααααααΆααααα»α RDF α ααΆααααααααααααα αααα»ααααΆααααααΈ 1 ααααΌαααΆααααα»ααααα·ααααααΌαααΆαααααΆαααΆαα·ααααααααααααΆαααα αααΈαααΆααα αααααααΆαααΆααα
ααΌαααΆαααΈαααΆα
I. GraphQL αααααΆααααΆαα αΌαααααΎ RDF
αααα αααα’αα α±ααΆααααααααΌαααΆααααααααΌααααα
- Stardog (
ααααα ,α―αααΆα ); - ααα·ααα TopQuadrant (
αα·ααααΆααΆααΆ ,α―αααΆα ).
ααααα·αααΎααααΆαααα·ααααααα±ααΆααααααααα ααΆα’αΆα
ααααΌαααΆαα’αα»αααααααα―αααΆααααααααΆαααααα "α’ααααααααααΆα" αααααααααα αααααΆα’αααΈααααα½αααααΆαααααΎα§ααΆα ααααα
αααα»αααααααααααααΆααΆαα
ααΆαααααααααα’ααααααααΆααααααΆαααααα·αααα’αΌααααΌααααααααααΆα Semantic αα·ααα·αααααααααααΆαααααΆαα ααΆααα’αααααααΆααΆααα·αααΆααααΊααααα αααααααΆα αΆααααΌα ααΆααααΌαααΆααα ααΆα‘αΎααααααΆααααΆααα½ααααα αΌααααααΆααααααΎαα‘αΎααα αα»ααα·ααααΈα‘αΌαα·αααααααααααΆαα αα·ααα·ααααα·ααΆαααααα (α αΆα RDF ααΆααΆααα·αααΆαα) .
α αααΆααα’αΆααααααααΈααΆααααααααα GraphQL ααΆαα½α SPARQL ααΊααΈαααα
- αααααΆααα·αααα GraphQL ααΎααα ααΌα ααΆααΆα αααΆαα·ααααΆααααα SPARQLα ααΆαααααααΆααααα αΆααααΆαααααααΌα‘αΎααα·α αα·αα αααΎααααααα½ααααααΆαααααααααααααΆαααααΆαα REST - ααΎααααΆαααΆαααα ααααΆααΆαα·αα’αΆα αα·α αΆαααΆααΆαααα ααΆααΆαααα½ααααΆαα αα ααΆαααααααΆαααααααΆα;
- αααααΆααα·αααα αααααααΆαααααΉααααα GraphQL ααΆαααΆαααα α·αααα ααΌα ααααα αΎα "ααΆααα·ααα»αααΆαα»α" ααααααΆα αΆααααΌα ααΆααΆαααααα·αααΎαααααααααα ααΉαααΆααααα»ααααα αΆαααααααααα RDF α α αΎααα·αααΆα analogue ααααααΌαα’α αααααααααα ααΌα ααααααΆαα·αα αααΆααααααΆα ααα»α’αααΈααΆαααΆααΆααΆ "Graph-"α
II. α’αΆααΆααααααααααΆαα MongoDB
αα·ααααΆααΆαβαα½αβαααβαααααβααααααβαα βααΉαβαα·ααααΆααΆαβαα»αα
- αα
αααα»α Stardog α₯α‘αΌαααα
α’αΆα ααααΎαα ααΆα - ααΆαα·αααααΆααα’αααα ααΎ GraphQL ααΌα ααααΆ - ααααααα ααΆααααααααααΆαααΌααααααΈαα·αααααα MongoDB αα ααΆααααΆα αα RDF αα·αααα·αα - Ontotext GraphDB ααΆαααααΈαααα
ααΆα’αα»ααααΆαα±αα αααα αΌαααααααα αααα»α SPARQL αα ααΎ MongoDB Query α
ααααα·αααΎααΎααα·ααΆαα±ααααΆααααααΌααααΌααΆαα’αααΈα’αΆααΆααααααα
ααΉαααααα JSON αααα’αα»ααααΆαα±αα "ααααΆαα" α
αααΎαα¬αα·α
ααΎααααΈααααΆαα±αα JSON ααααααα»ααα
αααα»ααααααααΆαααααααΆ RDF ααΎαα’αΆα
ααααΉαα‘αΎααα·αααΌαα’αααΈαααααΆαααααααααΌαα
αααααααααααΈαα·ααααΆααΆαααΈαααααΌα ααΎαα’αΆα
αα·ααΆαααΆαααΆ ααΆααααα»α RDF αααα αΆαααΈααΆαααααααααα½ααααααααααααΆααααΆαααααΎαααΆα αααααα αα·αααααα·ααααα·ααΆααα
αααα»ααααααααααα "ααΆαααααΌ polyglot" α αααααΆαααΆαααΆααααα ααΆααααΌαααΆαααααΉαααΆ αααΌααααααααα α’ααααααααααΌαααα αΎα α αΎαααααΌαααΆααααα½αααα
αα·ααΆαα±ααααααΈ ααααΆαααααΌαααα αααα»αα
ααα§αααα·αα’αααααααΆα
ααααα‘αααα½αα
αααααααααΆααααα DBMSs αα α»ααααΌ ααα»αααααααααΆαααααααα ααΆα’αΆα
ααααΌαααΆαααααααααΆααααΆαα
αα
α»αααααααα·αααΆα DBMSs αα α»ααααΌ "ααα’ααααΎ" ααΎααααΌααααΆα αα (RDF α’αΆα
α
αΆαααα»αααΆααΆααααααααααααΆ) . ααααΌαα α»ααααΌααΌα
αα½αα
ααα½α - ααΆαααΆααααααΆααααα»α RDF αααααΆααααααΌααααΆα αα LPG αααα½α - ααΉαααααΌαααΆααα·ααΆααααΆαα
αααα»α
III. OLTP αααααΉα OLAP
ααααααΆαααΆααααα Gartner ααΌα
ααααΆα
ααα»ααααααΎαααααααααα»α RDF αααα·ααα ααΎααΆαααααααΆα OLTP-OLAP αα α―ααΆ? αααα»αααΉαααααΎαααΆααα·ααΈαααα ααΆαααα ααΈααα α¬αα ααΈαααα ααΎααααΈαααα αΆαααΈα’αααΈααααα½αααααΆαααααα αα α’ααααααΆααααΈααΈααΊααααΌαααΆαα ααΆαααααΎαααααααα»αααΌαααααΆα α’αΌααΈα - ααααΎαααΆααααααΆααΆαα’ααΈαααΊαα·αα
ααααααΆαααΆααααααα ααα
- ααααααΆαααααΆααα½ααααα
αΌαααΆαα½α MongoDB αααααααΌαααΆαα’αα»αααααα
αααα»α GraphDB ααΊαα·ααα·α
ααα
ααΆααααα ααΎααααΈααααΎααΆααα»ααα·αααΆαααααααααα αΆααΆαα’αα»αααα; - 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 αααααααααααααα· scalar α’αΆα
ααααΌαααΆαααααααα
α±αα edge instances ααααααααααα
αααα»α RDF αα½αααΆα’αΆα
ααααΌαααΆαααααααα
edge "types" ααααα»ααααα (ααα»αααααα·αααααΉααααααααααααααααα· scalar ααα»ααααααα ααα»ααααααααΆαααΆαααααΆααααααααΆααααα)α αααααααααα RDF αααααΎαααααααααα
ααΉα LPG
ααΆααααααα ααΆααα·α αα αα "ααΆαααΆαααα LPG" α ααα ααααΆααΈααααααα
- ααΆαααααΆααααααΌαααααΌ RDF αααααααΎα±ααααΆα’αΆα ααααΎαα ααΆαααΎααααΈαααααααααΎαα ααΆααααααααα§ααααα LPG αα αααα»αααΆ;
- ααααΎααΆαααααΆααααααΌαααΆααΆαααα½α RDF αααααααΎα±ααααΆα’αΆα α αΌαααααΎαα·αααααααα αααα»αααααΌαααααΆαααααααααα α¬α’αα»αααααααααααΆααααα»αααΆαααααΎαααα½ααα ααΆααααααΌαααααΆααΆααΆαααα½α LPG ααααααα·ααα
α.α‘. ααααΌαα·αααααα
ααΆααα·ααΈααΆαααααααΆα αααΎααααα’αΆα ααααΎααΆααα ααΈαααα
V.1.1. α’α αααααααα Singleton
αα·ααΈααΆαααααααααΉαααααΌααααα»ααααα»αααΆαα
α»αααααα»αααααΆ RDF αα·α LPG ααΊαααα ααααΆ
- α§ααΆα ααααααα½αα±ααααΆαααααΆαααα
:isMarriedTo
ααΆαααααΆααααααααΌαααΆαααααΎ:isMarriedTo1
,:isMarriedTo2
αααα»ααα·αα αα - ααααααααΆαααΆαααααααααΆαααΆααααααααα»ααααΌαααΈααααΈα
:isMarriedTo1 :since "2013-09-13"^^xsd:date
αα·αα’ααααααα - ααΆαααααΆααααα§ααΆα αααααΆαααααααΆαα½α predicate ααΌαα
ααααΌαααΆααααααΎαα‘αΎααααααααααααΈ
: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. αα·ααΈααΆαααααααααααααα
α’αααβαα·αβα’αΆα
βααααΆαβααΆαα½αβαααβααααΌαβααΆαβααΆαβαα ααα»ααααβααααΆααβααβαααααβααΆ triplets ααΆαβα§αααααβαααααΆααβααΆααααΆαα αααβααΆ URIs αα·αβαααααΎαβ triplets ααααΈβααΆαα½α URIs ααΆαααααα α’αααΈααααα
ααααααααΊααααααα·αααα·α
αΌαααααΎ URI ααΆααααααα
αααα»α SPARQLα ααΌα
αααα
αα
αααα»α Allegrograph
:bob :marriedTo :alice {"since" : "2013-09-13"}
α.α’. ααΆααΆαααα½α
αααααΆαααΆαααα LPG αααα»ααααααααΆααα½α α¬αα½ααααααααααα ααααα·αααααΌ α’αααααααΌαααααΎα±ααααΆα’αΆα ααααΎαααα½αααΎαα·αααααααααα»αααααΌααααααα
- Blazegraph αααααΆαααααα½α RDF * ααΆαααα
SPARQL* ΠΈGremlin . αααα½α SPARQL* ααΎααα ααΌα αααα
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }
- Anzograph ααααΆαααααααααα
SPARQL* α αΎαααΉαααΆαααααααΈααΊα ααΆααΆαααα½ααα αααα»α Neo4j α - Stardog ααΆαααααααα½αα―α
ααΆααααααΈα SPARQL αα·αααααααα α ααααααααΈαα α’αααα’αΆα ααα½αααΆα URI ααΈαα αα·α "ααααααΆαααααΆ" αα αααα»α SPARQL αααααααΎα’αααΈαα½αααΌα αααα
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}
- Allegrograph ααααΆαααααααα½αα―ααααααα
ααΆααααααΈα SPARQLα
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }
ααααα·ααΈααα GraphDB αααα»αααααααα½αααΆαααΆαααα Tinkerpop/Gremlin ααααα·αααΆαααα LPG ααα»ααααααΆααΆαααααα αααα»ααααα 8.0 α¬ 8.1 α
VI. ααΆαααΉααααααΉαα’αΆααααΆααααα
αα·αααΆαααΆαααααααααΆαααααααΈααααα ααααα ααα»α ααααααααααααα»α "triplestore of choice" αα·α "open source triplestore" sets ααα α αΆα RDF αααααααΎαα αα ααααΈααΊααΆααααΌααααααααααΆαααΈααΆαααααΆαααΆαααααΎαααααα’αααααΆααααΆαααααΎααααΆαααααα αΆααααα α αΎαα αΆαααΈααααααΈααααααα»αα ααααααΎ (ααΌα ααΆ AnzoGraph) ααΊααΆααααααα·αα αααα»ααα αα·α ααΎαα’αΆα αα·ααΆαα’αααΈααΆαααα α»α...
ααΆβααΆαβαα·αβααΆαα αααααβααΎαβα αα βαα·αβααααΌαβααΆαβαα·αβαααα»αβαααβαααααβααβαα ααα»ααααβααααΆααβαααααβααΎαβα αα βαα½αβα ααα½αβαα·αβααααΌαβααΆαβααβααΎαβααΎαβααΆβαα½αβααααΎαααΎαβαααβααα Virtuoso αααβααΆαβααΆαβααααα»αααβααααΆαβααΆβαααααβααΎαβα αα ααΊβααΆαβαααα·αβαααα»αβαααα»αβαααβαααα»αβααα α»αα Blazegraph ααααΌαααΆααα·αααα AWS αα·ααααααΎαααΌαααααΆααα Amazon Neptune α α₯α‘αΌααααααΆαα·αα αααΆααααααΆααΎααΉαααΆαααΆαα ααααααΆααααΆαα αα ααΆαααα½ααααααααααα αα ααααα Jena...
ααααα·αααΎαααααααΎαα αα αα·αααααΆαααα ααα»ααααα’αααααααΆααααα ααααΆαααααααΆ αααα’αααΈααααα·αααΌαααΆααααααΌα αα»ααααα α§ααΆα ααα:
- ααααΆα
ααα α ααα αΆαααααα₯ααα·ααααα (αααααΆαααΆαααΆαααααααααααααΆαααααααααααααααααΆααΆαααΎαα‘αΎααααααα); - Π²
GraphDB Cloud αααααΆαααααααααααΈαα»αα’αααα’αΆα ααααΎαααΎαααααααααΌαααααΆααααα₯ααα·ααααα ααΆαα α»ααααααα’αααααααΎααααΆααααααΈααααΌαααΆαααα’αΆαα
ααΆααΌαα αααααΆααα’ααα IT ααΆααααα αααααααααααααΆαααααα·αα’αΆα α αΌαααααΎαααΆαααΆα ααΆαα’αα·ααααααααααααΆαααα»αααααΆαααΆααΆααΈαααααααΆα αααΎαα
ααααα: www.habr.com