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

откуда вы можете расширяться таким же образом, пока не получите ручку.

Другие вопросы по тегам