使用Raptor或Sax验证RDF文件

时间:2012-02-07 16:18:24

标签: python validation rdf sax redland

给定一个RDF文件,我想编写一个python脚本来验证文件并注释格式是否错误。我是用RAptor做的吗?还是Sax还是有其他图书馆吗? w3没有运气。

1 个答案:

答案 0 :(得分:3)

raptor有两种选择:

选项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:使用redland 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中提取,请查看,您会看到更多示例。