Sparql 我无法在斯巴达克获得这部电影的主演资格 前缀xsd: 前缀db: 前缀道具: 选择?movieLink?标题?主演?发行日期 在哪里{ ?movieLink rdf:db型:胶片; 姓名?头衔。 可选{?movieLink道具:流派?genreLink。 ?genreLink rdfs:标签?类型。 过滤器(lang(?genre)='en')}。 可选{?movieLink?releaseDate}。 可选{?星号?发布日期}。 过滤器(lang(?title)=“en”) 过滤器((?发布日期>='2016-01-01'^^xsd:date)和(?发布日期

Sparql 我无法在斯巴达克获得这部电影的主演资格 前缀xsd: 前缀db: 前缀道具: 选择?movieLink?标题?主演?发行日期 在哪里{ ?movieLink rdf:db型:胶片; 姓名?头衔。 可选{?movieLink道具:流派?genreLink。 ?genreLink rdfs:标签?类型。 过滤器(lang(?genre)='en')}。 可选{?movieLink?releaseDate}。 可选{?星号?发布日期}。 过滤器(lang(?title)=“en”) 过滤器((?发布日期>='2016-01-01'^^xsd:date)和(?发布日期,sparql,dbpedia,querying,Sparql,Dbpedia,Querying,我无法获得每部电影的主演名单。 有没有一种方法可以将正则表达式用于过滤器。为什么要将电影的主演与电影的发行日期联系起来?没有道理,对吧?DBpedia中的连接是从电影到主演,因此,它应该是可选的{?movieLink?starring}@AKSW是的,我同意我将其更改为可选的{?starring?starring}。但我并没有得到这部电影的所有主演。我想得到这部电影的所有主演嗯,什么?我不明白你在做什么。。。为什么OPTIONAL{?starring?starring}现在?我给你展示了正确的模

我无法获得每部电影的主演名单。
有没有一种方法可以将正则表达式用于过滤器。

为什么要将电影的主演与电影的发行日期联系起来?没有道理,对吧?DBpedia中的连接是从电影到主演,因此,它应该是
可选的{?movieLink?starring}
@AKSW是的,我同意我将其更改为可选的{?starring?starring}。但我并没有得到这部电影的所有主演。我想得到这部电影的所有主演嗯,什么?我不明白你在做什么。。。为什么
OPTIONAL{?starring?starring}
现在?我给你展示了正确的模式,但你现在把明星和明星联系起来,没有意义,对吧。。。你必须把电影和主演联系起来。。。为什么不从我之前的评论中复制
可选的
模式?这应该行得通。而且有
限制15
确实可能不会显示一部电影的所有明星,特别是因为DBpedia endpoint每次请求仅显示10000行。谢谢,我找到了解决方案,解决方案是什么?
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX db: <http://dbpedia.org/ontology/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?movieLink ?title ?starring ?releaseDate
WHERE {
    ?movieLink rdf:type db:Film;
               foaf:name ?title.
    OPTIONAL { ?movieLink prop:genre ?genreLink.
               ?genreLink rdfs:label ?genre.
               FILTER(lang(?genre) = 'en') }.
    OPTIONAL{ ?movieLink <http://dbpedia.org/ontology/releaseDate> ?releaseDate }.
    OPTIONAL{?starring <http://dbpedia.org/ontology/starring> ?releaseDate}.

    FILTER(lang(?title) = 'en')
    FILTER((?releaseDate >= '2016-01-01'^^xsd:date) && (?releaseDate < '2016-12-31'^^xsd:date))
}
ORDER BY DESC(?releaseDate)
LIMIT(15)