2014-10-29 53 views
2

我需要获取与特定查询语义相关的“标记”列表:DBpedia页面的字段“dcterms:subject”将是完美的(请参阅http://dbpedia.org/page/Michelle_Obama)。 我可以使用CURL http post请求正确获取与我的查询相关的dbpedia URL。 该查询DBpedia特别推荐:获取相关内容

"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

如果你想DCTERMS:主题个DBpedia中的资源,你可以简单地问它有一个SPARQL查询:

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

SPARQL results

您可以在DBpedia SPARQL endpoint运行查询,并且弄清楚如何构建相应的查询URL并不难。也有一些不同的结果格式,所以你可以尝试一下最适合你的方式。

如果按标记表示这些类别的名称,那么您也可以直接要求。以下应该可以工作,但目前我无法测试它; DBpedia似乎倒闭了。

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