sparql - SPARQL BIND IF bound 未按预期工作
问题描述
给定以下 SPARQL 查询:
SELECT DISTINCT ?mainRestaurant ?p ?o WHERE {
?registeredRestaurant <http://testData.com/terms#RestaurantType> "Registered Restaurant" ;
<http://testData.com/terms#city> <http://testData.com/city/london> .
?normalRestaurant <http://testData.com/terms#RestaurantType> "Restaurant" ;
<http://testData.com/terms#city> <http://testData.com/city/london> .
BIND(IF(bound(?registeredRestaurant), ?registeredRestaurant, ?normalRestaurant) as ?mainRestaurant )
?mainRestaurant ?p ?o.
}
我希望如果:
?registeredRestaurant <http://testData.com/terms#RestaurantType> "Registered Restaurant" ;
<http://testData.com/terms#city> <http://testData.com/city/london>
没有返回任何东西,那么?registeredRestaurant
就不会绑定到任何东西,因此在我的 SPARQL 查询的以下部分:
BIND(IF(bound(?registeredRestaurant), ?registeredRestaurant, ?normalRestaurant) as ?mainRestaurant )
?mainRestaurant
将绑定到?normalRestaurant
但整个 SPARQL 查询不返回任何内容。但是,当?registeredRestaurant
确实有与之关联的三元组时,SPARQL 查询会按预期返回。
我已经设法确定这是bound(?registeredRestaurant)
问题所在,方法是用true
and替换它,false
然后分别?mainRestaurant
用?registeredRestaurant
or填充?normalRestaurant
。
我误解了 的用途bound()
吗?如果是这样,是否有一个功能可以满足我想要做的事情?
解决方案
推荐阅读
- r - 删除堆积条形图中的空条
- ios - 如何在 swift 中使用滑块向 UIImageView 显示多个图像 url 字符串
- python - Mac OS X预装的python2.7中这三个“python”有什么区别?
- laravel - Laravel 从关系中过滤数据
- r - 更改列名时出错,名称的属性 [1] 必须与向量 [0] 的长度相同
- python - Python venv 文件夹究竟是如何工作的?我的项目使用依赖于这个 venv 文件夹使用不同的 Python 版本执行项目?
- mysql - 如何根据另一列中的 IF 参数从 SQL 中的一列创建两列
- javascript - 如何从也具有非数组元素的数组中删除数组元素
- aem - 是否可以通过 QueryBuilder API 根据尺寸搜索图像的再现
- shell - 将表格文件转换为 HTML 表格