如何从SPARQL中的OPTIONAL语句中检索变量?

时间:2016-12-22 11:41:36

标签: sparql

如果我给我的SPARQL查询一个已知项目,该项目可能是许多不同类型。根据我目前感兴趣的类型,我希望从这种类型获得某个属性(对于每种类型,这样做的方式会有所不同)但是一旦找到了这个属性,我想执行相同的操作。

目前我有以下伪代码:

?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

我的问题是OPTIONAL语句?variableOfInterest之外没有被传递出去,而?thingIAmActuallyInterestedIn只是所有对象的列表。

我可以提出长期查询'在两个可选块中,但这将是大量的代码复制。

有没有办法从可选语句输出?variableOfInterest而不是虚拟变量?

1 个答案:

答案 0 :(得分:0)

确保?variableOfInterest条款中包含SELECT,或*

?variableOfInterest匹配时,

OPTIONAL将绑定在结果行中,而当OPTIONAL不匹配时,

try { LockWindowUpdate(this.Handle); // Open your form, maximise it etc } catch (Exception ex) { // Handle any errors } finally { LockWindowUpdate(IntPtr.Zero); } 将被绑定。

如何反映到代码中取决于SPARQL引擎的API。