Как получить rdf-файл из конечной точки sparql - PullRequest
4 голосов
/ 09 марта 2012

Я новичок в opendata и мне нужна помощь. Википедия имеет свою конечную точку sparql в этом URL: http://dbpedia.org/sparql Теперь мне нужно написать веб-сервис, чтобы получить rdf-файл из dbpedia. Что я должен отправить этой конечной точке, чтобы получить файл rdf?

Ответы [ 3 ]

9 голосов
/ 09 марта 2012

Отправьте запрос CONSTRUCT . Небольшой пример:

CONSTRUCT { ?s ?p ?o }
WHERE { ?s ?p ?o }
LIMIT 10

Предложение WHERE работает так же, как и в SELECT, только значения заполняют блок CONSTRUCT как своего рода шаблон. Он очень гибкий - вы можете либо скопировать операторы здесь, либо преобразовать их в совершенно другую форму.

4 голосов
/ 17 июля 2012

То, что ответил Дэнни, является правильным общим ответом. Но я бы не советовал вам выполнять такой запрос над внешними сервисами, поскольку ожидается ожидаемый результат; сделай это над конкретным ресурсом

Но, конечно, если вы хотите сделать это напрямую, без необходимости вручную сохранять результаты запроса, например, для Python код будет выглядеть так:

from SPARQLWrapper import SPARQLWrapper, XML

uri = "http://dbpedia.org/resource/Asturias"
query = "CONSTRUCT { <%s> ?p ?o } WHERE { <%s> ?p ?o }" % (uri, uri)

sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery(query)
sparql.setReturnFormat(XML)
results = sparql.query().convert()

file = open("output.rdf", "w")
results.serialize(destination=file, format="xml")
file.flush()
file.close()

Конечно, это можно сделать практически с любым языком программирования, как вы предпочитаете.

2 голосов
/ 09 марта 2012

Я бы порекомендовал вам прочитать книгу Боба Дюшарма "Learning SPARQL" . Он охватывает некоторые примеры, которые также используют конечную точку DBPedia.

PS: Это не конечная точка SPARQL Википедии - это конечная точка DBPedia SPARQL (сама Википедия не имеет собственной конечной точки SPARQL ATM). Тем не менее, данные DBPedia опираются на данные Википедии;)

...