Filter SPARQL-如何将文字转换为整数,以便筛选查询结果?

Filter SPARQL-如何将文字转换为整数,以便筛选查询结果?,filter,sparql,rdf,Filter,Sparql,Rdf,我制作了关于金正恩的第一份RDF海龟档案。我想过滤我的查询结果,以便只显示1984年之前出生的兄弟姐妹,但我遇到了问题,因为这些出生年份显示为文字。有人知道我怎么解决这个问题吗 海龟数据 前缀删除,因为我需要更多的信誉点的链接 dbp:Kim_Jong-un dbp-ont:sibling wiki-en:Kim_Yo-jong. wiki-en:Kim_Yo-jong dbp-ont:birthYear "1987^^xsd:gYear"; foaf:name "Kim Yo-j

我制作了关于金正恩的第一份RDF海龟档案。我想过滤我的查询结果,以便只显示1984年之前出生的兄弟姐妹,但我遇到了问题,因为这些出生年份显示为文字。有人知道我怎么解决这个问题吗

海龟数据

前缀删除,因为我需要更多的信誉点的链接

dbp:Kim_Jong-un dbp-ont:sibling wiki-en:Kim_Yo-jong.
wiki-en:Kim_Yo-jong dbp-ont:birthYear        "1987^^xsd:gYear";
foaf:name "Kim Yo-jong";
foaf:gender "female".
SPARQL查询

两种选择:

将文本的词法形式与字符串STR?birthYear<1984给出的值进行比较这将禁用数据类型语义的比较

使用XPath构造函数获取给定字符串值的文本?birthYear 不要忘记使用&&组合过滤器中的多个表达式

SELECT *
    WHERE {

    dbp:Kim_Jong-un dbp-ont:sibling ?sibling.
    ?sibling foaf:gender ?gender.
    ?sibling foaf:name ?name.
    ?sibling dbp-ont:birthYear ?birthYear.
    FILTER (?gender="male", ?birthYear<"1984")

}