Ani*_*vid 1 rdf semantic-web owl ontology sparql
我正在检查如果实例具有特定谓词的值,则将该值绑定到特定变量,否则,将该变量绑定到整数类型的值1.这是我的代码
select ?boosted where {
:r1 a ?x
optional
{
?item rs:boostedBy ?boostedOptional
bind (if(bound(?boostedOptional), ?boostedOptional, "1"^^xsd:integer) as ?boosted)
}
}
Run Code Online (Sandbox Code Playgroud)
提升的价值总是空的,请看
告诉我为什么?
我认为你不需要数据来测试我的代码无法正常工作的原因,因为对我来说这听起来像是使用绑定的一般错误.但是,如果你想要数据,我会给你数据.
从第一个位置开始没有rs:boostedBy谓词,所以我希望始终保持默认值,在这种情况下,它是1的整数类型.
IF必须在可选的图形模式之外:
SELECT ?boosted WHERE {
:r1 a ?x
OPTIONAL{ ?item rs:boostedBy ?boostedOptional . }
BIND (IF(bound(?boostedOptional), ?boostedOptional, "1"^^xsd:integer) as ?boosted)
}
Run Code Online (Sandbox Code Playgroud)
其次,我没有看到rs:boostedBy属性和{:r1 a?x}三重模式之间的关系.即你想看看主题是否有一个boosttedBy属性?在这种情况下:r1和?项应该是相同的,即两者应该是:r1或两者都应该是?item,如果我在这里理解你的意图.