使用 Raptor 或 Sax 验证 RDF 文件

发布于 2025-01-03 12:14:04 字数 95 浏览 0 评论 0原文

给定一个 RDF 文件,我想编写一个 python 脚本来验证该文件并注释格式是否错误。我该如何使用 Raptor 做到这一点?或 Sax 或者还有其他库吗? w3 运气不好。

Given a RDF file, I want to write a python script to validate the file and comment if in wrong format. HOw do I do this with RAptor? or Sax or is there any other library? No luck with w3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疯狂的代价 2025-01-10 12:14:04

对于 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"

此代码是从 示例中提取的。 py,查看一下,您会看到更多示例。

You have two options with raptor:

Option 1: Use the rapper command line, this is super fast. The function below is an example in python to wrap up the command. The -c option is to just count the number of triples. The parameter lang is just an option to specify the RDF format ntriples, rdfxml, turtle, ... The function checks the return code and throws an exception in case anything went wrong.

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])

Option 2: Use the redland Python language bindings. Something like the following would work:

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"

This code has been extracted from example.py, check it out and you'll see more examples.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文