DBpedia Spotlight:获取相关内容

时间:2014-10-29 22:23:06

标签: sparql semantic-web dbpedia spotlight-dbpedia

我需要获得与某个查询在语义上相关的“标记”列表: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”段落),但我认为有一种更有效的方法可以做到这一点,也许直接来自聚光灯。我如何调整我的查询以获得该列表(或类似的东西)只有一个帖子聚焦?我甚至不需要链接,只需要一个令牌列表。

1 个答案:

答案 0 :(得分:4)

如果您想要DBpedia资源的 dcterms:subject ,您可以使用SPARQL查询来询问它:

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

SPARQL results

您可以在DBpedia SPARQL endpoint上运行该查询,但要弄清楚如何构建相应的查询网址并不难。还有一些不同的结果格式,因此您可以尝试最适合您的结果。

如果通过令牌你只是指这些类别的名称,那么你也可以直接提出要求。以下应该有效,但我现在无法测试; DBpedia似乎失败了。

select ?subject {
  dbpedia:Michelle_Obama dcterms:subject/rdfs:label ?subject
}