2014-10-29 51 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 
}