sparql - 来自 OWL 文件的 SPARQL 查询中的条件错误
问题描述
在 sparql 查询中,我想列出 35 岁以上的人。但我收到以下错误。原因是什么?
(即使我这样做,结果也不会改变?yas > 35
。我仍然得到错误。)
询问:
PREFIX uni:<http://muratkilinc.com/~ontologies/izmir.owl#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX un: <http://www.w3.org/2007/ont/unit#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?adi ?soyadi ?yas
WHERE
{
?turistler uni:yas ?yas > "35" .
?turistler uni:yas ?yas.
?turistler uni:adi ?adi.
?turistler uni:soyadi ?soyadi.
}
错误:
Error 400: Parse error:
Encountered " ">" "> "" at line 9, column 33.
Was expecting one of:
"values" ...
"graph" ...
"optional" ...
"minus" ...
"bind" ...
"service" ...
"let" ...
"exists" ...
"not" ...
"filter" ...
"{" ...
"}" ...
";" ...
"," ...
"." ...
解决方案
要将这些布尔条件放入 SPARQL 查询中,您必须使用FILTER
约束。像这样:
PREFIX uni:<http://muratkilinc.com/~ontologies/izmir.owl#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX un: <http://www.w3.org/2007/ont/unit#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?adi ?soyadi ?yas
WHERE
{
?turistler uni:yas .
?turistler uni:yas ?yas.
?turistler uni:adi ?adi.
?turistler uni:soyadi ?soyadi.
FILTER(?yas > 35)
}
SPARQL W3C 文档是一个很好的资源,可以帮助您了解可以使用哪些类型的过滤器表达式,以及如何使用不同的值数据类型(字符串、整数、日期等)。
推荐阅读
- python - sklearn 中的 RFECV,来自 grid_scores_ 的分数
- python - 找到没有漂亮汤的 html 正文?
- react-native - 每当在 Wix Navigation v2 中更改选项卡时触发功能/事件
- dafny - 堆上的 Dafny 迭代器无法确保 Valid()
- java - 将 XMLGregorianCalendar 转换为 LocalDateTime 时出现奇怪的结果
- python-3.x - 如何使用 matplotlib 在多轴图中突出显示选定的线
- javascript - Javascript 将键值字符串解析为 JSON
- git - 使用 ADO Repos 有哪些不同的方法?有可用的图形用户界面吗?
- node.js - 如何将 QuickReport .QRP 文件转换为 XML、HTML 或文本?
- java - 刷新底部导航栏组件