Π§Ρ‚ΠΎ сСйчас происходит с RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ?

Semantic Web ΠΈ Linked Data ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ Π±Π»ΠΈΠΆΠ½Π΅ΠΌΡƒ космосу: ΠΆΠΈΠ·Π½ΠΈ Ρ‚Π°ΠΌ Π½Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ Ρ‚ΡƒΠ΄Π° Π½Π°Β Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ срок… ΡƒΠΆ Π½Π΅ знаю, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π²Π°ΠΌ Π² дСтствС Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Β«Ρ…ΠΎΡ‡Ρƒ ΡΡ‚Π°Ρ‚ΡŒ космонавтом». Но ΠΏΠΎΠ½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° происходящим ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π½Π° Π—Π΅ΠΌΠ»Π΅; ΡΡ‚Π°Ρ‚ΡŒ астрономом-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ профСссионалом Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ свСТих, Π½Π΅ старСС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСсяцСв, Ρ‚Ρ€Π΅Π½Π΄Π°Ρ… ΠΈΠ· ΠΌΠΈΡ€Π° RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰. ΠœΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π°Π±Π·Π°Ρ†Π΅ навСяна эпичСских Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΎΠΉ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎΠΌ.


ЭпичСская ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°

Π§Ρ‚ΠΎ сСйчас происходит с RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ?

I. GraphQL для доступа ΠΊ RDF

Говорят, Ρ‡Ρ‚ΠΎ GraphQL ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. А ΠΊΠ°ΠΊ обстоят Π΄Π΅Π»Π° с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ доступа с использованиСм GraphQL ΠΊ RDF?

«Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚:

Если ΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ‚Π°ΠΊΠΎΠΉ возмоТности Π½Π΅ прСдоставляСт, Π΅Ρ‘ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, написав ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Β«Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΒ» (resolver). Π’Π°ΠΊ поступили, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ французском ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ DataTourisme. Или ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π° просто Π²Π·ΡΡ‚ΡŒ HyperGraphQL.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΡ€Ρ‚ΠΎΠ΄ΠΎΠΊΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π° Semantic Web ΠΈ Linked Data всё это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ каТСтся ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, выстраиваСмых Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹Ρ… data silo, Π° Π½Π΅ подходящих для Ρ‚ΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (разумССтся, RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰).

ВпСчатлСния ΠΎΡ‚ сравнСния GraphQL со SPARQL ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ двоякиС.

  • Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, GraphQL выглядит дальним родствСнником SPARQL: Π² Π½Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для REST ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ мноТСствСнности запросов β€” Π±Π΅Π· Ρ‡Π΅Π³ΠΎ, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΠΈ нСльзя Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ языком запросов, хотя Π±Ρ‹ ΠΈ для Π²Π΅Π±Π°;
  • Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ³ΠΎΡ€Ρ‡Π°Π΅Ρ‚ ТСсткая ΡΡ…Π΅ΠΌΠ½ΠΎΡΡ‚ΡŒ GraphQL. БоотвСтствСнно, Π΅Π³ΠΎ Β«ΠΈΠ½Ρ‚Ρ€ΠΎΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΒ» каТСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π² сравнСнии с ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ RDF. И Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π° property paths, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ понятно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Β«Graph-Β».

II. АдаптСры ΠΊ MongoDB

Π’Ρ€Π΅Π½Π΄, ΠΊΠΎΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ.

  • Π’ Stardog Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β€” Π² частности, всС Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ GraphQL β€” Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… MongoDB Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ RDF-Π³Ρ€Π°Ρ„Ρ‹;
  • Ontotext GraphDB с Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΡ€ позволяСт Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² SPARQL Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π° MongoDB Query.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΡˆΠΈΡ€Π΅, ΠΎΠ± Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°Ρ… ΠΊ JSON-источникам, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ» ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ хранящийся Π² этих источниках JSON ΠΊΠ°ΠΊ RDF, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈ довольно Π΄Π°Π²Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ SPARQL Generate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π΄ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ Apache Jena.

Π Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΡ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Ρ‚Ρ€Π΅Π½Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊ интСграциям ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² условиях Β«ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠ³ΠΎ хранСния» (polyglot persistence). Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это послСднСС ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π² ΠΌΠΎΠ΄Π΅, ΠΈ Π½Π° смСну Π΅ΠΌΡƒ грядСт ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. А ΠΊΠ°ΠΊ обстоят Π΄Π΅Π»Π° с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΌΠΈΡ€Π΅ RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰?

Если Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊ. Π’Π΅ΠΌΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π‘Π£Π‘Π” хочСтся ΠΏΠΎΡΠ²ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΏΠΎΠΊΠ° ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π‘Π£Π‘Π”, «основанных» Π½Π° Π³Ρ€Π°Ρ„ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ RDF), сСйчас Π½Π΅Ρ‚. О Π½Π΅ΠΊΠΎΠ΅ΠΉ ΠΌΠ°Π»ΠΎΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ LPG β€” Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ V.

III. OLTP vs. OLAP

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ‚ΠΎΡ‚ ΠΆΠ΅ Gartner ΠΏΠΈΡˆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” условиС sine qua non Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π‘Π£Π‘Π”. Оно ΠΈ понятно: Π² ситуации Β«ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠ³ΠΎ хранСния» Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ с Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒΡŽ.

Π’ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π΄Π΅ Π½Π° шкалС OLTPβ€”OLAP находятся RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°? Π― Π±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» Ρ‚Π°ΠΊ: Π½ΠΈ Ρ‚Π°ΠΌ, Π½ΠΈ Ρ‚ΡƒΡ‚. Для обозначСния Ρ‚ΠΎΠ³ΠΎ, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹, Π½ΡƒΠΆΠ½Π° какая-Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°. Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π±Ρ‹ OLIP β€” Online Intellectual Processing.

Однако всС ТС:

  • Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² GraphDB ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с MongoDB Π½Π΅ Π² послСднюю ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ записи;
  • Stardog ΠΈΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ дальшС ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСписываСт Π΄Π²ΠΈΠΆΠΎΠΊ, ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅. ΠžΡ‚ создатСлСй IBM Netezza ΠΈ Amazon Redshift β€” AnzoGraphβ„’. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈΠ· Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Π΅Π³ΠΎ основС Π±Ρ‹Π»Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. AnzoGraph ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ сСбя ΠΊΠ°ΠΊ GOLAP-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Как Π²Π°ΠΌ SPARQL c ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ функциями? β€”

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

IV. RocksDB

Π’Ρ‹ΡˆΠ΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ссылка Π½Π° анонс Stardog 7 Beta, Π³Π΄Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Stardog собираСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ систСмы хранСния RocksDB β€” Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», фСйсбуковский Ρ„ΠΎΡ€ΠΊ гугловской LevelDB. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΡƒΠΆΠ΅ стоит Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌ Ρ‚Ρ€Π΅Π½Π΄Π΅?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, cудя ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π² Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, Π½Π° RocksDB Β«ΠΏΠ΅Ρ€Π΅ΡΠ°ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡΒ» Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ использованию RocksDB ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠΊΠ° хранСния Π² ArangoDB, MongoDB, MySQL ΠΈ MariaDB, Cassandra.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π° RocksDB Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ (Ρ‚. Π΅. Π½Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹) ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.

НапримСр, eBay ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ RocksDB Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ для своСго Β«Π³Ρ€Π°Ρ„Π° Π·Π½Π°Π½ΠΈΠΉΒ». ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, Π·Π°Π±Π°Π²Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ: the query language started as a home grown format, but more recently it has been transitioning to be much more like SPARQL. Как Π² Π°Π½Π΅ΠΊΠ΄ΠΎΡ‚Π΅: сколько knowledge graph Π½ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ, всС Ρ€Π°Π²Π½ΠΎ получаСтся RDF.

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” появившийся нСсколько мСсяцСв Π½Π°Π·Π°Π΄ Wikidata History Query Service. Π”ΠΎ Π΅Π³ΠΎ появлСния Π·Π° историчСскими свСдСниями Π’ΠΈΠΊΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· MWAPI ΠΊ стандартному Mediawiki API. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π° чистом SPARQL. «Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ» Ρ‚Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ RocksDB. ΠšΡΡ‚Π°Ρ‚ΠΈ, сдСлал WDHQS, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, занимавшийся ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ Freebase Π² Google Knowledge Graph.

V. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° LPG

Напомню основноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ LPG-Π³Ρ€Π°Ρ„ΠΎΠ² ΠΎΡ‚ RDF-Π³Ρ€Π°Ρ„ΠΎΠ².

Π’ LPG Π½Π° экзСмпляры Ρ€Π΅Π±Π΅Ρ€ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ скалярныС свойства, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² RDF ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ лишь Π½Π° Β«Ρ‚ΠΈΠΏΡ‹Β» Ρ€Π΅Π±Π΅Ρ€ (Π·Π°Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скалярныС свойства, Π½ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ связи). Π­Ρ‚Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ RDF ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с LPG прСодолСваСтся Ρ‚Π΅ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°ΠΌΠΈ модСлирования. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΆΠ΅ LPG ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с RDF прСодолСваСтся слоТнСС, Π½ΠΎ LPG-Π³Ρ€Π°Ρ„Ρ‹ большС, Ρ‡Π΅ΠΌ RDF-Π³Ρ€Π°Ρ„Ρ‹, ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈΠ· ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° Π₯Π°Ρ€Π°Ρ€ΠΈ, поэтому люди ΠΈΡ… хотят.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π·Π°Π΄Π°Ρ‡Π° Β«ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ LPGΒ» распадаСтся Π½Π° Π΄Π²Π΅ части:

  1. внСсСниС Π² модСль RDF ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ LPG-конструкции;
  2. внСсСниС Π² язык запросов ΠΊ RDF ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² этой ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, β€” Π»ΠΈΠ±ΠΎ ΠΆΠ΅ рСализация возмоТности Π΄Π΅Π»Π°Ρ‚ΡŒ запросы ΠΊ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° популярных языках запросов ΠΊ LPG.

V.1. МодСль Π΄Π°Π½Π½Ρ‹Ρ…

Π—Π΄Π΅ΡΡŒ имССтся нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ².

V.1.1. Singleton Property

Π‘Π°ΠΌΡ‹ΠΉ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Π³Π°Ρ€ΠΌΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ RDF ΠΈ LPG β€” это, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, singleton property:

  • ВмСсто, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° :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. Reification Done Right

МСнСС Π½Π°ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠΈΡΡ‚Π΅ΠΊΠ°ΡŽΡ‚ ΠΈΠ· осознания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ экзСмпляры свойств Π²ΠΏΠΎΠ»Π½Π΅ ΠΈΠ½ΡΡ‚Π°Π½Ρ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚Π°ΠΌΠΈ. ИмСя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚Π°Ρ…, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ± экзСмплярах свойств.

Π‘Π°ΠΌΡ‹ΠΉ солидный ΠΈΠ· этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² β€” RDF*, ΠΎΠ½ ΠΆΠ΅ RDR, Ρ€ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠΉΡΡ Π² Π½Π΅Π΄Ρ€Π°Ρ… Blazegraph. Π•Π³ΠΎ с самого Π½Π°Ρ‡Π°Π»Π° ΠΈΠ·Π±Ρ€Π°Π» для сСбя ΠΈ AnzoGraph. Π‘ΠΎΠ»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° опрСдСляСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΅Π³ΠΎ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² RDF Semantics. Π‘ΡƒΡ‚ΡŒ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ проста. Π’ Turtle-сСриализации RDF ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

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

V.1.3. ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹

МоТно Π½Π΅ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ сСмантикой, Π° просто ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ, СстСствСнно, URI, ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚Ρ‹ с этими URI. ΠžΡΡ‚Π°Π½Π΅Ρ‚ΡΡ лишь Π΄Π°Ρ‚ΡŒ доступ ΠΊ этим URI Π² SPARQL. Π’Π°ΠΊ поступаСт Stardog.

Π’ Allegrograph пошли ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚ΠΎΠ² Π² Allegrograph Π΅ΡΡ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ triple attributes Π½Π°Ρ€ΡƒΠΆΡƒ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚ΠΎΡ€Ρ‡Π°Ρ‚. Однако ΠΈ Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ сСмантики ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π»Π΅ΠΊΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚ΠΎΠ² β€” Π½Π΅ URI, ΠΈ значСния этих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ. АдСпты LPG ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ. Π’ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ NQX ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΡˆΠ΅ для RDF*, выглядит Ρ‚Π°ΠΊ:

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

V.2. Π―Π·Ρ‹ΠΊΠΈ запросов

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π² Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ способом LPG Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ запросы ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

  • Blazegraph для запросов ΠΊ RDF* ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SPARQL* ΠΈ Gremlin. Запрос Π½Π° SPARQL* выглядит Ρ‚Π°ΠΊ:

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

  • Anzograph Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SPARQL* ΠΈ собираСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Cypher, язык запросов Π² Neo4j.
  • Stardog ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ собствСнноС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ SPARQL ΠΈ ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ Gremlin. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² SPARQL URI Ρ‚Ρ€ΠΈΠΏΠ»Π΅Ρ‚Π° ΠΈ Β«ΠΌΠ΅Ρ‚Π°ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽΒ» ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ конструкции:

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

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

ΠšΡΡ‚Π°Ρ‚ΠΈ, GraphDB ΠΎΠ΄Π½ΠΎ врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Tinkerpop/Gremlin, Π½Π΅ поддСрТивая ΠΏΡ€ΠΈ этом LPG, Π½ΠΎ Π² вСрсии 8.0 ΠΈΠ»ΠΈ 8.1 это ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ.

VI. УТСсточСниС Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ

Никаких ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ Π² пСрСсСчСнии мноТСств Β«triplestore of choiceΒ» ΠΈ Β«open source triplestoreΒ» Π² послСднСС врСмя Π½Π΅ ΡΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ. Новым RDF-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π°Π»Π΅ΠΊΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для повсСднСвного использования, Π° исходный ΠΊΠΎΠ΄ Π½ΠΎΠ²Ρ‹Ρ… триплсторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ AnzoGraph), Π·Π°ΠΊΡ€Ρ‹Ρ‚. Π‘ΠΊΠΎΡ€Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± убавлСниях…

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π½Π΅ закрываСтся, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° c ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ постСпСнно ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ достойныС Π²Ρ‹Π±ΠΎΡ€Π°. Virtuoso, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ opensource-Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ, Π½Π° ΠΌΠΎΠΉ взгляд, Ρ‚ΠΎΠ½Π΅Ρ‚ Π² Π±Π°Π³Π°Ρ…. Blazegraph ΠΊΡƒΠΏΠ»Π΅Π½ AWS ΠΈ Π»Π΅Π³ Π² основу Amazon Neptune; Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ нСпонятно, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Π΅Ρ‰Π΅ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π΅Π»ΠΈΠ·. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ лишь Jena…

Если ΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½, Π° хочСтся просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ всё Ρ‚ΠΎΠΆΠ΅ ΠΌΠ΅Π½Π΅Π΅ Ρ€Π°Π΄ΡƒΠΆΠ½ΠΎ, Ρ‡Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅. НапримСр:

  • Stardog ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, вырос Π² Π΄Π²Π° Ρ€Π°Π·Π° ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ);
  • Π² GraphDB Cloud, Π³Π΄Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ бСсплатный Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ»Π°Π½, рСгистрация Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ приостановлСна.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, для рядового ИВ-обыватСля космос становится всС Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ нСдоступным, освоСниС Π΅Π³ΠΎ становится ΡƒΠ΄Π΅Π»ΠΎΠΌ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com