Реализация SAD API RDF4J - PullRequest
       43

Реализация SAD API RDF4J

0 голосов
/ 23 марта 2020

Я пытаюсь создать федеративное приложение RDF на основе rdf4j и FedX. Мне нужно уметь:

  1. Оптимизировать план запросов и стратегии объединения.
  2. Чтобы выставлять разные и разнородные базы данных (например, временную серию или реляционную БД) в federated fashion.

Я немного просмотрел документацию по rdf4j и получил gr asp. И поэтому у меня есть несколько небольших вопросов:

  1. Есть ли документация, объясняющая, как реализовать API SAIL? Я попытался отладить и проследить за ходом выполнения примера запроса с использованием хранилища памяти RDF, и я заблудился.
  2. Предположим, я хочу выставить реляционную базу данных в моем центре данных. Должен ли я реализовать репозиторий SPARQL или HTTP-хранилище? я должен в любом случае реализовать API Парус?
  3. Что касается fedX, как я могу сделать возможным использование терминов SERVICE и VALUES, как это предлагается в федеративных запросах SPARQL 1.1? Как я могу изменить стратегии Joning? план запроса?

Я знаю, что на это можно ответить, если я углублюсь в код, но мне интересно, кто-то уже раскрыл какую-то базу данных, используя API rdf4j, или даже работал и настраивал RDF4J.

Спасибо вам всем!

1 Ответ

0 голосов
/ 23 марта 2020

Есть ли документация, объясняющая, как реализовать API SAIL? Я попытался отладить и проследить за выполнением примера запроса с использованием хранилища памяти RDF, и я заблудился.

Существует базовый c проектный черновик , но это неполный. Более всесторонний HowTo был в планировании некоторое время, но он никогда не получает тот приоритет, который ему необходим.

Тем не менее, я не думаю, что вам нужно реализовывать свой собственный SAIL для того, что вы имеете в виду. Существует множество существующих реализаций, которые могут делать то, что вам нужно.

Предположим, я хочу предоставить реляционную базу данных в своем центре данных. Должен ли я реализовать репозиторий SPARQL или HTTP-репозиторий?

Я не понимаю вопроса. HTTPRepository - это клиентский прокси-сервер для RDF4J-сервера. SPARQLRepository - это клиентский прокси для конечной точки SPARQL (не RDF4J). Ни один из них не имеет ничего общего с реляционной базой данных.

Должен ли я в любом случае реализовать API SAIL?

Это зависит от вашего варианта использования, но я сомневаюсь в этом - по крайней мере, не с самого начала. Я бы, вероятно, использовал существующую библиотеку R2RML , совместимую с RDF4J, как, например, R2RML API или CARML - либо живое отображение, либо офлайн пакетное отображение между реляционными данными и вашим хранилищем триплетов может решить вашу проблему.

Что касается fedX, как я могу сделать возможным использование терминов SERVICE и VALUES, как это предлагается в федеративных запросах SPARQL 1.1?

Вам не нужно «делать это», FedX поддерживает это «из коробки».

Как я могу изменить стратегии Joning? план запроса?

Вы не можете (по крайней мере, не легко), и вы не должны этого хотеть. Довольно много исследований и разработок было уделено стратегиям планирования запросов RDF4J и FedX. Я не говорю, что либо идеально, но вы вряд ли сделаете лучше.

...