4
RDFファイルを指定すると、pythonスクリプトを記述して、ファイルを検証し、間違った形式の場合はコメントします。私はRAptorでこれを行うのですか?またはSaxか他のライブラリがありますか? w3で運がない。RaptorまたはSaxを使用してRDFファイルを検証する
RDFファイルを指定すると、pythonスクリプトを記述して、ファイルを検証し、間違った形式の場合はコメントします。私はRAptorでこれを行うのですか?またはSaxか他のライブラリがありますか? w3で運がない。RaptorまたはSaxを使用してRDFファイルを検証する
あなたは猛禽との2つのオプションがあります。
オプション1:が、これは超高速で、rapper
コマンドラインを使用します。以下の関数は、コマンドを包むためのpythonの例です。 -c
オプションは、トリプルの数を数えるだけです。パラメータlang
は、RDF形式ntriples、rdfxml、turtle、...を指定するための単なるオプションです。関数は戻りコードをチェックし、何か問題が生じた場合に例外をスローします。
def rapper_count(f,lang):
p=subprocess.Popen(["rapper","-i",lang,"-c",f],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output, err = p.communicate()
ret = p.poll()
if ret <> 0:
raise Exception, "Error parsing with rapper\n%s"%err
return int(err.split()[-2])
オプション2:レッドランドPython language bindingsを使用してください。次のような何かが働くだろう:
import RDF
test_file = "/some/file"
uri=RDF.Uri(string="file:"+test_file)
parser=RDF.Parser(name="turtle")
if parser is None:
raise Exception("Failed to create RDF.Parser raptor")
count=0
for s in parser.parse_as_stream(uri,uri):
count=count+1
print "Parsing added",count,"statements"
このコードはそれをチェックアウトし、example.pyから抽出された、あなたはより多くの例が表示されます。
私は実際にあなたがサブプロセスで何をしているのか理解していません。あなたはマニュエルを精緻化できますか? – madCode
subprocessはコマンドを実行するためのPythonルーチンです。基本的に私はラッパーユーティリティを呼び出しています。私のコードで 'rapper -c -i rdfxml some_file'を実行していたようです。関数は戻りコードをテストし、0でなければ例外をスローします。通常ラッパーは、解析が有効でないときに、0ではなく、ある値を返します。 –