如何使用regex在sparql中过滤日期以获取电影发行日期 前缀xsd: 前缀db: 前缀道具: 选择?发布日期 在哪里{ ?胶片rdf:db型:胶片; 姓名?头衔。 ?胶片dbp:发布日期?发布日期。 过滤器正则表达式(?releaseDate,“2016”,“i”)。 }

如何使用regex在sparql中过滤日期以获取电影发行日期 前缀xsd: 前缀db: 前缀道具: 选择?发布日期 在哪里{ ?胶片rdf:db型:胶片; 姓名?头衔。 ?胶片dbp:发布日期?发布日期。 过滤器正则表达式(?releaseDate,“2016”,“i”)。 },sparql,dbpedia,querying,Sparql,Dbpedia,Querying,获取发布日期,但只有两个我不确定是否要查询。因为我不熟悉这一点。我发现很难确切地理解您想做什么。你能用一个例子和预期的结果来扩展你的问题吗?这个查询和结果都是正确的。没有更多的数据匹配查询,仅此而已。在上一个问题中,您使用了http://dbpedia.org/ontology/releaseDate,无论您出于何种原因决定使用http://dbpedia.org/property/releaseDate这会减少数据量。正确的筛选器必须首先将文本转换为字符串,即筛选器正则表达式(str(?rel

获取发布日期,但只有两个我不确定是否要查询。因为我不熟悉这一点。

我发现很难确切地理解您想做什么。你能用一个例子和预期的结果来扩展你的问题吗?这个查询和结果都是正确的。没有更多的数据匹配查询,仅此而已。在上一个问题中,您使用了
http://dbpedia.org/ontology/releaseDate
,无论您出于何种原因决定使用
http://dbpedia.org/property/releaseDate
这会减少数据量。正确的筛选器必须首先将文本转换为字符串,即
筛选器正则表达式(str(?releaseDate),“2016”,“i”).
然后使用
http://dbpedia.org/ontology/releaseDate
。查询必须是
SELECT?releaseDate WHERE{film rdf:type db:film;foaf:name?title.?film db:releaseDate?releaseDate.FILTER regex(str(?releaseDate),“2016”,“i”)
使用日期操作而不是regex的更好查询:
SELECT?releaseDate WHERE{?film rdf:type db:film;foaf:name?title。?film db:releaseDate?releaseDate.FILTER(year(?releaseDate)=2016)}
@AKSW非常感谢您的帮助。它工作起来很有魅力
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX db: <http://dbpedia.org/ontology/>
PREFIX prop: <http://dbpedia.org/property/>

SELECT ?releaseDate
WHERE {
   ?film rdf:type db:Film;
   foaf:name ?title.
   ?film  dbp:releaseDate ?releaseDate.     
   FILTER regex(?releaseDate, "2016", "i").
}