Хранение отдельно индивидуумов и онтологий в кунжутном хранилище

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

Можно ли добавить индивидуумов в другой репозиторий, а не в тот, в котором хранится онтология? Если это возможно, как я могу связать людей с онтологией и выполнять запросы к ним?

Или это хорошая практика, чтобы хранить их все вместе?


person whitefang1993    schedule 22.06.2015    source источник


Ответы (1)


Можно хранить ваших людей и онтологию в отдельных репозиториях, а затем запрашивать их вместе, да. Тем не менее, это не обычный способ справиться с вещами. Гораздо более простой подход заключается в том, что вы помещаете оба набора данных в один и тот же репозиторий, но помещаете каждый в отдельный контекст или именованный график. Sesame — это quad-store, что означает, что он позволяет вам установить именованный идентификатор графа (в API Sesame это называется контекстным идентификатором) для ваших данных. Затем это можно использовать для идентификации подмножеств в вашем репозитории. Дополнительную информацию о том, как использовать контекст программно. Если вы работаете вручную через Workbench, просто убедитесь, что при загрузке файлов у вас установлен соответствующий идентификатор контекста в соответствующем поле формы (подойдет любой URI, но лучше сделать так, чтобы его было легко запомнить).

Однако, если вы настроены на использование отдельных репозиториев, есть два готовых способа запроса более чем одного репозитория.

Первый заключается в использовании предложения SPARQL SERVICE. Представьте, что у вас есть два репозитория, один с именем Instances, а другой с именем Ontology. Каждый репозиторий Sesame также является конечной точкой SPARQL, поэтому можно запрашивать объединенный набор данных, выполнив, например, следующий запрос в репозитории Instances:

  SELECT ?i ?c
  WHERE { 
         SERVICE <http://localhost:8080/openrdf-sesame/repositories/Ontology> { 
                    ?c rdfs:subClassOf :SomeClass .
         }
         ?i a ?c .
  }

Второй способ — создать объединенный репозиторий в Sesame. Федеративный репозиторий — это «виртуальная» база данных, состоящая из нескольких репозиториев-участников. Вы можете запросить объединенный репозиторий, как и любой другой репозиторий, и под капотом он распределит ваш запрос по хранилищам-членам и интегрирует результаты. Подробнее о том, как настроить это вручную, см. в пользовательской документации Sesame. через Workbench или программно.

person Jeen Broekstra    schedule 22.06.2015