如果我给我的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
而不是虚拟变量?
答案 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。