使用Raptor或Sax验证RDF文件
我有一个RDF文件,我想写一个Python脚本来检查这个文件是否格式正确,如果不正确就给出评论。我该怎么用RAptor、Sax或者其他库来实现呢?我在w3上没有找到合适的解决方案。
1 个回答
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语言绑定。像下面这样的代码就可以工作:
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中提取出来的,去看看你会发现更多示例。