2011-09-15 3 views
0

다음 코드를 사용하여 저장소에 트리플을 추가하려고 할 때마다 다음 오류가 발생합니다. 이 점에 대해 제발 도와주세요. 미리 감사드립니다.rdflib.store.IOMemory에 트리플 추가 문제

store = plugin.get('IOMemory',Store)() 
store.add((abc, FOAF['knows'],def)) 

Error: 

Traceback (most recent call last): 
    File "C:\Python27\internetcode.py", line 114, in <module> 
    store.add((abc, FOAF['knows'],def)) 
TypeError: add() takes at least 3 arguments (2 given) 

답변

0

그래서 첫째, 당신은 방법은 3 개 인수를 취한다는 파이썬 말할 때, 정말이 개 인수 플러스 인스턴스 인수 (보통 self)을 의미 알아야합니다. 현재 인스턴스 (store)와 세 요소 tuple ((abc, FOAF['knows'], def))을 하나의 인수로 계산합니다. store.add()에는 세 번째 인수가 필요합니다. 그것이 오류 메시지가 말하고자하는 것입니다. 나는 그것이 무엇을 필요로하는지 모른다. 그러나 문서는 더 설명 할 수 있어야한다.

다른 것이 없다면 store.add((abc, FOAF['knows'], def), None)을 시도해보고 새로운 오류가 발생하는지 확인할 수 있습니다.

+0

감사합니다. 이제 아무런 오류가 없습니다. –

1

적어도 3 개의 인수를 전달해야합니다. 해당 모듈의 documentation에서 어떤 인수가 필요한지 확인할 수 있습니다 add 방법 :

(abc, FOAF['knows'],def)은 트리플입니까? 나는 (= 거짓 인용, 자기, (주제, 술어, 객체), 컨텍스트) 좀 더 많은 정보 here

추가를 발견했습니다 contextquoted

add(self, triple, context, quoted) 

:이 경우에 두 개 필요

특정 문맥 또는 모델에 지정된 문을 추가합니다. 따옴표로 묶인 인수는 수식 인식 저장소에서 을 나타내는 것으로 해석됩니다.이 문은 가상/가상입니다. 이 아닌 경우 오류가 발생하고 인용 인수가 참이어야합니다. 또한 상점이 수식을 인식하지 못하면 인용 된 인수가 True가되도록 오류가 있어야합니다.