Для моего текущего проекта мне нужно загрузить набор данных и различные онтологии и представить все как связанные данные, используя Fuseki с TDB и Pubby. Pubby возьмет набор данных из одного места и создаст URI на основе этого места, поэтому, если нам понадобится несколько разных мест (как в случае с 23 отдельными онтологиями), это будет легко сделать с Pubby, добавив еще один набор данных.
Концепция набора данных, по-видимому, также применима к Fuseki.
По сути, мне нужно будет открыть три типа URI:
- www.mywebsite.com/project/data
- www.mywebsite.com/project/data/structure
- www.mywebsite.com/project/ontology
Чтобы создать такие URI с помощью Pubby 0.3.3. вам нужно будет указать такие строки:
conf:dataset [
conf:sparqlEndpoint <sparql_endpoint_url_ONE>;
conf:sparqlDefaultGraph <sparql_default_graph_name_ONE>;
conf:datasetBase <http://mywebsite.com/project/>;
conf:datasetURIPattern "(data)/.*";
(...)
]
Каждый набор данных, указанный в Pubby, будет брать данные с определенного URL-адреса (обычно это конечная точка SPARQL). Для онтологий у вас будет набор данных, который использует второй datasetURIPattern, подобный этому:
conf:dataset [
conf:sparqlEndpoint <sparql_endpoint_url_TWO>;
conf:sparqlDefaultGraph <sparql_default_graph_name_TWO>;
conf:datasetBase <http://mywebsite.com/project/>;
conf:datasetURIPattern "(ontology)/.*";
(...)
]
Как видите, различия будут заключаться в следующем: conf:sparqlEndpoint (конечная точка SPARQL), conf:sparqlDefaultGraph (граф по умолчанию), conf:datasetURIPattern (необходим для создания реальных URI с помощью Pubby). Однако мне не ясно, как я могу иметь отдельные URI для наборов данных при использовании Fuseki. Например, при использовании Sesame я просто создаю два разных репозитория, и этот трюк прекрасно работает при публикации данных в Pubby. Не сразу понятно с
Примеры из официальной документации Fuseki представляют единый набор данных (только для чтения или нет и т. д.). , но ни один из них, кажется, не представляет такой сценарий. Не существует непосредственного примера четкого разделения между TBox и ABox, хотя это и является фундаментальным принципом связанных данных (см. Сохранение разделения ABox и TBox).
Насколько я понимаю, это должно быть возможно, но как? Также правильно ли, что TBox и ABox могут быть позже воссоединены под одной конечной точкой SPARQL с помощью (tdb:unionDefaultGraph true ;
).