2016-12-22 21 views
0

SPARQLクエリに、いくつかの異なる種類の既知の項目を与える場合。私が現在興味を持っているタイプに応じて、このタイプから特定のプロパティを取得したい(これを行う方法は各タイプごとに異なります)が、一度このプロパティが見つかると、同じ操作を実行します。SPARQLのOPTIONALステートメントから変数を取得するにはどうすればよいですか?

現在、私は次の擬似コードを持っている:

?object rdf:hasProperty "known Property Type" 
OPTIONAL { 
?object rdf:hasProperty "property type 1" 
#do this thing and store thing of interest in ?variableOfInterest 
} 
OPTIONAL{ 
?object rdf:hasProperty "property type 2" 
#do different thing and store thing of interest in ?variableOfInterest 
} 
?thingIAmActuallyInterestedIn rdf:has type ?variableOfInterest 
#now do long query 

私の問題ではなく?thingIAmActuallyInterestedInがちょうどリストオフすべてのオブジェクトで、オプションの文?variableOfInterestの外には出て渡されないということです。

私はオプションのブロックの両方に '長いクエリ'を置くことができましたが、膨大な量のコードの複製になります。

ダミー変数ではなく、任意のステートメントから?variableOfInterestを出力する方法はありますか?

答えて

0

?variableOfInterestSELECT句である、またはそれはOPTIONALが一致しなかったとき*

?variableOfInterestOPTIONALが一致したとき、結果行にバインドされ、結合していないであろうということを確認してください。

どのようにコードに反映されるかは、SPARQLエンジンのAPIによって異なります。

関連する問題