为什么这个变量永远不会有价值

时间:2016-03-10 12:32:01

标签: sparql rdf semantic-web owl ontology

我正在检查如果实例具有特定谓词的值,则将该值绑定到特定变量,否则,将该变量绑定到integer类型的值1。这是我的代码

sqliteopenhelperObj.close()

?提升的价值总是空的,请看

enter image description here

为什么请?

注意

我认为您不需要数据来测试我的代码无法正常工作的原因,因为对我来说这听起来像是使用绑定的一般错误。但是,如果你想要数据,我会给你数据。

注2

从第一个位置开始没有rs:boostedBy谓词,所以我希望总是有默认值,在这种情况下是1的整数类型。

1 个答案:

答案 0 :(得分:5)

IF必须在可选的图形模式之外:

SELECT ?boosted WHERE {
    :r1 a ?x
    OPTIONAL{ ?item rs:boostedBy ?boostedOptional . }
    BIND (IF(bound(?boostedOptional), ?boostedOptional, "1"^^xsd:integer) as ?boosted)
}

其次,我没有看到rs:boostedBy属性和{:r1 a?x}三重模式之间的关系。即你想看看主题是否有一个boostedBy属性?在这种情况下:r1和?项应该是相同的,即两者应该是:r1或两者都应该是?item,如果我在这里理解你的意图。