2014-09-03 101 views
1

我已經爲Books定義了一個rdf類。 另一個用於描述人的rdf類。 Book類包含將book實例鏈接到人員實例的authoredBy字段。圖書sparql DESCRIBE查詢獲取關於鏈接對象的數據

Book -Id -name -authoredBy

Person -id -firstName -LastName -designation

屬性對於檢索書的屬性,我用下面的SPARQL查詢

表示書本 WHERE { 書RDF:??書;

}

我能夠檢索所有屬於使用DESCRIBE即謂語,主體與客體,以預訂的屬性。但是,當涉及到authoredBy字段時,上述查詢僅返回作者的URI。

我希望看到所有屬於作者的謂詞(即它的名字,姓氏)。上面的DESCRIBE查詢可以修改來實現這個嗎?

回答

4

皆屬於使用DESCRIBE

屬性不來預訂屬性 「屬於」 的事情。 OWL不是一種面向對象的編程語言。


但是,您當然可以獲取書籍及其作者的屬性和值。 描述的特定結果查詢是依賴於實現的。即使你正在使用的實現給你一定的結果,但不能保證其他實現會給你這樣的結果。使用構造查詢更安全。在你的情況,這聽起來像你想

construct where { 
    ?book a ex:Book ; 
     ?p ?o ; 
     ex:authoredBy* ?author . 
    ?author ?ap ?ao . 
} 

這將返回所有書籍及其作者的所有三元組的圖形。


我用下面的SPARQL查詢

DESCRIBE ?book WHERE { ?book a rdf:Book ; 

} 

注意,你真的不應該定義在RDF命名空間中你自己的條件(例如,你有RDF:書)。你應該爲你自己的類使用一些其他的命名空間。