2012-03-08 3 views
3

저는 opendata에 새로운 기능이있어서 도움이 필요합니다. 위키 피 디아는이 URL에 sparql 끝 점이 있습니다. http://dbpedia.org/sparql 이제 dbpedia에서 일부 rdf 파일을 가져 오기 위해 webservice를 작성해야합니다. rdf 파일을 얻으려면이 끝점으로 무엇을 보내야합니까? thx forsparql endpoin에서 rdf 파일을 얻는 방법

답변

9

CONSTRUCT 쿼리를 보냅니다. 작은 예제 :

WHERE 절은 SELECT와 마찬가지로 작동하며 값만 CONSTRUCT 블록을 일종의 템플릿으로 채 웁니다. 매우 융통성이 있습니다. 여기에서 문장을 복사하거나 완전히 다른 모양으로 변형 할 수 있습니다.

+0

hmxx 많이 무엇입니까? s? p 및? o 의미? – hudi

+0

dbpedia에서 모든 rdf 파일을 반환하는 sparql을 작성할 수 있습니까? berlin에 대한 언급이 있습니까? – hudi

+2

@hudi 그것은 SPARQL에서 시작한 것 같습니다. http://www.cambridgesemantics.com/2008/09/sparql-by-example/과 같은 인기있는 튜토리얼을 읽으려고 시도한 적이 있습니까? ? – RobV

2

Bob DuCharme의 "Learning SPARQL" 책을 읽어 보시기를 권합니다. DBPedia 엔드 포인트를 사용하는 몇 가지 예제를 다룹니다.

추 신 : 그것은 위키 피 디아의 SPARQL 엔드 포인트가 아닙니다. DBPedia SPARQL 엔드 포인트입니다 (위키 백과 자체는 SPARQL 엔드 포인트 ATM을 제공하지 않습니다). 그러나 DBPedia 데이터는 위키 백과 데이터를 사용합니다.)

+0

예 – hudi

4

Danny가 올바른 대답은 무엇이라고 대답 했습니까? 그러나 결과를 얻을 것으로 예상되는 시간 때문에 외부 서비스에 대한 이러한 쿼리를 수행하지 않는 것이 좋습니다. 구체적인 자원을 통해 그것을 할

그러나

수동으로 코드의 모습 예를 들어 파이썬, 쿼리 결과를 저장 당신이 필요없이 직접 수행하려는 경우 물론 :

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() 

의 물론, 이것은 거의 모든 프로그래밍 언어로 할 수 있습니다.

+0

어떤 SPARQL 1.1 호환 구현도 [DESCRIBE] (https :// /www.w3.org/TR/sparql11-query/#describe) 질의 :'DESCRIBE '. – wikier

+0

내가 로컬로 rdf 저장에 대한 한 가지 질문을 할 수 있습니까 ??? 내가 사용하는 results.serialize (destination = path, format = "xml") ,,,, 및 file = open (....... "w") ....... 파일을 사용하는 다른 점은 무엇입니까? .close() ... 당신의 대답은 제가 문제를 해결하는 데 도움이됩니다. 하지만 그 차이점을 알고 싶습니다. – bob90937