나는 DBPEDIA와 WIKIDATA 사이의 액터 목록과 일치하는 파이썬 코드를 작성하고 있습니다. 먼저 생년월일, SPARQL을 사용하는 Dbpedia의 출생지 및 Dbpedia에서 검색 한 배우 목록을 사용하여 배우 목록을 가져옵니다.받은 상장과 같은 추가 정보를 검색하려고합니다. . 내 파이썬 코드가 오류를 던지고있다.SPARQL이 작동하지 않는 파이썬 코드
-3
A
답변
0
쿼리의 dbpedia 부분이 wikidata에서 시간 초과되는 것을 직감했습니다. 페더레이션 바인딩을 건너 뛰고 한도를 추가하면 쿼리가 완료되지만 몇 초가 걸립니다. 상에 대해서 트리플 코멘트를 해제하면 타임 아웃됩니다.
SPARQL에 문제가 있으므로 지금은 파이썬 처리를 무시할 것입니다.
# missing prefixes
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE {
SERVICE <http://dbpedia.org/sparql> {
?c rdf:type <http://umbel.org/umbel/rc/Actor> ;
rdfs:label ?Actor
FILTER (lang(?Actor) = "en")
?c dbo:deathDate ?Death_date ;
dbo:birthPlace ?b
# date filterning not working... add cast
FILTER (xsd:date(?Death_date) >= "1990 - 01 - 01"^^xsd:date)
?b rdfs:label ?birth_Place
FILTER (lang(?birth_Place) = "en")
?Starring rdf:type dbo:Film ;
dbo:starring ?c .
?c dbo:deathCause ?d .
?d dbp:name ?Cause_Of_Death .
?c owl:sameAs ?wikidata_actor
FILTER strstarts(str(?wikidata_actor), "http://www.wikidata.org")
}
# ?wikidata_actor wdt:P166 ?award_received.
}
LIMIT 9
모든 SPARQL 엔드 포인트는 자신의 독특한 개성을 가지고 그 독립
, 나는 두 개의 결함을 발견했다. 따라서 필자의 의견으로는 (service
키워드를 사용하고 둘 이상의 끝점에 충돌하는) 연합 쿼리는 특히 까다로운 작업 일 수 있습니다. 페더레이션을 처음 사용하는 경우 관련없는 쿼리가 있습니다.
'darwilliamstour'라는 이름으로 트윗을 작성하는 엔티티가 있습니다. 엔티티의 이름은 무엇입니까?
select *
where
{
?twitterer wdt:P2002 'darwilliamstour' .
service <http://dbpedia.org/sparql>
{
?twitterer rdfs:label ?name
}
}
귀하의 의견에 감사드립니다. 나는 변경했고 이제는 내 SPARQL 쿼리가 잘 작동하고있다. – karthick
내 기쁨. 질문에 답을 표시하는 것을 고려하십시오. –