2012-11-26 7 views
0

pythonSPARQLWrapper을 사용하여 루프 내 많은 다른 쿼리가있는 웹 enpoint를 쿼리합니다.SPARQL 초기화

sparql = SPARQLWrapper("url") 
prefix = "prefix..." 
for i in arange(1:len(queries)): 
    sparql.setQuery(prefix+queries[i]) 
    result[i] = sparql.query().convert() 

그러나이 작동하지 않습니다

그래서 나는 ( queries 모든 다른 쿼리와 result 결과를 개최하자)는 다음과 같이 작동하도록했습니다. 목록에서 첫 번째 쿼리를 선택하면 예상 결과가 반환되지만 다른 쿼리는 그렇지 않습니다. 자체 조회하면 병목 현상이기 때문에,

for i in arange(1:len(queries)): 
    [sparql,prefix] = initializeSPARQL() 
    sparql.setQuery(prefix+queries[i]) 
    result[i] = sparql.query().convert() 

를 작동하고 또한 성능 문제가되지 않는 것 또한

def initializeSPARQL(): 
    sparql = SPARQLWrapper("url") 
    prefix = "prefix..." 
    return sparql,prefix 

대신 그 , 나는 지금을 사용합니다. 그러나 더 나은 해결책이 있습니까? 이것은 너무 잘못된 것 같습니다 ...

답변

-1

나는 도서관의 개발자 중 하나입니다.

처음 시도하면 버그가 발생합니다. 내부 데이터 구조가 이전 사용법과 어떤 관계가 있는지 확인하여 라이브러리를 사용할 수 있도록합니다.

두 번째 해결책은 작품 일지라도 올바른 방법이 아니어야합니다.

내가 말했듯이,이 문제를 해결하는 방법을 살펴 보겠습니다.

향후 버그 신고서를 제출하거나 메일 링리스트에 이메일을 보내주십시오.

0

코드를 검사했기 때문에 query() 메서드는 완전히 상태가 저장되지 않으므로 왜 실패하는지 알 수 없습니다.

i> 1 인 경우 결과 [i]에 무엇이 포함되어 있습니까?

다음을 시도해 볼 것을 제안 할 수 있습니까?

sparql = SPARQLWrapper("url") 
prefix = "prefix..." 
results = [] 
for i in range(0, len(queries)): 
    sparql.resetQuery() 
    sparql.setQuery(prefix+queries[i]) 
    results[i] = sparql.query().convert() 
+1

오 resetQuery() 메소드를 알지 못했습니다. 나는 이것을 시도하고 업데이 트를 줄 것이다, 고마워! –

+0

지금 작동합니까? – wikier

+0

안녕하세요, 해봤지만 내 SPARQL 버전은 재설정 메소드를 제공하지 않습니다.'AttributeError : SPARQLWrapper 인스턴스에 도입 된 속성이 'resetQuery''입니까? –