2013-02-24 16 views
4

我只是SPARQL的初學者,可以編寫一些基本查詢。我有一個比薩餅本體,其中有一個比薩餅,其性能如下: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查詢

回答

2

切查詢,直到它得到的東西,再看看,看看爲什麼你已經刪除了部分不匹配的數據。

4

在您的SPARQL查詢中,您編寫了rdfs:subClassof而不是rdfs:subClassOf('o'而不是'O')。大寫字母很重要,因爲前綴符號只是URI的縮寫,而在URI中,不同的字符(如小寫字母而不是大寫字母)會生成不同的URI。