SPARQL в Protege 4.3
Мне нужно вернуть людей по моему запросу:
SELECT ?subject ?class
WHERE { ?subject rdfs:subClassOf ?class.
?class rdfs:comment "linear"@en}
Но это работает только с подклассами. Должен ли я заменить rdfs:subClassOf
на другого оператора?
2 ответа
Решение
Ваш запрос специально запрашивает ? Субъекты, которые являются подклассами класса? (Где ? Класс имеет rdfs: comment "linear" @en). Чтобы получить экземпляры типа ? Class, вы должны использовать
?subject rdf:type ?class
или, поскольку SPARQL позволяет сокращать rdf:type с помощью a,
?subject a ?class
Если вы не можете поделиться информацией о массиве данных, вы запрашиваете, возможно, вы захотите получить представление о себе, проверив
SELECT ?s ?p ?subject ?class
WHERE
{ ?s ?p ?class .
?subject rdfs:subClassOf ?class .
?class rdfs:comment "linear"@en .
} ORDER BY ?s ?p ?subject ?class
и / или
SELECT ?subject ?class ?p ?o
WHERE
{ ?subject ?p ?o .
?subject rdfs:subClassOf ?class .
?class rdfs:comment "linear"@en .
} ORDER BY ?subject ?class ?p ?o
откуда вы можете расширяться таким же образом, пока не получите ручку.