Пустой результат при использовании свойств Pizza.owl

Я пытаюсь запустить следующий запрос SPARQL в Protege 4.3 (на Pizza.owl), но я получаю пустой результат:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
SELECT ?pizzaInstance ?pizzaClass ?toppingInstance
WHERE {
?pizzaClass rdfs:subClassOf :NamedPizza .
?pizzaInstance rdf:type ?pizzaClass .
?pizzaInstance :hasTopping ?toppingInstance .
}

Это происходит только тогда, когда я запускаю запросы, связанные со свойствами. С такими же префиксами работает следующий запрос - и возвращает NamedPizza:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
SELECT ?pizzaInstance 
WHERE {
?pizzaInstance rdfs:subClassOf :Pizza .
}

Что не так с первым запросом?

1 ответ

Решение

Я наконец понял, что я делаю не так. Этот запрос возвращает людей для pizzaInstance, и ни у одного из людей в моей онтологии не было топинга. Когда я спросил hasCalorificContentValue вместо hasTopping Я получил желаемые результаты:

PREFIX pz: <http://www.semanticweb.org/ontologies/2017/11/Ontology1512823737278.owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?pizzaClass ?pizzaInstance ?calorificInstance
WHERE {
?pizzaClass rdfs:subClassOf pz:NamedPizza .
?pizzaInstance rdf:type ?pizzaClass.
?pizzaInstance pz:hasCalorificContentValue ?calorificInstance.
}

Запрос становится значимым, когда вы проверяете необработанный файл owl (Example-MargheritaPizza имеет тип MargheritaPizza и участвует в свойстве типа данных hasCalorificValue):

<owl:NamedIndividual rdf:about="&Ontology1512823737278;Example-MargheritaPizza">
        <rdf:type rdf:resource="&Ontology1512823737278;MargheritaPizza"/>
        <hasCalorificContentValue rdf:datatype="&xsd;int">263</hasCalorificContentValue>
    </owl:NamedIndividual>

Вот хороший учебник, надеюсь, это поможет кому-то.

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