我想从DBPedia中提取5个电影(或电影)个人的图表。
我的问题是:
ParameterizedSparqlString qs =新ParameterizedSparqlString( "“+)
_"construct{?s ?p ?o}"+ "where{?s a_ [_http://dbpedia.org/ontology/Film_](http://dbpedia.org/ontology/Film) _."+ "?s ?p ?o"} OFFSET 0 LIMIT 5" );_
我得到以下结果:
1- Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Film .
2- Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Thing .
3- Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.wikidata.org/entity/Q386724 .
4- Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Wikidata:Q11424 .
5- Al-Haytham http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Work .
问题:同一影片被返回5倍于所有类:电影,事物,Q386724,维基数据:Q 11424,和工作是等价类(或子类关系存在)。
我的问题是:
我想要返回一次三倍
<http://dbpedia.org/resource/1001_Inventions_and_the_World_of_Ibn_Al-Haytham>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://dbpedia.org/ontology/Film> .
过滤掉剩下的四个三倍。
请怎么做?
提前谢谢你
发布于 2016-07-07 08:09:27
我想你想要这个查询
construct {?s a <http://dbpedia.org/ontology/Film> .}
where { ?s a <http://dbpedia.org/ontology/Film>. }
limit 5
发布于 2016-07-07 15:25:17
我认为以下几点应该适用于你:
CONSTRUCT {?s ?p ?o}
WHERE {
{ SELECT DISTINCT ?s
WHERE {
?s a <http://dbpedia.org/ontology/Film> .
} LIMIT 5
}
?s ?p ?o .
}
https://stackoverflow.com/questions/38249616
复制相似问题