DBpedia Spotlight: получить связанный контент

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

"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"), но я думаю, что есть более эффективный способ сделать это, может быть, прямо из центра внимания. Как я могу настроить свой запрос, чтобы получить этот список (или что-то похожее) только с одним постом? Мне даже не нужны ссылки, просто список токенов.

1 ответ

Решение

Если вам нужен dcterms:subject для ресурса DBpedia, вы можете просто запросить его с помощью запроса SPARQL:

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

Результаты SPARQL

Вы можете выполнить этот запрос в конечной точке DBpedia SPARQL, и нетрудно понять, как можно создать соответствующий URL-адрес запроса. Есть также несколько разных форматов результатов, так что вы можете поэкспериментировать с тем, что лучше всего подходит для вас.

Если под токенами вы просто подразумеваете названия этих категорий, то вы можете запросить и об этом напрямую. Следующее должно работать, но я не могу проверить это в настоящее время; DBpedia, кажется, не работает.

select ?subject {
  dbpedia:Michelle_Obama dcterms:subject/rdfs:label ?subject
}
Другие вопросы по тегам