RobV 的答案很重要,你最终可能会遇到它,但我认为最有可能的问题是你在查询中的前缀是错误的。这是您的查询:
PREFIX pizza:<http://example.org/>
SELECT * WHERE {
?X ?Y pizza:MushroomTopping .
}
但是,如果您查看数据中的一些三元组,您会看到,例如:
<http://www.co-ode.org/ontologies/pizza/pizza.owl#RocketTopping> <http://www.w3.org/2002/07/owl#disjointWith> <http://www.co-ode.org/ontologies/pizza/pizza.owl#MushroomTopping> .
Pizza:前缀应该是http://www.co-ode.org/ontologies/pizza/pizza.owl#。如果你做出改变,那么你可能会得到更有意义的结果,比如这些(但我在 Jena 中运行了这个,所以结果可能看起来有点不同):
prefix pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
select ?s ?p {
?s ?p pizza:MushroomTopping
}
-------------------------------------------------------------------------------
| s | p |
===============================================================================
| _:b0 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> |
| pizza:CaperTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| pizza:PepperTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| _:b1 | <http://www.w3.org/2002/07/owl#someValuesFrom> |
| pizza:RocketTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| _:b2 | <http://www.w3.org/2002/07/owl#someValuesFrom> |
| _:b3 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> |
| pizza:OnionTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| _:b4 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> |
| _:b5 | <http://www.w3.org/2002/07/owl#someValuesFrom> |
| pizza:TomatoTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| pizza:GarlicTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| _:b6 | <http://www.w3.org/2002/07/owl#someValuesFrom> |
| _:b7 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> |
| pizza:OliveTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
| pizza:ArtichokeTopping | <http://www.w3.org/2002/07/owl#disjointWith> |
-------------------------------------------------------------------------------
如何使用谓词 MushroomTopping 获得三元组?
请注意,RDF 三元组的形式是(主语、谓语、宾语)。当你写一个 SPARQL 查询时,你会写:
select ?subject ?predicate ?object where {
?subject ?predicate ?object
}
您编写的查询在对象位置有Pizza:MushroomTopping 。幸运的是,在这种情况下,这可能更有意义,因为Pizza:MushroomTopping是一个 OWL类,而不是一个属性,所以你不太可能看到它出现在谓词位置。