python - 使用 Raptor 或 Sax 验证 RDF 文件

标签 python validation rdf sax redland

给定一个 RDF 文件,我想编写一个 python 脚本来验证该文件并在格式错误时进行评论。我如何使用 Raptor 执行此操作?或萨克斯或有任何其他图书馆? w3没有运气。

最佳答案

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 中提取,检查一下,您会看到更多示例。

关于python - 使用 Raptor 或 Sax 验证 RDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179772/

相关文章:

validation - Breeze 自定义验证

ruby - 如何使用 minitest 测试实例级 Sequel::Model 验证

python - OpenCV Python 计算历史

python - 从 python 列表中删除元素并避免移动

python - 在python中获取短路径

python - 将单例维度添加到 NumPy 向量以便切片分配工作的有效方法

php - Laravel 5 - 验证多个请求

sparql - SPARQL查询中空白节点和变量的区别

python - 解析大型 NTriples 文件 Python

rdf - 使用OWL API查询BBC Wildlife Ontology