0
我有看起來像這樣的一些RDF數據:SPARQL:按對象類型拆分一個變量
WatchObject -subclassOf-> Accessory
BagObject -subclassOf-> Accessory
Person -hasAccessory-> Accessory
凡WatchObject和BagObject是「附屬應用程序」,它有關係有兩個子類(是)與人配合。
我想查詢它現在得到一個人手錶和行李分開變量。所以我想到了類似於:
SELECT DISTINCT ?person ?watch ?bag
WHERE {
?person rdf:type x:Person .
?person x:hasAccessory ?bag^^x:BagObject .
?person x:hasAccessory ?watch^^x:WatchObject .
}
是否可以在SPARQL查詢中表達類似的內容?另一個問題是,如果像這樣建模我的數據是合理的,或者像這樣添加兩個更多的ObjectProperties會更好嗎?
WatchObject -subclassOf-> Accessory
BagObject -subclassOf-> Accessory
Person -hasAccessory-> Accessory
Person -hasWatch-> WatchObject
Person -hasBag-> BagObject
感謝您的建議。我嘗試了交叉產品的方法,但它減慢了我的查詢。正如你所建議的,我最終創建了hasAccessory的子屬性作爲額外的hasWatch/hasBag屬性。 – del123
好吧,你不必交叉產品,但。你仍然可以使用第一種方法。 –