によって一つの変数を分割:SPARQL:私はこのようになりますいくつかのRDFデータをしたオブジェクトタイプ
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クエリでこれを表現することはできますか?もう1つの質問は、このようなデータをモデル化するのが妥当かどうか、あるいはこのような2つのObjectPropertiesを追加する方がいいでしょうか?
あなただけのバッグの種類を指定するトリプルを追加する必要があり、変数を見て、あなたは人の変数の型指定されただけのようWatchObject -subclassOf-> Accessory
BagObject -subclassOf-> Accessory
Person -hasAccessory-> Accessory
Person -hasWatch-> WatchObject
Person -hasBag-> BagObject
ご意見ありがとうございます。私はクロスプロダクトでアプローチを試みたが、それは私のquerysをずっと遅くする。あなたが提案したように、hasAccessoryのサブプロパティとして追加のhasWatch/hasBagプロパティを作成しました。 – del123
でも、クロス製品を購入する必要はありません。最初のアプローチのようなものを使用することができます。 –