2014-10-29 2 views
2

Мне нужно получить список «токенов», которые семантически связаны с определенным запросом: поле «dcterms: subject» страницы DBpedia будет идеально (см., Например, http://dbpedia.org/page/Michelle_Obama). Я могу правильно получить URL-адрес dbpedia, связанный с моим запросом, используя запрос отправки CURL-http. Этот запросDBpedia Spotlight: получить связанный контент

"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, чтобы получить все содержимое HTML страницы DBpedia и затем найдите то, что мне нужно (абзац «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 
}