Запрос SPARQL — класс и подкласс дают имя класса и пространство имен

Как я могу получить все свойства класса и его подклассы со свойствами из источника данных RDF, используя запрос SPARQL, учитывая имя класса и пространство имен?


person Raja    schedule 17.12.2008    source источник
comment
Когда вы говорите, что вам нужны свойства класса, вы имеете в виду отдельных лиц (экземпляры класса) и их свойства? Когда вам нужны подклассы, нужны ли вам и транзитивные подклассы (A => B, B => C, поэтому вы хотите, чтобы A => C)? Можете ли вы привести пример запрашиваемого вами графа RDF?   -  person Phil M    schedule 29.07.2009


Ответы (2)


Вы пытаетесь выполнить рекурсивный запрос SPARQL? Другими словами, выберите данного человека и все его свойства. Если объектом свойства является другое лицо, выберите его свойства и т. д.

Я не верю, что SPARQL поддерживает это.

Наивный подход состоял бы в том, чтобы сделать что-то подобное (и, если вы имеете в виду отдельных лиц, а не классы, это фактически соответствует вашим требованиям, но не обрабатывает следующий «уровень» троек).

CONSTRUCT {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
} WHERE {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
}

Обратите внимание, что если ?o2 является предметом каких-либо операторов, этот запрос не вернет их.

person Phil M    schedule 29.07.2009

Как насчет это:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?subClass ?predicate 
WHERE {
   ?subClass rdfs:subClassOf <http://dbpedia.org/ontology/Work> .
   ?predicate rdfs:domain ?subClass
}

Попробуйте инструмент SPARQL, такой как интерфейс SNORQL DBPedia.

person Simon Gibbs    schedule 11.03.2009