使用属性 Pizza.owl 时结果为空
Empty result when using properties Pizza.owl
我正在尝试 运行 Protege 4.3 中的以下 SPARQL 查询(在 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 .
}
只有当我 运行 查询涉及 属性 时才会发生这种情况。
使用相同的前缀,以下查询有效 - 和 returns 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 .
}
第一个查询有什么问题?
我终于明白我做错了什么了。此查询 returns individuals 用于 pizzaInstance,而我的 ontology 中的 none 个人有浇头。当我查询 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>
Here 是一个很好的教程,希望对某人有所帮助。
我正在尝试 运行 Protege 4.3 中的以下 SPARQL 查询(在 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 .
}
只有当我 运行 查询涉及 属性 时才会发生这种情况。 使用相同的前缀,以下查询有效 - 和 returns 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 .
}
第一个查询有什么问题?
我终于明白我做错了什么了。此查询 returns individuals 用于 pizzaInstance,而我的 ontology 中的 none 个人有浇头。当我查询 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>
Here 是一个很好的教程,希望对某人有所帮助。