2

我需要获取与某个查询在语义上相关的“令牌”列表:DBpedia 页面的“dcterms:subject”字段将是完美的(例如参见http://dbpedia.org/page/Michelle_Obama)。我可以使用 CURL http post 请求正确获取与我的查询相关的 dbpedia URL。这个查询

"text=Michelle%20Obama.&confidence=0.2&support=20";

返回此对象:

{ "@text": "Michelle Obama.", "@confidence": "0.2", "@support": "20", "@types": "", "@sparql": "", "@policy": "whitelist", "Resources": [ { "@URI": "http://dbpedia.org/resource/Michelle_Obama", "@support": "321", "@types": "DBpedia:OfficeHolder,DBpedia:Person,Schema:Person,Freebase:/award/ranked_item,Freebase:/award,Freebase:/organization/organization_member,Freebase:/organization,Freebase:/book/book_subject,Freebase:/book,Freebase:/celebrities/celebrity,Freebase:/celebrities,Freebase:/people/person,Freebase:/people,Freebase:/tv/tv_actor,Freebase:/tv,Freebase:/education/honorary_degree_recipient,Freebase:/education", "@surfaceForm": "Michelle Obama", "@offset": "0", "@similarityScore": "0.20646192133426666", "@percentageOfSecondRank": "-1.0" }] }

目前,我仅使用此对象获取 URL,并使用 URL 获取 DBpedia 页面的整个 html 内容,然后查找我需要的内容(“dcterms:subject”段落),但我认为有一个更有效的方法来做到这一点,也许直接来自聚光灯。如何调整我的查询以获取该列表(或类似的东西),只关注一个帖子?我什至不需要链接,只需要一个令牌列表。

4

1 回答 1

4

如果你想要一个 DBpedia 资源的dcterms:subject,你可以简单地用一个 SPARQL 查询来请求它:

select ?subject { dbpedia:Michelle_Obama dcterms:subject ?subject }

SPARQL 结果

您可以在DBpedia SPARQL 端点上运行该查询,并且不难弄清楚如何构造相应的查询 URL。也有一些不同的结果格式,因此您可以尝试最适合您的结果格式。

如果令牌只是指这些类别的名称,那么您也可以直接询问。以下应该可以工作,但我目前无法测试;DBpedia 似乎已关闭。

select ?subject {
  dbpedia:Michelle_Obama dcterms:subject/rdfs:label ?subject
}
于 2014-10-30T12:44:38.370 回答