ืžื” ืงื•ืจื” ืขื ืžืื’ืจื™ RDF ืขื›ืฉื™ื•?

ืื™ื ื˜ืจื ื˜ ืกืžื ื˜ื™ ื•ื ืชื•ื ื™ื ืžืงื•ืฉืจื™ื ื”ื ื›ืžื• ื”ื—ืœืœ ื”ื—ื™ืฆื•ืŸ: ืื™ืŸ ืฉื ื—ื™ื™ื. ืœืœื›ืช ืœืฉื ืœื˜ื•ื•ื— ืืจื•ืš ืคื—ื•ืช ืื• ื™ื•ืชืจ... ืื ื™ ืœื ื™ื•ื“ืข ืžื” ืืžืจื• ืœืš ื‘ืชื•ืจ ื™ืœื“ ื‘ืชื’ื•ื‘ื” ืœ"ืื ื™ ืจื•ืฆื” ืœื”ื™ื•ืช ืืกื˜ืจื•ื ืื•ื˜". ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœืฆืคื•ืช ื‘ืžื” ืฉืงื•ืจื” ื‘ื–ืžืŸ ืฉืืชื” ืขืœ ื›ื“ื•ืจ ื”ืืจืฅ; ืœื”ื™ื•ืช ืืกื˜ืจื•ื ื•ื ื—ื•ื‘ื‘ ืื• ืืคื™ืœื• ืžืงืฆื•ืขืŸ ื–ื” ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ.

ื”ืžืืžืจ ื™ืชืžืงื“ ื‘ื˜ืจื ื“ื™ื ื˜ืจื™ื™ื, ื‘ื ื™ ืœื ื™ื•ืชืจ ืžื›ืžื” ื—ื•ื“ืฉื™ื, ืžืขื•ืœื ื”ืื—ืกื•ืŸ RDF. ื”ืžื˜ืืคื•ืจื” ื‘ืคืกืงื” ื”ืจืืฉื•ื ื” ื”ื™ื ื‘ื”ืฉืจืืช ืชืžื•ื ืช ื”ืคืจืกื•ื ื”ืืคื™ืช ืžืชื—ืช ืœื’ื–ืจื”.


ืชืžื•ื ื” ืืคื™ืช

ืžื” ืงื•ืจื” ืขื ืžืื’ืจื™ RDF ืขื›ืฉื™ื•?

I. GraphQL ืขื‘ื•ืจ ื’ื™ืฉื” ืœ-RDF

ื”ื ืื•ืžืจื™ืืฉ-GraphQL ื˜ื•ืขืŸ ืฉื”ื™ื ืฉืคืช ื”ื’ื™ืฉื” ื”ืื•ื ื™ื‘ืจืกืœื™ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื. ื•ืžื” ืœื’ื‘ื™ ื”ื™ื›ื•ืœืช ืœื’ืฉืช ื‘ืืžืฆืขื•ืช GraphQL ืœ-RDF?

ืžื—ื•ืฅ ืœืงื•ืคืกื”, ื”ื–ื“ืžื ื•ืช ื–ื• ื ื™ืชื ืช ืขืœ ื™ื“ื™:

ืื ื”ืžืื’ืจ ืื™ื ื• ืžืกืคืง ื”ื–ื“ืžื ื•ืช ื›ื–ื•, ื”ื•ื ืžื™ื•ืฉื ื‘ืื•ืคืŸ ืขืฆืžืื™ ืขืœ ื™ื“ื™ ื›ืชื™ื‘ืช ื”"resolver" ื”ืžืชืื™ื (resolver). ื–ื” ื ืขืฉื”, ืœืžืฉืœ, ื‘ืคืจื•ื™ืงื˜ ื”ืฆืจืคืชื™ ืชื™ื™ืจื•ืช ื ืชื•ื ื™ื. ืื• ืฉืืชื” ื›ื‘ืจ ืœื ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื›ืœื•ื, ืืœื ืคืฉื•ื˜ ืœืงื—ืช HyperGraphQL.

ืžื ืงื•ื“ืช ืžื‘ื˜ื• ืฉืœ ื—ืกื™ื“ ืื•ืจืชื•ื“ื•ืงืกื™ ืฉืœ ื”ืจืฉืช ื”ืกืžื ื˜ื™ืช ื•ื”ื ืชื•ื ื™ื ื”ืžืงื•ืฉืจื™ื, ื›ืœ ื–ื” ื›ืžื•ื‘ืŸ ืขืฆื•ื‘, ืฉื›ืŸ ื ืจืื” ืฉื”ื•ื ืžื™ื•ืขื“ ืœืื™ื ื˜ื’ืจืฆื™ื•ืช ืฉื ื‘ื ื• ืกื‘ื™ื‘ ืžืžื’ื•ืจืช ื”ื ืชื•ื ื™ื ื”ื‘ืื”, ื•ืœื ืœืคืœื˜ืคื•ืจืžื•ืช ืžืชืื™ืžื•ืช (ื›ืžื•ื‘ืŸ, ืื—ืกื•ืŸ RDF) .

ื”ื”ืชืจืฉืžื•ืช ืžื”ืฉื•ื•ืืช GraphQL ืขื SPARQL ื”ืŸ ื›ืคื•ืœื•ืช.

  • ืžืฆื“ ืื—ื“, GraphQL ื ืจืื” ื›ืžื• ืงืจื•ื‘ ืžืฉืคื—ื” ืจื—ื•ืง ืฉืœ SPARQL: ื”ื•ื ืคื•ืชืจ ืืช ื”ื‘ืขื™ื•ืช ืฉืœ ื‘ื—ื™ืจื” ืžื—ื“ืฉ ื•ืฉืื™ืœืชื•ืช ืžืจื•ื‘ื•ืช ื”ืื•ืคื™ื™ื ื™ื•ืช ืœ-REST - ืฉื‘ืœืขื“ื™ื”ืŸ, ื›ื ืจืื”, ืœื ื ื™ืชืŸ ื™ื”ื™ื” ืœืฉืงื•ืœ ืฉืคืช ืฉืื™ืœืชื”, ืœืคื—ื•ืช ืขื‘ื•ืจ ื”ืื™ื ื˜ืจื ื˜;
  • ืžืฆื“ ืฉื ื™, ื”ืชื•ื›ื ื™ืช ื”ื ื•ืงืฉื” ืฉืœ GraphQL ืžื˜ืจื™ื“ื”. ื‘ื”ืชืื, ื ืจืื” ืฉื”"ืื™ื ื˜ืจื•ืกืคืงื˜ื™ื‘ื™ื•ืช" ืฉืœื• ืžื•ื’ื‘ืœืช ืžืื•ื“ ื‘ื”ืฉื•ื•ืื” ืœืจืคืœืงืกื™ื‘ื™ื•ืช ื”ืžืœืื” ืฉืœ RDF. ื•ืื™ืŸ ืื ืœื•ื’ื™ ืœื ืชื™ื‘ื™ ื ื›ืกื™ื, ืื– ืืคื™ืœื• ืœื ืžืื•ื“ ื‘ืจื•ืจ ืœืžื” ื–ื” "ื’ืจืฃ-".

II. ืžืชืืžื™ื ืขื‘ื•ืจ MongoDB

ืžื’ืžื” ืžืฉืœื™ืžื” ืœืงื•ื“ืžืชื”.

  • ืขื›ืฉื™ื• ื‘ืกื˜ืืจื“ื•ื’ ืื•ืœื™ - ื‘ืคืจื˜, ื”ื›ืœ ื‘ืื•ืชื• GraphQL - ื”ื’ื“ืจ ืืช ื”ืชืฆื•ื’ื” ืฉืœ ื ืชื•ื ื™ MongoDB ืœื’ืจืคื™ RDF ื•ื™ืจื˜ื•ืืœื™ื™ื;
  • Ontotext GraphDB ืœืื—ืจื•ื ื” ื”ื™ื ืžืืคืฉืจืช ื”ื›ื ืก ืœืชื•ืš ืงื˜ืขื™ SPARQL ื‘ืฉืื™ืœืชืช MongoDB.

ืื ืžื“ื‘ืจื™ื ื‘ืฆื•ืจื” ืจื—ื‘ื” ื™ื•ืชืจ, ืขืœ ืžืชืืžื™ื ืœืžืงื•ืจื•ืช JSON ืฉืžืืคืฉืจื™ื ืคื—ื•ืช ืื• ื™ื•ืชืจ "ื‘ืชื ื•ืขื”" ืœื™ื™ืฆื’ ืืช ื”-JSON ื”ืžืื•ื—ืกืŸ ื‘ืžืงื•ืจื•ืช ืืœื” ื›-RDF, ืื– ื ื•ื›ืœ ื’ื ืœื–ื›ื•ืจ ืืช ื”ืงื™ื™ื ื‘ืžืฉืš ื“ื™ ื”ืจื‘ื” ื–ืžืŸ ืฆื•ืจ SPARQLืฉื ื™ืชืŸ ืœื”ืชืื™ื ืœื“ื•ื’ืžื”, ืœืืคืฆ'ื™ ื’'ื ื”.

ืื ื ืกื›ื ืืช ืฉืชื™ ื”ืžื’ืžื•ืช ื”ืจืืฉื•ื ื•ืช, ืื ื• ื™ื›ื•ืœื™ื ืœื•ืžืจ ืฉืžืื’ืจื™ RDF ืžืคื’ื™ื ื™ื ืžื•ื›ื ื•ืช ืžืœืื” ืœืื™ื ื˜ื’ืจืฆื™ื” ื•ืชืคืงื•ื“ ื‘ืชื ืื™ื ืฉืœ "ืื—ืกื•ืŸ ืžืจื•ื‘ื”" (ื”ืชืžื“ื” ืจื‘-ื’ืœืชื™ืช). ื–ื” ื™ื“ื•ืข, ืขื ื–ืืช, ื–ื” ื”ืื—ืจื•ืŸ ื›ื‘ืจ ืžื–ืžืŸ ื™ืฆื ืžื”ืื•ืคื ื”, ื•ืœื”ื—ืœื™ืฃ ืื•ืชื• ืžื’ื™ืข ืจื™ื‘ื•ื™ ืžื•ื“ืœื™ื. ื•ืžื” ืœื’ื‘ื™ ืจื™ื‘ื•ื™ ืžื•ื“ืœื™ื ื‘ืขื•ืœื ืื—ืกื•ืŸ RDF?

ื‘ืงื™ืฆื•ืจ, ืื™ืŸ ืžืฆื‘. ืื ื™ ืจื•ืฆื” ืœื”ืงื“ื™ืฉ ืžืืžืจ ื ืคืจื“ ืœื ื•ืฉื ืฉืœ DBMS ืžืจื•ื‘ื” ืžื•ื“ืœื™ื, ืืš ืœืขืช ืขืชื” ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืฉืื™ืŸ DBMS ืจื‘ ืžื•ื“ืœ "ืžื‘ื•ืกืก" ืขืœ ืžื•ื“ืœ ื”ื’ืจืฃ (RDF ื™ื›ื•ืœ ืœื”ื™ื—ืฉื‘ ื›ื•ื•ืจื™ืืฆื™ื” ืฉืœื•) ื›ืขืช. ื›ืžื” ืžื•ื“ืœื™ื ืžืจื•ื‘ื™ื ืงื˜ื ื™ื - ืชืžื™ื›ื” ืขืœ ื™ื“ื™ ืื—ืกื•ืŸ RDF ืฉืœ ืžื•ื“ืœ ื’ืจืฃ ื’ืค"ืž ื—ืœื•ืคื™ - ื™ื™ื“ื•ื ื• ื‘ ืกืขื™ืฃ V.

III. OLTP ืœืขื•ืžืช OLAP

ืขื ื–ืืช, ืื•ืชื• ื’ืจื˜ื ืจ ื›ื•ืชื‘ืฉืจื™ื‘ื•ื™ ืžื•ื“ืœื™ื ื”ื•ื ืชื ืื™ ื‘ืกื™ืก ื‘ืขื™ืงืจื• ืขื‘ื•ืจื• ื—ื“ืจื™ ื ื™ืชื•ื— DBMS. ื–ื” ืžื•ื‘ืŸ: ื‘ืžืฆื‘ ืฉืœ "ืื—ืกื•ืŸ ืžืจื•ื‘ื”", ื”ื‘ืขื™ื•ืช ื”ืขื™ืงืจื™ื•ืช ืžืชืขื•ืจืจื•ืช ื‘ืขืกืงืื•ืช.

ืื‘ืœ ื”ื™ื›ืŸ ื‘ืกื•ืœื OLTP-OLAP ื ืžืฆืื™ื ืžืื’ืจื™ RDF? ื”ื™ื™ืชื™ ืขื•ื ื” ื›ืš: ืœื ืฉื ื•ืœื ื›ืืŸ. ื›ื“ื™ ืœืฆื™ื™ืŸ ืœืžื” ื”ื ืžื™ื•ืขื“ื™ื, ื™ืฉ ืฆื•ืจืš ื‘ืงื™ืฆื•ืจ ืฉืœื™ืฉื™ ื›ืœืฉื”ื•. ื›ืื•ืคืฆื™ื” ื”ื™ื™ืชื™ ืžืฆื™ืข OLIP - ืขื™ื‘ื•ื“ ืื™ื ื˜ืœืงื˜ื•ืืœื™ ืžืงื•ื•ืŸ.

ืขื ื–ืืช, ืขื“ื™ื™ืŸ:

  • ืžื ื’ื ื•ื ื™ ื”ืื™ื ื˜ื’ืจืฆื™ื” ื”ืžื™ื•ืฉืžื™ื ื‘- GraphDB ืขื MongoDB ื”ื ืœื ื”ืคื—ื•ืชื™ื ื”ืชื›ื•ื•ืŸ ืœืขืงื•ืฃ ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ื‘ื›ืชื™ื‘ื”;
  • Stardog ื”ื•ืœืš ืืคื™ืœื• ืจื—ื•ืง ื™ื•ืชืจ ืœื’ืžืจื™ ืžืฉื›ืชื‘ ืžื ื•ืข, ืฉื•ื‘ ื‘ืžื˜ืจื” ืœืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ื›ืชื™ื‘ื”.

ื•ืขื›ืฉื™ื• ื”ืจืฉื• ืœื™ ืœื”ืฆื™ื’ ืฉื—ืงืŸ ื—ื“ืฉ ื‘ืฉื•ืง. ืžื”ื™ื•ืฆืจื™ื ืฉืœ IBM Netezza ื•ืืžื–ื•ืŸ Redshift - AnzoGraphโ„ข. ื‘ืชื—ื™ืœืช ื”ื›ืชื‘ื” ื”ื•ืฆื‘ื” ืชืžื•ื ื” ืžืชื•ืš ืคืจืกื•ืžืช ืœืžื•ืฆืจ ื”ืžื‘ื•ืกืกืช ืขืœื™ื•. AnzoGraph ืžืžืฆื‘ ืืช ืขืฆืžื• ื›ืคืชืจื•ืŸ GOLAP. ืื™ืš ืืชื” ืื•ื”ื‘ SPARQL ืขื ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ? โ€”

SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  โ€ฆ  }

IV. RocksDB

ื›ื‘ืจ ืœืžืขืœื” ื”ื™ื” ืงื™ืฉื•ืจ ืœื”ื›ืจื–ื” ืขืœ Stardog 7 Beta, ืฉืืžืจื” ืฉ-Stardog ืขื•ืžื“ืช ืœื”ืฉืชืžืฉ ื‘-RocksDB ื›ืžืขืจื›ืช ืื—ืกื•ืŸ ื‘ืกื™ืกื™ืช - ืื—ืกื•ืŸ ืžืคืชื—-ืขืจืš, ื”ืžื–ืœื’ ืฉืœ ืคื™ื™ืกื‘ื•ืง ืฉืœ LevelDB ืฉืœ ื’ื•ื’ืœ. ืœืžื” ื›ื“ืื™ ืœื“ื‘ืจ ืขืœ ื˜ืจื ื“ ืžืกื•ื™ื?

ืจืืฉื™ืช, ืื ืœืฉืคื•ื˜ ืœืคื™ ืžืืžืจ ื‘ื•ื™ืงื™ืคื“ื™ื”, ืœื ืจืง ืžืื’ืจื™ RDF "ืžื•ืฉืชืœื™ื" ืœ- RocksDB. ื™ืฉื ื ืคืจื•ื™ืงื˜ื™ื ืœืฉื™ืžื•ืฉ ื‘-RocksDB ื›ืžื ื•ืข ืื—ืกื•ืŸ ื‘-ArangoDB, MongoDB, MySQL ื•-MariaDB, Cassandra.

ืฉื ื™ืช, ืคืจื•ื™ืงื˜ื™ื (ื›ืœื•ืžืจ, ืœื ืžื•ืฆืจื™ื) ืฉืœ ื”ื ื•ืฉื ื”ืžืงื‘ื™ืœ ื ืขืฉื™ื ืขืœ RocksDB.

ืœื“ื•ื’ืžื”, eBay ืžืฉืชืžืฉ ื‘- RocksDB ื‘ ืคืœื˜ืคื•ืจืžื” ืขื‘ื•ืจ "ื’ืจืฃ ื”ื™ื“ืข" ืฉืœืš. ืื’ื‘, ืžืฆื—ื™ืง ืœืงืจื•ื: ืฉืคืช ื”ืฉืื™ืœืชื” ื”ืชื—ื™ืœื” ื›ืคื•ืจืžื˜ ื‘ื™ืชื™, ืืš ืœืื—ืจื•ื ื” ื”ื™ื ืขื‘ืจื” ืœื”ื™ื•ืช ื”ืจื‘ื” ื™ื•ืชืจ ื“ื•ืžื” ืœ-SPARQL. ื›ืžื• ื‘ื‘ื“ื™ื—ื”: ืœื ืžืฉื ื” ื›ืžื” ื’ืจืฃ ื™ื“ืข ื ืขืฉื”, ืื ื—ื ื• ืขื“ื™ื™ืŸ ืžืงื‘ืœื™ื RDF.

ื“ื•ื’ืžื” ื ื•ืกืคืช - ื”ื•ืคื™ืขื” ืœืคื ื™ ืžืกืคืจ ื—ื•ื“ืฉื™ื ืฉื™ืจื•ืช ืฉืื™ืœืชื•ืช ื”ื™ืกื˜ื•ืจื™ื™ืช Wikidata. ืœืคื ื™ ื”ืฆื’ืชื•, ื”ื™ื” ืฆื•ืจืš ืœื’ืฉืช ืœืžื™ื“ืข ื”ื”ื™ืกื˜ื•ืจื™ ืฉืœ ื•ื™ืงื™ื“ืื˜ื” MWAPI ืœ-API ื”ืจื’ื™ืœ ืฉืœ Mediawiki. ื”ืจื‘ื” ืืคืฉืจื™ ื›ืขืช ื‘-SPARQL ื˜ื”ื•ืจ. "ืžืชื—ืช ืœืžื›ืกื” ื”ืžื ื•ืข" ื™ืฉ ื’ื RocksDB. ืื’ื‘, WDHQS ืขืฉื” ืืช ื–ื”, ื–ื” ื ืจืื” ื›ืžื• ื”ืื“ื ื”ืžืขื•ืจื‘ ื‘ื™ื™ื‘ื•ื โ€‹โ€‹Freebase ืœืชื•ืš ื’ืจืฃ ื”ื™ื“ืข ืฉืœ Google.

V. ืชืžื™ื›ืช ื’ืค"ืž

ืชืŸ ืœื™ ืœื”ื–ื›ื™ืจ ืœืš ืืช ื”ื”ื‘ื“ืœ ื”ืขื™ืงืจื™ ื‘ื™ืŸ ื’ืจืคื™ GPG ืœื’ืจืคื™ RDF.

ื‘-LPG ื ื™ืชืŸ ืœืฆืจืฃ ืžืืคื™ื™ื ื™ื ืกืงืœืจื™ื ืœืžื•ืคืขื™ ืงืฆื”, ื‘ืขื•ื“ ืฉื‘-RDF ื ื™ืชืŸ ืœืฆืจืฃ ืื•ืชื ืจืง ืœ"ื˜ื™ืคื•ืกื™ื" ืงืฆื” (ืืš ืœื ืจืง ืžืืคื™ื™ื ื™ื ืกืงืœืจื™ื, ืืœื ื’ื ืงื™ืฉื•ืจื™ื ืจื’ื™ืœื™ื). ืžื’ื‘ืœื” ื–ื• ืฉืœ RDF ื‘ื”ืฉื•ื•ืื” ืœื’ืค"ืž ืœึฐื”ึดืชึฐื’ึทื‘ึผึตืจ ืื™ื–ื•ืฉื”ื™ ื˜ื›ื ื™ืงืช ื“ื•ื’ืžื ื•ืช. ืงืฉื” ื™ื•ืชืจ ืœื”ืชื’ื‘ืจ ืขืœ ื”ืžื’ื‘ืœื•ืช ืฉืœ ื’ืค"ืž ื‘ื”ืฉื•ื•ืื” ืœ-RDF, ืื‘ืœ ื’ืจืคื™ ื’ืค"ืž ื“ื•ืžื™ื ื™ื•ืชืจ ืœืชืžื•ื ื•ืช ืžืกืคืจ ื”ืœื™ืžื•ื“ ืฉืœ ื”ืจืจื™ ืžืืฉืจ ืœื’ืจืคื™ RDF, ืื– ืื ืฉื™ื ืจื•ืฆื™ื ืื•ืชื.

ื‘ืจื•ืจ, ื”ืžืฉื™ืžื” ืฉืœ "ืชืžื™ื›ื” ื‘ื’ืค"ืž" ืžืชื—ืœืงืช ืœืฉื ื™ ื—ืœืงื™ื:

  1. ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื ื‘ืžื•ื“ืœ RDF ื”ืžืืคืฉืจื™ื ืœื“ืžื•ืช ื‘ื• ืžื‘ื ื™ ื’ืค"ืž;
  2. ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื ื‘ืฉืคืช ื”ืฉืื™ืœืชื•ืช RDF ื”ืžืืคืฉืจื™ื ื’ื™ืฉื” ืœื ืชื•ื ื™ื ื‘ืžื•ื“ืœ ืฉื•ื ื” ื–ื”, ืื• ื™ื™ืฉื•ื ื”ื™ื›ื•ืœืช ืœื‘ืฆืข ืฉืื™ืœืชื•ืช ืœืžื•ื“ืœ ื–ื” ื‘ืฉืคื•ืช ืฉืื™ืœืชื•ืช LPG ืคื•ืคื•ืœืจื™ื•ืช.

V.1. ืžื•ื“ืœ ื ืชื•ื ื™ื

ื™ืฉ ื›ืืŸ ื›ืžื” ื’ื™ืฉื•ืช ืืคืฉืจื™ื•ืช.

V.1.1. ื ื›ืก ื™ื—ื™ื“

ื”ื’ื™ืฉื” ื”ืžื™ืœื•ืœื™ืช ื‘ื™ื•ืชืจ ืœื”ืจืžื•ื ื™ื” ืฉืœ RDF ื•-LPG ื”ื™ื ื›ื ืจืื” ื ื›ืก ื™ื—ื™ื“:

  • ื‘ืžืงื•ื, ืœืžืฉืœ, ื”ืคืจื“ื™ืงื˜ :isMarriedTo ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืคืจื“ื™ืงื˜ื™ื :isMarriedTo1, :isMarriedTo2 ื•ืฉื ืื™ื. ื“.
  • ื”ืคืจื“ื™ืงื˜ื™ื ื”ืœืœื• ื”ื•ืคื›ื™ื ืœืื—ืจ ืžื›ืŸ ืœื ื•ืฉืื™ื ืฉืœ ืฉืœื™ืฉื™ื•ืช ื—ื“ืฉื•ืช: :isMarriedTo1 :since "2013-09-13"^^xsd:date ื•ื›ื• '
  • ื”ืงืฉืจ ืฉืœ ืžืงืจื™ื ืืœื” ืฉืœ ืคืจื“ื™ืงื˜ื™ื ืขื ืคืจื“ื™ืงื˜ ืžืฉื•ืชืฃ ื ื•ืฆืจ ืขืœ ื™ื“ื™ ืฉืœื™ืฉื™ื•ืช ืฉืœ ื”ืฆื•ืจื” :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • ื–ื” ื‘ืจื•ืจ rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, ืื‘ืœ ืฉืงื•ืœ ืœืžื” ืืชื” ืœื ืฆืจื™ืš ืคืฉื•ื˜ ืœื›ืชื•ื‘ :isMarriedTo1 rdf:type :isMarriedTo.

ื”ืžืฉื™ืžื” ืฉืœ "ืชืžื™ื›ื” ื‘-LPG" ื ืคืชืจืช ื›ืืŸ ื‘ืจืžืช RDFS. ื”ื—ืœื˜ื” ื›ื–ื• ืžื—ื™ื™ื‘ืช ื”ื›ืœืœื” ื‘ืจืœื•ื•ื ื˜ื™ ัั‚ะฐะฝะดะฐั€ั‚. ื™ื™ืชื›ืŸ ืฉื™ื™ื“ืจืฉื• ืฉื™ื ื•ื™ื™ื ืžืกื•ื™ืžื™ื ืžืžืื’ืจื™ RDF ื”ืชื•ืžื›ื™ื ื‘ื”ืฆืžื“ืช ื”ืฉืœื›ื•ืช, ืืš ืœืขืช ืขืชื”, ื ื™ืชืŸ ืœื—ืฉื•ื‘ ืขืœ Singleton Property ื›ืืœ ืขื•ื“ ื˜ื›ื ื™ืงืช ืžื•ื“ืœื™ื.

V.1.2. ื”ืชื™ืงื•ืŸ ื ืขืฉื” ื ื›ื•ืŸ

ื’ื™ืฉื•ืช ื ืื™ื‘ื™ื•ืช ืคื—ื•ืช ื ื•ื‘ืขื•ืช ืžื”ื”ื‘ื ื” ืฉืžื•ืคืขื™ ื ื›ืกื™ื ืžื™ื•ืฆืจื™ื ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช ืขืœ ื™ื“ื™ ืฉืœื™ืฉื™ื•ืช. ืขืœ ื™ื“ื™ ื”ื™ื›ื•ืœืช ืœื“ื‘ืจ ืขืœ ืฉืœื™ืฉื™ื•ืช, ื ื•ื›ืœ ืœื“ื‘ืจ ื’ื ืขืœ ืžืงืจื™ื ืฉืœ ืจื›ื•ืฉ.

ื”ืžื•ืฆืง ื‘ื™ื•ืชืจ ืžื‘ื™ืŸ ื”ื’ื™ืฉื•ืช ื”ืœืœื• ื”ื•ื RDF*aka RDR, ื ื•ึนืœึธื“ ื‘ืžืขื™ื™ื ืฉืœ Blazegraph. ื–ื” ืžื”ื”ืชื—ืœื” ื ื‘ื—ืจ ืขื‘ื•ืจื™ ื•ืขื‘ื•ืจ AnzoGraph. ืžื•ืฆืงื•ืช ื”ื’ื™ืฉื” ื ืงื‘ืขืช ืขืœ ื™ื“ื™ ื”ืขื•ื‘ื“ื” ืฉื‘ืžืกื’ืจืชื” ืžื•ึผืฆึธืข ืฉื™ื ื•ื™ื™ื ืžืชืื™ืžื™ื ื‘ ืกืžื ื˜ื™ืงื” ืฉืœ RDF. ื”ื ืงื•ื“ื”, ืœืขื•ืžืช ื–ืืช, ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ. ื‘ืกืจื™ืืœื™ื–ืฆื™ื” ืฉืœ RDF Turtle, ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืžืฉื”ื• ื›ื–ื”:

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

V.1.3. ื’ื™ืฉื•ืช ืื—ืจื•ืช

ืืชื” ืœื ื™ื›ื•ืœ ืœื”ืชืขืกืง ื‘ืกืžื ื˜ื™ืงื” ืคื•ืจืžืœื™ืช, ืืœื ืคืฉื•ื˜ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืฉืœืฉืœื™ืฉื™ื•ืช ื™ืฉ ื›ืžื” ืžื–ื”ื™ื, ืฉื”ื, ื›ืžื•ื‘ืŸ, URIs, ื•ืœื”ืจื›ื™ื‘ ืฉืœื™ืฉื™ื•ืช ื—ื“ืฉื•ืช ืขื URIs ืืœื”. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœืชืช ื’ื™ืฉื” ืœ-URI ื”ืœืœื• ื‘-SPARQL. ื›ืš ืžื’ื™ืข ื›ืœื‘ ื›ื•ื›ื‘ื™ื.

ื‘ืืœื’ืจื•ื’ืจืคื™ื” ื”ืœืš ื‘ื“ืจืš ื‘ื™ื ื™ื™ื. ื™ื“ื•ืข ื›ื™ ื”ืžื–ื”ื™ื ืฉืœ ืฉืœื™ืฉื™ื•ืช ื‘ืืœื’ืจื•ื’ืจืคื™ื” ื™ืฉ, ืืš ื›ืืฉืจ ืžื™ื•ืฉืžื•ืช ืชื›ื•ื ื•ืช ืžืฉื•ืœืฉื•ืช, ื”ืŸ ืื™ื ืŸ ื‘ื•ืœื˜ื•ืช. ืขื ื–ืืช, ืืคื™ืœื• ืกืžื ื˜ื™ืงื” ืคื•ืจืžืœื™ืช ืจื—ื•ืงื” ืžืื•ื“. ื™ืฉ ืœืฆื™ื™ืŸ ื›ื™ ืชื›ื•ื ื•ืช ืฉืœื™ืฉื™ื” ืื™ื ืŸ URI, ื•ื”ืขืจื›ื™ื ืฉืœ ืชื›ื•ื ื•ืช ืืœื• ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืจืง ืžื™ืœื•ืœื™ื™ื. ื—ื•ื‘ื‘ื™ ื’ืค"ืž ืžืงื‘ืœื™ื ื‘ื“ื™ื•ืง ืืช ืžื” ืฉื”ื ืจืฆื•. ื‘ืคื•ืจืžื˜ NQX ืฉื”ื•ืžืฆื ื‘ืžื™ื•ื—ื“, ื“ื•ื’ืžื” ื“ื•ืžื” ืœื–ื• ืฉืœืžืขืœื” ืขื‘ื•ืจ RDF* ื ืจืื™ืช ื›ืš:

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

V.2. ืฉืคื•ืช ืฉืื™ืœืชื•ืช

ืœืื—ืจ ืฉืชืžื›ืช ื‘-LPG ื‘ืฆื•ืจื” ื›ื–ื• ืื• ืื—ืจืช ื‘ืจืžืช ื”ื“ื’ื, ืืชื” ืฆืจื™ืš ืœืืคืฉืจ ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื ื‘ืžื•ื“ืœ ื›ื–ื”.

  • ืชื•ืžืš ื‘ืฉืื™ืœืชื•ืช Blazegraph for RDF* SPARQL* ะธ ืฉึตืื“. ืฉืื™ืœืชืช SPARQL* ื ืจืื™ืช ื›ืš:

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

  • Anzograph ื’ื ืชื•ืžืš SPARQL* ื•ื”ื•ื ื”ื•ืœืš ืœืชืžื•ืš ืœืฉื•ืŸ ืกืชืจื™ื, ืฉืคืช ื”ืฉืื™ืœืชื” ื‘-Neo4j.
  • ืกื˜ืืจื“ื•ื’ ืฉื•ืžืจืช ืขืœ ืฉืœื• ื”ื’ื“ืœื” 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. ื”ื™ื“ื•ืง ืจื™ืฉื™ื•ื ื•ืช

ืœื ื”ื™ื• ืชื•ืกืคื•ืช ืœืื—ืจื•ื ื” ืœืฆื•ืžืช ืฉืœ ืขืจื›ื•ืช "ื˜ืจื™ืคืœ ืกื˜ื•ืจ ืœื‘ื—ื™ืจื”" ื•"ื˜ืจื™ืคืœ ืกื˜ื•ืจ ื‘ืงื•ื“ ืคืชื•ื—". ื—ื ื•ื™ื•ืช RDF ื—ื“ืฉื•ืช ื‘ืงื•ื“ ืคืชื•ื— ืจื—ื•ืงื•ืช ืžืœื”ื™ื•ืช ื‘ื—ื™ืจื” ื˜ื•ื‘ื” ืœืฉื™ืžื•ืฉ ื™ื•ืžื™ื•ืžื™, ื•ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื—ื ื•ื™ื•ืช ื˜ืจื™ืคืœ ื—ื“ืฉื•ืช ืฉื‘ื”ืŸ ื”ื™ื™ืชื™ ืจื•ืฆื” ืœื”ืฉืชืžืฉ (ืœืžืฉืœ, AnzoGraph) ืกื’ื•ืจ. ื‘ืžืงื•ื ื–ืืช, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื“ื‘ืจ ืขืœ ื”ืคื—ืชื•ืช...

ื›ืžื•ื‘ืŸ, ื”ืงื•ื“ ื”ืคืชื•ื— ื‘ืขื‘ืจ ืื™ื ื• ืกื’ื•ืจ, ืืš ื—ืœืง ืžืžืื’ืจื™ ื”ืงื•ื“ ื”ืคืชื•ื— ื›ื‘ืจ ืœื ื ื—ืฉื‘ื™ื ื‘ื”ื“ืจื’ื” ืจืื•ื™ื™ื ืœื‘ื—ื™ืจื”. ื•ื™ืจื˜ื•ืื•ื–, ืฉื™ืฉ ืœื” ืžื”ื“ื•ืจืช ืงื•ื“ ืคืชื•ื—, ืœื“ืขืชื™, ื˜ื•ื‘ืขืช ื‘ื‘ืื’ื™ื. Blazegraph ื ืงื ื” ืขืœ ื™ื“ื™ AWS ื•ื”ื™ื•ื•ื” ืืช ื”ื‘ืกื™ืก ืœืืžื–ื•ืŸ ื ืคื˜ื•ืŸ; ื›ืขืช ืœื ื‘ืจื•ืจ ืื ืชื”ื™ื” ืขื•ื“ ืฉื—ืจื•ืจ ืื—ื“ ืœืคื—ื•ืช. ืจืง ื’'ื ื” ื ืฉืืจื”...

ืื ื”ืงื•ื“ ื”ืคืชื•ื— ืœื ืžืื•ื“ ื—ืฉื•ื‘, ืื‘ืœ ืืชื” ืจืง ืจื•ืฆื” ืœื ืกื•ืช, ืื– ื”ื›ืœ ื’ื ืคื—ื•ืช ื•ืจื•ื“ ืžื‘ืขื‘ืจ. ืœื“ื•ื’ืžื”:

  • ืกื˜ืืจื“ื•ื’ ืžืคืกื™ืง ืœื”ืคื™ืฅ ืืช ื”ื’ืจืกื” ื”ื—ื™ื ืžื™ืช (ืขื ื–ืืช, ืชืงื•ืคืช ื”ื ื™ืกื™ื•ืŸ ืฉืœ ื”ืจื’ื™ืœื” ื”ื•ื›ืคืœื”);
  • ะฒ ืขื ืŸ GraphDB, ื”ื™ื›ืŸ ืฉืงื•ื“ื ืœื›ืŸ ื™ื›ื•ืœืช ืœื‘ื—ื•ืจ ืืช ื”ืชื•ื›ื ื™ืช ื”ื‘ืกื™ืกื™ืช ื”ื—ื™ื ืžื™ืช, ืจื™ืฉื•ื ืžืฉืชืžืฉ ื—ื“ืฉ ืžื•ืฉืขื”.

ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ื—ืœืœ ื”ื•ืคืš ืœื”ื™ื•ืช ื™ื•ืชืจ ื•ื™ื•ืชืจ ื‘ืœืชื™ ื ื’ื™ืฉ ืขื‘ื•ืจ ื”ื“ื™ื•ื˜ IT ืจื’ื™ืœ, ื”ืคื™ืชื•ื— ืฉืœื• ื”ื•ืคืš ืœื ื—ืœืช ื”ืชืื’ื™ื“ื™ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”