首页 文章

SPARQL:从dbpedia中提取不同的值

提问于
浏览
1

我想从DBPedia中提取5个电影(或电影)的人物 .

我的查询是:

ParameterizedSparqlString qs = new ParameterizedSparqlString(“”
"construct{?s ?p ?o}"“其中{?s a http://dbpedia.org/ontology/Film . "+ "?s?p?o "} OFFSET 0 LIMIT 5");

我得到以下结果:

1- 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 .

2- 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://www.w3.org/2002/07/owl#Thing .

3- 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://www.wikidata.org/entity/Q386724 .

4- 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/Wikidata:Q11424 .

5- 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/Work .

问题:同一部电影的所有类别都返回5次:Film,Thing,Q386724,WIKIdata:Q11424,而Work是等效的类(或存在子类关系) .

我的问题:

我希望三重回归

<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> .

并过滤掉其他4个三元组 .

怎么样?

先感谢您

2 回答

  • 4

    我认为以下内容适合您:

    CONSTRUCT {?s ?p ?o}
    WHERE {
      {  SELECT DISTINCT ?s
         WHERE {
            ?s a <http://dbpedia.org/ontology/Film> .
         } LIMIT 5
      }
      ?s ?p ?o .
    }
    
  • 1

    我想你想要这个查询

    construct {?s a <http://dbpedia.org/ontology/Film> .}
    where { ?s a <http://dbpedia.org/ontology/Film>. }
    limit 5
    

相关问题