【发布时间】:2021-04-28 17:42:52
【问题描述】:
我正在尝试使用我的 sparql 查询获取给定电影标题的演员姓名(我也有发布日期),但考虑到多部电影具有相同名称的情况,我试图将它们区分为发布日期。有些电影没有指定上映日期,有些电影没有指定标签。
我试图在指定发行日期并且匹配时获得结果,或者当它在电影的标签中并且也匹配时。 如果我无法将日期与这些属性之一匹配,我不希望返回任何结果
这是我当前的查询:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?film ?aname
WHERE {
?film a dbo:Film ;
foaf:name "A Nightmare on Elm Street"@en ;
dbo:starring ?a .
?a foaf:name ?aname
OPTIONAL
{ ?film dbo:releaseDate ?rd
BIND(year(xsd:date(?rd)) AS ?rrd)
FILTER ( ( ?rd = "1984-04-30"^^xsd:date ) || ( ?rrd = 1984) )
}
OPTIONAL
{ ?film rdfs:label ?lab
FILTER regex(?lab, "1984", "i")
FILTER ( lang(?lab) = "en" )
}
}
【问题讨论】:
标签: sparql