2016-09-05 2 views
0

Я только начинаю с Protégé и OWL. Я только что создал класс hiearchy в Protege как:Почему аргумент Pellet не устанавливает отношения подкласса?

:A rdf:type owl:Class ; 
    rdfs:subClassOf owl:Thing ; 
    owl:disjointWith :B . 

:B rdf:type owl:Class ; 
    rdfs:subClassOf owl:Thing . 

:C rdf:type owl:Class ; 
    rdfs:subClassOf :A ; 
    owl:disjointWith :D . 

:D rdf:type owl:Class ; 
    rdfs:subClassOf :A . 

:E rdf:type owl:Class ; 
    rdfs:subClassOf :B . 

Когда я начинаю окатышей Reasoner я ожидал для того, чтобы сделать вывод, что все подклассы A и B также подклассы Вещь, которая не бывает. Также я ожидал, что запрос SPARQL SELECT ?subject WHERE { ?subject rdfs:subClassOf owl:Thing} приведет к всем классам от A до B. Однако запрос возвращает только A и B.

Я делаю что-то не так, или я просто не в порядке по тому, что ожидал?

+0

Вы оба выбрали и начали рассуждать? Это два разных варианта меню в Protégé. – Ignazio

+0

Возможно, запрос SPARQL не использует аргумент. Я не могу вспомнить, есть ли какой-либо параметр, который необходимо проверить. – Ignazio

+0

@Ignazio Да, я выбрал Пелле и щелкнул мышкой по началу. – joseCM

ответ

1

В Protege есть несколько плагинов SPARQL. Если вы хотите использовать рассуждения, то можно использовать плагин Snap SPARQL Query. Обратите внимание, что это не плагин по умолчанию SPARQL, который поставляется с дистрибутивом Protege, но должен быть установлен явно (через диспетчер плагинов это довольно просто).

+0

Спасибо! Вот так! – joseCM

Смежные вопросы