python - 从 DBpedia 中提取信息

标签 python sparql semantic-web dbpedia

我正在做一个项目,我想使用 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

关于python - 从 DBpedia 中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877222/

相关文章:

python - 如何从html页面中提取文本?

rdf - 空白节点可以有 rdf :type property?

api - SPARQL 获取多个子项

rdf - 使用 SPARQL 获取个人的类别

sparql - 维基数据 SPARQL - 国家及其(仍然存在的)邻居

sparql - 命名图和联合 SPARQL 端点

java - ShEx 验证 - 结果形状图中的 Reason 和 appInfo 为空

python - pandas.value_counts 不适用

python - 为什么 df.head() 在 python 中不起作用

Python:Numba 存在线程层解析问题