SPARQL 如何从 xsd:date 获取整数年份

Nic*_* Li 5 rdf sparql

我有一个 SPARQL 查询,它选择出生年份为 1990 的人。我如何从 xsd:date 格式中仅获取年份?我可以看到如何使用year()从xsd:dateTime获取年份,但它在xsd:date上不起作用。

PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?birthYear
WHERE
{dbr:Ilse_DeLange dbo:birthDate ?birth
 #how to get year only as a integer?}
Run Code Online (Sandbox Code Playgroud)

AKS*_*KSW 3

根据规范,仅year()适用于xsd:dateTime文字。

根据三重存储,您可能会尝试转换为xsd:dateTime第一个:

PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT (year(xsd:dateTime(?birthDate)) as ?birthYear) WHERE {
  dbr:Ilse_DeLange dbo:birthDate ?birthDate
}
Run Code Online (Sandbox Code Playgroud)