我只是SPARQL的初学者,可以编写一些基本的查询。我有一个披萨本体,其中有一个披萨的属性如下:
rdf:subClassOf NamedPizza
hasTopping only (MozzarellaTopping
or PeperoniSausageTopping
or TomatoTopping)
hasTopping some MozzarellaTopping
hasTopping some PeperoniSausageTopping
hasTopping some TomatoTopping
我写了以下查询,但没有结果。
SELECT * WHERE
{
?pizza rdfs:subClassof [
owl:onProperty :hasTopping;
owl:someValuesFrom :MozzarellaTopping ] .
?pizza rdfs:subClassof [
owl:onProperty :hasTopping;
owl:someValuesFrom :PeperonSausageTopping ] .
?pizza rdfs:subClassof [
owl:onProperty :hasTopping;
owl:someValuesFrom :TomatoTopping ] .
}
获取此披萨名称的SPARQL查询是什么?
我正在使用Protege 4.2以及TopBraid来运行SPARQL查询
答案 0 :(得分:4)
在您的SPARQL查询中,您编写rdfs:subClassof
而不是rdfs:subClassOf
('o'而不是'O')。资本化很重要,因为前缀表示法只是URI的缩写,而在URI中,不同的字符(如小写而不是大写)会产生不同的URI。
答案 1 :(得分:2)
将查询向下剪切直到它产生某些东西,然后查看为什么删除的部分与数据不匹配。