Запрос SPARQL к полученной иерархии уровня 1 - PullRequest
0 голосов
/ 17 марта 2020

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

my ontology

Я хочу сделать запрос с SPARQL, который приведет к уровню 1 в иерархии (подкласс Thing). это возможно сделать?

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Чтобы позволить спрашивающему фактически выбрать ответ, это из комментариев @ UninformedUser:

SELECT ?cls 
WHERE {
  ?cls a owl:Class .
  FILTER NOT EXISTS { 
    ?cls rdfs:subClassOf ?sup .
    FILTER(?sup != owl:Thing) 
  } 
}

"это работает, если все классы" помечены "как сова: Класс"

0 голосов
/ 19 марта 2020

Я думаю, что вы говорите "найдите все вещи, которые являются подклассами owl:Thing и только подклассами owl:Thing, так почему бы не поискать все вещи rdfs:subClassOf других вещей и удалить все не owl:Thing совпадения:

SELECT * 
WHERE {
    ?x rds:subClassOf ?y .

    FILTER (!sameTerm(?y, owl:Thing))
}
...