如何在 DBPEDIA 中使用 SPARQL 获取基于英文小说的电影
How to get the movies which are based on english novels using SPARQL in DBPEDIA
我正在使用 SPARQL 尝试获取所有英文小说及其属性的列表。
我还想查一部电影是否是根据该小说拍摄的,并获取电影名称和导演,如果存在电影关系。
代码:
SELECT ?movie ?director ?book ?author ?publisher ?illustrator
WHERE {
?movie dcterms:subject <http://dbpedia.org/resource/Category:films> ;
dbpedia-owl:basedOn ?book .
?movie dbp:director ?director .
?book a dbpedia-owl:Book .
?book dbp:author ?author .
?book dbp:publisher ?publisher .
?book dbp:illustrator ?illustrator .
}
limit 200
如果您像这样修改查询,您可以获得很多正确的结果...
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?book ?author ?movie ?director ?publisher ?illustrator
WHERE {
?book a dbpedia-owl:Book .
OPTIONAL {?book dbp:author ?author .}
OPTIONAL {?book dbp:publisher ?publisher .}
OPTIONAL {?book dbp:illustrator ?illustrator .}
OPTIONAL {?book ^dbpedia-owl:basedOn ?movie . ?movie a dbpedia-owl:Film }
OPTIONAL {?movie dbp:director ?director .}
}
LIMIT 200
...但请记住,有许多电影未归类为 dbpedia-owl:Film
。那当然你做一个union
其他一些流行的分类,但那仍然不能保证不会有电影根据书,这不会被省略。
顺便问一下,你怎么称呼 "English novels" -- 那些最初是用英文写的还是英文作者写的?
我正在使用 SPARQL 尝试获取所有英文小说及其属性的列表。
我还想查一部电影是否是根据该小说拍摄的,并获取电影名称和导演,如果存在电影关系。
代码:
SELECT ?movie ?director ?book ?author ?publisher ?illustrator
WHERE {
?movie dcterms:subject <http://dbpedia.org/resource/Category:films> ;
dbpedia-owl:basedOn ?book .
?movie dbp:director ?director .
?book a dbpedia-owl:Book .
?book dbp:author ?author .
?book dbp:publisher ?publisher .
?book dbp:illustrator ?illustrator .
}
limit 200
如果您像这样修改查询,您可以获得很多正确的结果...
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?book ?author ?movie ?director ?publisher ?illustrator
WHERE {
?book a dbpedia-owl:Book .
OPTIONAL {?book dbp:author ?author .}
OPTIONAL {?book dbp:publisher ?publisher .}
OPTIONAL {?book dbp:illustrator ?illustrator .}
OPTIONAL {?book ^dbpedia-owl:basedOn ?movie . ?movie a dbpedia-owl:Film }
OPTIONAL {?movie dbp:director ?director .}
}
LIMIT 200
...但请记住,有许多电影未归类为 dbpedia-owl:Film
。那当然你做一个union
其他一些流行的分类,但那仍然不能保证不会有电影根据书,这不会被省略。
顺便问一下,你怎么称呼 "English novels" -- 那些最初是用英文写的还是英文作者写的?