【问题标题】:Best way to filter DBpedia results and return a specific results using SPARQL使用 SPARQL 过滤 DBpedia 结果并返回特定结果的最佳方法
【发布时间】:2019-08-16 16:48:59
【问题描述】:

我有个小问题……

从维基百科页面 ID 的列表中,我想返回:

  • pageid
  • 摘要(英文)
  • 缩略图
  • 类型

仅适用于公司或大学页面

我有这个简单的 SPARQL 查询:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
select ?pageid ?abstract ?thumbnail  ?company ?type 
where {
    ?resource dbpedia-owl:wikiPageID ?pageid;
    dbpedia-owl:abstract ?abstract 
. OPTIONAL { 
    ?resource dbpedia-owl:thumbnail ?thumbnail
     } 
 . OPTIONAL { 
    ?resource  dbpedia-owl:type ?type
    } 
. OPTIONAL { 
    ?resource ?company dbpedia-owl:Company 
    }

FILTER( 
?pageid = 14617 || ?pageid = 26989 || ?pageid = 31776 || 
?pageid = 256913 || ?pageid = 342924 || ?pageid = 1785141 || 
?pageid = 3057187 || ?pageid = 7529378 || ?pageid = 18978754 
)
FILTER(langMatches(lang(?abstract),"en"))
}

我有这个结果:SPARQL Result

我设法返回了我想要的数据,但我不能只过滤那些公司和大学。

是否有关于如何删除 dbpedia 查询结果中不是公司或大学的页面的任何想法?

【问题讨论】:

  • 这样做的目的是什么:OPTIONAL { ?resource ?company dbpedia-owl:Company }
  • PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; PREFIX dbo: &lt;http://dbpedia.org/ontology/&gt; SELECT ?pageid ?abstract ?thumbnail ?type where { VALUES ?type {dbo:Company dbo:University} VALUES ?pageid {14617 26989 31776 256913 342924 1785141 3057187 7529378 18978754 } ?resource dbo:wikiPageID ?pageid; rdf:type ?type; dbo:abstract ?abstract . OPTIONAL { ?resource dbo:thumbnail ?thumbnail} FILTER(langMatches(lang(?abstract),"en")) }

标签: sparql rdf dbpedia virtuoso


【解决方案1】:

@AKSW 提供了一个查询,可以满足您的需求,但我认为最好能更详细地解释原因。所以,这里是那个查询,有一堆空格和一些内联 cmets 来帮助澄清 --

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dbo: <http://dbpedia.org/ontology/> 

SELECT ?pageid ?abstract ?thumbnail ?type 
WHERE
  { 

  # the next couple lines limit rdf:type values
    VALUES ?type
           { dbo:Company dbo:University } 

  # the next few lines limit dbo:wikiPageID values
    VALUES ?pageid 
           {   14617     26989      31776
              256913    342924    1785141
             3057187   7529378   18978754 } 

  # the next few lines get values for the 3 predicates 
  # you required for each subject
               ?resource  dbo:wikiPageID  ?pageid ; 
                          rdf:type        ?type ; 
                          dbo:abstract    ?abstract . 

  # the next line gets thumbnails, if they exist
    OPTIONAL { ?resource  dbo:thumbnail   ?thumbnail } 

  # the next line limits the solutions you receive to those 
  # with an abstract langtagged as "en"
    FILTER ( langMatches ( lang ( ?abstract ), "en" ) ) 

  }

【讨论】:

    猜你喜欢
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多