Во вселенной RDF онтология — это просто еще один граф; каждый график должен быть самоописывающим; поэтому каждый граф онтологий должен включать в себя утверждение, которое, по сути, говорит: «Я — онтология».
Предполагая, что такие рекомендации были соблюдены, вы можете использовать список онтологических именованных графов, описанных за данной конечной точкой --
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?ontology
WHERE { ?ontology rdf:type owl:Ontology }
ORDER BY ?ontology
Обратите внимание, однако, что нет необходимости загружать граф онтологии в Virtuoso (или другое хранилище quad/triple/RDF), чтобы термины этой онтологии могли использоваться в других графах, загруженных в это хранилище, поэтому я задаюсь вопросом о цели ваш вопрос...
ETA: Учитывая, что у вас есть список именованных графов для онтологий в данном экземпляре, вы можете получить их содержимое с помощью таких запросов:
SELECT *
FROM <http://purl.org/vocab/relationship/>
WHERE { ?s ?p ?o }
-- который вы можете выполнить через соединение ADO.NET из C#, через Virtuoso ADO.NET Provider, превратив его в SPARQL-in-SQL a/k/a SPASQL с простым добавлением ключевого слова SPARQL в начало и добавлением точка с запятой --
SPARQL
SELECT *
FROM <http://purl.org/vocab/relationship/>
WHERE { ?s ?p ?o } ;
Теперь это может быть само собой разумеющимся, но для ясности - вы также можете выполнить первоначально описанный запрос как SPASQL через ADO.NET -
SPARQL
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?ontology
WHERE { ?ontology rdf:type owl:Ontology }
ORDER BY ?ontology ;
(Отказ от ответственности: я работаю на OpenLink Software, производителя Виртуоз.)
person
TallTed
schedule
03.05.2016