Skip to main content
 首页 » 编程设计

python之从 DBpedia 中提取信息

2025年05月04日19wuhuacong

我正在做一个项目,我想使用 DBpedia。我有几百个 DBpedia 链接,例如

什么是更好地利用时间:

  • 抓取这些页面并提取我需要的信息?
  • 从 Python 使用 SPARQL 查询来查询数据?

请您参考如下方法:

首先,请注意标识 DBpedia 资源的 URI 不是

有页面,但是

使用资源。其次,使用 SPARQL 检索信息的速度将多。 SPARQL 是一种用于 RDF 的查询语言,您正在寻找获取 RDF 数据的方法。要获取有关 FEMA 的信息,您在 SPARQL 中需要做的就是描述查询:

describe 
  dbpedia:Federal_Emergency_Management_Agency 

SPARQL results

描述查询可以描述多个资源,所以你可以这样做,例如:

describe 
  dbpedia:Federal_Emergency_Management_Agency 
  dbpedia:Mount_Monadnock 
  # more resources... 

SPARQL results

如果您只需要有关某些资源的某些信息,您仍然可以使用 values 并以编程方式注入(inject)您感兴趣的资源,通过选择或构造查询来执行类似的操作:

select ?label where {  
  values ?resource { 
    dbpedia:Federal_Emergency_Management_Agency # put your values in here and 
    dbpedia:Mount_Monadnock                     # ?resource will be bound to each 
  } 
  ?resource rdfs:label ?label . 
  filter( langMatches( lang(?label), "EN" )) 
} 

SPARQL results

您还可以使用结构在模型中获取这些三元组:

construct { 
  ?resource rdfs:label ?label  
} 
where {  
  values ?resource { 
    dbpedia:Federal_Emergency_Management_Agency 
    dbpedia:Mount_Monadnock 
  } 
  ?resource rdfs:label ?label . 
  filter( langMatches( lang(?label), "EN" )) 
} 

SPARQL results