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

问题描述 投票:0回答:1

在sparql查询中,我想列出35岁以上的人。但出现以下错误。这是什么原因?

(即使执行[?yas > 35,结果也不会改变。我仍然会收到错误。)

QUERY:

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 owl semantic-web
1个回答
1
投票

要将这些布尔条件放入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 doc是阅读有关可以使用哪种filter expression以及如何使用不同的值数据类型(字符串,整数,日期等)的好资源。

© www.soinside.com 2019 - 2024. All rights reserved.