繁体   English   中英

来自 OWL 文件的 SPARQL 查询中的条件错误

[英]Condition error in SPARQL query from OWL file

在 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 文档是一个很好的资源,可以了解您可以使用哪些类型的过滤器表达式,以及如何处理不同的值数据类型(字符串、整数、日期等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM