RDF жадымен қазір не болып жатыр?

Семантикалық веб және байланыстырылған деректер ғарыш кеңістігі сияқты: онда өмір жоқ. Азды-көпті ұзақ уақытқа бару үшін... «Мен ғарышкер болғым келеді» деп бала кезіңізде сізге не айтқанын білмеймін. Бірақ сіз Жерде не болып жатқанын байқай аласыз; Әуесқой астроном немесе тіпті кәсіпқой болу әлдеқайда оңай.

Мақалада RDF сақтау әлеміндегі соңғы, бірнеше айдан аспайтын үрдістерге назар аударылады. Бірінші абзацтағы метафора кесінді астындағы эпикалық өлшемдегі жарнамалық бейнеден шабыттанған.


Эпикалық сурет

RDF жадымен қазір не болып жатыр?

I. RDF қатынасына арналған GraphQL

Олар айтадыGraphQL әмбебап дерекқорға қол жеткізу тіліне айналуды мақсат етеді. GraphQL арқылы RDF қол жеткізу мүмкіндігі туралы не деуге болады?

Қораптан тыс бұл мүмкіндікті қамтамасыз етеді:

Егер репозиторий мұндай мүмкіндікті бермесе, оны тиісті «резолюторды» жазу арқылы дербес жүзеге асыруға болады. Олар, мысалы, француз жобасында осылай жасады DataTourisme. Немесе бұдан былай ештеңе жаза алмайсыз, тек алыңыз HyperGraphQL.

Семантикалық веб пен байланыстырылған деректердің православиелік көзқарасы бойынша, мұның бәрі, әрине, өкінішті, өйткені олар келесі деректер силосының айналасында құрылған интеграцияға арналған сияқты және қолайлы емес платформалар (әрине, RDF дүкендері) .

GraphQL-ті SPARQL-пен салыстырудан алынған әсер екі жақты.

  • Бір жағынан, GraphQL SPARQL-тің алыс туысы сияқты көрінеді: ол REST-ке тән сұраулардың қайта іріктелу және көптігі мәселелерін шешеді - онсыз, мүмкін, қарастыру мүмкін емес еді. сұрау тілі, кем дегенде веб үшін;
  • Екінші жағынан, GraphQL-тің қатаң схемасы көңіл көншітеді. Тиісінше, оның «интроспективтілігі» RDF толық рефлексивтілігімен салыстырғанда өте шектеулі болып көрінеді. Меншік жолдарының аналогы жоқ, сондықтан оның неліктен «График-» екені анық емес.

II. MongoDB үшін адаптерлер

Алдыңғыға қосымша тренд.

  • Қазір Stardog-да мүмкін - атап айтқанда, барлығы бір GraphQL-де - MongoDB деректерін виртуалды RDF графиктеріне салыстыруды конфигурациялау;
  • Ontotext GraphDB жақында болды ол мүмкіндік береді MongoDB сұрауындағы SPARQL ішіне фрагменттерді кірістіру.

Егер JSON көздеріне адаптерлер туралы кеңірек айтатын болсақ, олар осы көздерде сақталған JSON-ды RDF ретінде көрсетуге азды-көпті мүмкіндік береді SPARQL жасауреттеуге болатын, мысалы, Апачи Йенаға.

Алғашқы екі тенденцияны қорытындылай келе, RDF қоймалары интеграцияға және «полиглоттық табандылық» жағдайында жұмыс істеуге толық дайындығын көрсетеді деп айта аламыз. Алайда, бұл соңғысының сәнден шығып кеткені және оның орнын басып жатқаны белгілі келе жатыр көп модельді. RDF сақтау әлеміндегі мультимодельдеу туралы не деуге болады?

Қысқасы, мүмкін емес. Мен көп модельді ДҚБЖ тақырыбына жеке мақала арнағым келеді, бірақ қазіргі уақытта графикалық модельге негізделген көп модельді ДҚБЖ жоқ екенін атап өтуге болады (RDF оның түрі деп санауға болады) . Кейбір шағын мультимодельдеу - балама LPG графикалық үлгісі үшін RDF сақтауды қолдау - мақалада талқыланады V бөлім.

III. OLTP қарсы OLAP

Дегенмен, сол Gartner Ол былай деп жазадыбұл мультимодель ең алдымен үшін міндетті шарт болып табылады операциялық бөлмелер ДҚБЖ. Бұл түсінікті: «көп нұсқалы сақтау» жағдайында негізгі мәселелер транзакцияға байланысты туындайды.

Бірақ RDF қоймалары OLTP-OLAP шкаласы бойынша қайда орналасқан? Мен былай жауап берер едім: мұнда да, мұнда да. Олардың не үшін арналғанын көрсету үшін үшінші аббревиатура қажет. Опция ретінде мен ұсынар едім OLIP — Онлайн зияткерлік өңдеу.

Дегенмен, әлі де:

  • GraphDB-де енгізілген MongoDB-пен интеграциялық механизмдер кем дегенде емес арналған жазу өнімділігі мәселелерін шешу;
  • Stardog одан әрі және толығымен жүреді қайта жазады қозғалтқыш, қайтадан жазу өнімділігін жақсарту мақсатында.

Енді нарыққа жаңа ойыншыны таныстыруға рұқсат етіңіз. IBM Netezza және Amazon Redshift жасаушыларынан - AnzoGraph™. Оның негізінде жасалған тауардың жарнамасының суреті мақаланың басында жарияланған. AnzoGraph өзін GOLAP шешімі ретінде орналастырады. Сізге терезе функциялары бар SPARQL қалай ұнайды? —

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

IV. RocksDB

Қазірдің өзінде жоғары сілтеме болды Stardog 7 Beta хабарландыруына, онда Stardog RocksDB-ті негізгі сақтау жүйесі - кілттер дүкені, Google LevelDB-тің Facebook шанышқысы ретінде пайдаланатыны туралы айтты. Неліктен белгілі бір тенденция туралы айту керек?

Біріншіден, бағалау Wikipedia мақаласы, тек RDF қоймалары ғана емес, RocksDB-ге «трансплантацияланбайды». RocksDB-ті ArangoDB, MongoDB, MySQL және MariaDB, Cassandra-да сақтау қозғалтқышы ретінде пайдалану жобалары бар.

Екіншіден, RocksDB сайтында тиісті тақырыптар бойынша жобалар (яғни өнім емес) жасалады.

Мысалы, eBay RocksDB пайдаланады платформасы Сіздің «білім графигі» үшін. Айтпақшы, оқу қызық: сұрау тілі үйде өсірілген пішім ретінде басталды, бірақ жақында ол SPARQL-ге көбірек ұқсайды.. Әзілдегідей: біз қанша білім графигін жасасақ та, біз бәрібір RDF-мен аяқталамыз.

Тағы бір мысал - бірнеше ай бұрын пайда болған Викидеректер тарихын сұрау қызметі. Оны енгізбес бұрын Викидата тарихи ақпаратқа қол жеткізу керек болды MWAPI стандартты Mediawiki API интерфейсіне. Қазір таза SPARQL арқылы көп нәрсе мүмкін. «Көрменің астында» RocksDB да бар. Айтпақшы, WDHQS Freebase-ті Google Knowledge Graph ішіне импорттаған адам жасаған сияқты.

V. LPG қолдауы

LPG графиктері мен RDF графиктерінің негізгі айырмашылығын еске сала кетейін.

LPG-де скалярлық сипаттарды шеткі даналарға тағайындауға болады, ал RDF-де олар тек жиек «түрлеріне» тағайындалуы мүмкін (бірақ тек скалярлық сипаттар ғана емес, сонымен қатар қарапайым қосылымдар). Бұл РДФ шектеуі СКГ-мен салыстырғанда жеңу сол немесе басқа модельдеу техникасы. RDF-мен салыстырғанда LPG шектеулерін жеңу қиынырақ, бірақ LPG графиктері RDF графиктерінен гөрі Харари оқулығындағы суреттерге көбірек ұқсайды, сондықтан адамдар оларды қалайды.

Әлбетте, «LPG қолдау» міндеті екі бөлікке бөлінеді:

  1. RDF моделіне ондағы СКГ құрылымдарын имитациялауға мүмкіндік беретін өзгерістер енгізу;
  2. осы өзгертілген үлгідегі деректерге қол жеткізуге мүмкіндік беретін RDF сұрау тіліне өзгерістер енгізу немесе танымал LPG сұрау тілдерінде осы үлгіге сұраулар жасау мүмкіндігін енгізу.

V.1. Деректер моделі

Мұнда бірнеше ықтимал тәсілдер бар.

V.1.1. Singleton қасиеті

RDF және LPG үйлестірудің ең нақты тәсілі, бәлкім синглтон қасиеті:

  • Мысалы, предикаттың орнына :isMarriedTo предикаттар қолданылады :isMarriedTo1, :isMarriedTo2 i t. d.
  • Бұл предикаттар жаңа үштіктердің субъектілері болады: :isMarriedTo1 :since "2013-09-13"^^xsd:date және басқалар.
  • Предикаттардың бұл даналарының ортақ предикатпен байланысы форманың үштіктері арқылы белгіленеді :isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo.
  • Ол анық rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type, бірақ неге жай жазбау керектігін ойлаңыз :isMarriedTo1 rdf:type :isMarriedTo.

Мұнда RDFS деңгейінде «LPG қолдауы» мәселесі шешіледі. Мұндай шешім тиісті шешімге енгізуді талап етеді стандартты. Тіркеу салдарын қолдайтын RDF дүкендері үшін кейбір өзгерістер қажет болуы мүмкін, бірақ қазір Singleton Property басқа үлгілеу әдісі ретінде қарастырылуы мүмкін.

V.1.2. Нақтылау дұрыс жасалды

Неғұрлым аңғал тәсілдер меншік даналарының үштіктер арқылы толықтай елеусіз болатынын түсінуден туындайды. Үшем туралы бірдеңе айта алу арқылы біз меншік даналары туралы айта аламыз.

Бұл тәсілдердің ең сенімдісі RDF*, aka RDR, туған Blazegraph тереңдігінде. Бұл басынан бастап сайланды өзіңізге және AnzoGraph үшін. Тәсілдің беріктігі оның шеңберінде болуымен анықталады ұсынылады сәйкес өзгерістер RDF семантикасы. Алайда мәселе өте қарапайым. RDF тасбақасын сериялауда сіз келесідей нәрсені жаза аласыз:

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

V.1.3. Басқа тәсілдер

Сіз формальды семантикамен алаңдамайсыз, бірақ жай ғана үштіктердің белгілі бір идентификаторлары бар деп болжаңыз, олар, әрине, URI болып табылады және осы URI арқылы жаңа үштіктер жасайды. SPARQL ішіндегі осы URI мекенжайларына рұқсат беру ғана қалады. Сонымен келеді Жұлдызды ит.

Аллегрографта барды аралық жолмен. Аллегрографта үштік идентификаторлар екені белгілі болып табылады, бірақ үштік атрибуттарды жүзеге асырған кезде олар ерекшеленбейді. Дегенмен, ол әлі де формальды семантикадан өте алыс. Бір қызығы, үштік атрибуттар URI емес, және бұл атрибуттардың мәндері тек литералдар болуы мүмкін. СКГ ұстанушылар өздері қалаған нәрсені алады. Арнайы ойлап табылған NQX пішімінде RDF* үшін жоғарыдағыға ұқсас мысал келесідей:

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

V.2. Сұрау тілдері

Модель деңгейінде LPG-ге қандай да бір жолмен қолдау көрсете отырып, сіз осындай модельдегі деректерге сұрау салуға мүмкіндік беруіңіз керек.

  • RDF* сұрауларына арналған Blazegraph қолдау көрсетеді SPARQL* и Грмлин. SPARQL* сұрауы келесідей:

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

  • Анзограф да қолдайды SPARQL* және қолдау көрсетеді Cypher, Neo4j тіліндегі сұрау тілі.
  • Stardog өзін қолдайды кеңейту SPARQL және қайтадан Гремлин. Сіз SPARQL жүйесінде үштік URI және «мета-ақпаратты» келесідей нәрсені пайдалана аласыз:

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

  • Аллегрограф сонымен қатар өзінің жеке деректерін қолдайды кеңейту SPARQL:

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

Айтпақшы, GraphDB бір уақытта LPG қолдамай Tinkerpop/Gremlin-ге қолдау көрсетті, бірақ бұл 8.0 немесе 8.1 нұсқаларында тоқтатылды.

VI. Лицензияларды қатайту

«Таңдау үштік дүкені» және «ашық бастапқы үш дүкен» жиынтықтарының қиылысында жақында ешқандай толықтырулар болған жоқ. Жаңа ашық бастапқы RDF дүкендері күнделікті пайдалану үшін жақсы таңдау болудан ұзақ жол, ал мен пайдаланғым келетін жаңа үштік дүкендер (мысалы, AnzoGraph) жабық көз болып табылады. Керісінше, төмендеу туралы айтуға болады ...

Әрине, ашық бастапқы код бұрын жабылған жоқ, бірақ кейбір ашық бастапқы репозиторийлер енді таңдауға тұрарлық деп саналмайды. Ашық бастапқы нұсқасы бар Virtuoso, менің ойымша, қателерге батып бара жатыр. Blazegraph AWS компаниясымен сатып алынды және Amazon Нептунының негізін құрады; енді кем дегенде тағы бір шығарылым болатыны белгісіз. Тек Йена қалды...

Егер ашық дереккөз өте маңызды болмаса, бірақ сіз оны қолданып көргіңіз келсе, онда бәрі бұрынғыға қарағанда қызғылт емес. Мысалы:

  • Жұлдызды ит тоқтатады тегін нұсқаны тарату (бірақ қарапайым нұсқаның сынақ мерзімі екі есеге артты);
  • в GraphDB бұлты, бұрын тегін негізгі жоспарды таңдай алатын болсаңыз, жаңа пайдаланушы тіркеулері тоқтатылды.

Жалпы алғанда, қарапайым IT адам үшін кеңістік барған сайын қолжетімсіз болып барады, оның дамуы корпорациялардың көп бөлігіне айналуда.

Ақпарат көзі: www.habr.com

пікір қалдыру