如何使用 RDFLib 解析大数据集?

2024-04-23

我正在尝试使用 RDFLib 3.0 解析几个大图,显然它处理第一个图并在第二个图上死掉(MemoryError)...看起来 MySQL 不再支持作为存储,您能建议一种以某种方式解析这些图的方法吗?

Traceback (most recent call last):
  File "names.py", line 152, in <module>
    main()
  File "names.py", line 91, in main
    locals()[graphname].parse(filename, format="nt")
  File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/graph.py", line 938, in parse
    location=location, file=file, data=data, **args)
  File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/graph.py", line 757, in parse
    parser.parse(source, self, **args)
  File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/plugins/parsers/nt.py", line 24, in parse
    parser.parse(f)
  File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/plugins/parsers/ntriples.py", line 124, in parse
    self.line = self.readline()
  File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/plugins/parsers/ntriples.py", line 151, in readline
    m = r_line.match(self.buffer)
MemoryError

这些 RDF 文件中有多少个三元组?我已经测试过rdflib如果你幸运的话,它的扩展不会超过几十个 ktriples。它对于具有数百万个三元组的文件来说不可能真正表现良好。

最好的解析器是rapper from 雷德兰图书馆 http://librdf.org/。我的第一个建议是不要使用RDF/XML并去寻找ntriples。 Ntriples 是比 RDF/XML 更轻量的格式。您可以使用以下命令从 RDF/XML 转换为 n三元组rapper:

rapper -i rdfxml -o ntriples YOUR_FILE.rdf > YOUR_FILE.ntriples

如果你喜欢Python,你可以使用Redland python 绑定 http://librdf.org/bindings/:

import RDF
parser=RDF.Parser(name="ntriples")
model=RDF.Model()
stream=parser.parse_into_model(model,"file://file_path",
                                      "http://your_base_uri.org")
for triple in model:
    print triple.subject, triple.predicate, triple.object

我已经使用 redland 库解析了相当大的文件(几千兆字节),没有任何问题。

最终,如果您正在处理大数据集,您可能需要将数据断言到可扩展的三重存储中,我通常使用的是4store http://4store.org。 4store内部使用redland来解析RDF文件。从长远来看,我认为,寻求可扩展的三重存储是你必须要做的。有了它你就可以使用SPARQL http://www.w3.org/TR/rdf-sparql-query/查询您的数据并SPARQL/更新 http://www.w3.org/TR/sparql11-update/插入和删除三元组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 RDFLib 解析大数据集? 的相关文章

随机推荐

  • 如何修复 Chrome 开发者窗口中的“待处理”状态?

    When I try to include social media scripts into my page I get the pending status in Chrome on some computers not all of
  • 无法获得 WRITE_SETTINGS 权限

    当我在 Android M Preview 3 上的目标 API 为 23 时 我似乎无法获取 Manifest permission WRITE SETTTINGS 权限 requestPermissions new String Man
  • 如何将 UITableViewCell 与 UITableViewCellStyle 一起使用并正确重用单元格?

    我想用UITableViewCellStyle Subtitle默认表格单元格的样式 我在中找到了答案一个如此的答案 https stackoverflow com questions 24062285 how to set uitable
  • 如何完全删除 QLayout 的边距(特定于 Mac OS)

    Let me explain a simplified situation In Qt Creator create a QHBoxLayout containing a QPushButton and another QHBoxLayou
  • 在 CakePHP 中向 Containable 添加条件

    以前我依赖递归 但我没有得到一些解决方案 然后我发现 Containable 对于这些问题工作得很好 我正在开发一个电影评论网站 我需要显示与特定类型相关的电影列表 我有下面的代码 example genre drama options a
  • 在 Rails 中扩展 ruby​​ gem

    假设我有一个 Rails 应用程序 它从 gem 例如 CMS 获取大部分功能 如果我现在需要添加一些自定义 例如 向用户添加属性 最佳实践方法是什么 如果我自定义 gem 那么将来更新 gem 时将会遇到问题 这里采取的最佳方法是什么 这
  • 我可以强制 CloudFormation 解析 Secrets Manager 中的值吗?

    在下面 缩写为 CloudFormation 模板 中 我尝试配置 AWS Lambda 函数以从注入其环境的 AWS Secrets Manager 获取值 Resources Function Type AWS Serverless F
  • 如何向pairs()图中添加颜色键?

    Goal 我有一个调整过的pairs情节在R我想为其添加一个颜色键 面板背景位于pairs绘图显示由数字矩阵确定的某些颜色 我想要在右侧有一个颜色键pairs显示这些颜色和一些指示数字的标签的图 我找到了一些添加颜色键的方法image 绘图
  • Android相机无法从后台服务拍照

    我已经实现了一项从后台线程拍照的服务 但照片永远不会在我的任何设备上拍摄 这是代码 下面记录输出 public class PhotoCaptureService extends Service private static final S
  • jQuery,如何通过选中复选框来调用 url

    我有这个 span Facebook span
  • iPhone 5 屏幕高度错误

    我在 3 5 英寸屏幕上开发了一个应用程序 现在我为 4 英寸屏幕制作了一个新的 Storyboard 我喜欢按照以下方式在 appdelegate 上的 Storyboard 之间切换 我记录了屏幕高度 它给了我 480 00000 检查
  • 来自不同框架的扩展方法的名称冲突

    作为测试 我创建了两个框架 两个框架都包含此扩展 public extension UIDevice var extraInfo UIDeviceExtraInfo return UIDeviceExtraInfo public class
  • Python:基于nosetest是否运行的条件变量

    我正在运行鼻子测试 它有一个设置功能 需要加载与生产数据库不同的数据库 我使用的 ORM 是 peewee 它要求在定义中设置模型的数据库 所以我需要设置一个条件变量 但我不知道使用什么条件来检查 nostest 是否正在运行该文件 我在
  • Numpy排列浮点不一致

    我有一个相当简单的 numpy 任务 创建一个长数组 每个元素递增 0 001 当然 np arange就是答案 我将自己限制为默认精度 float64 对结果的一个简单检查是数组的每 1000 个元素应该具有相同的小数部分 我通过绘图检查
  • 如何优化这个 CUDA 内核

    我已经分析了我的模型 似乎该内核约占我总运行时间的 2 3 我一直在寻找优化它的建议 代码如下 global void calcFlux double concs double fluxes double dt int idx blockI
  • 如何在 Linux (Red Hat/CentOS) 上更新到特定 R 版本,并保留以前的版本?

    也许更准确的标题是 如何在 Linux Red Hat CentOS 上从就地 EPEL R 安装切换到并行 特定于版本 R 安装 一个 可能是典型的 在 Linux 上升级 R 的故事 History 在过去的某个时刻 我使用由 RHEL
  • IE 在模态中失去对输入字段的焦点

    我有一个相当复杂的网络应用程序 我已将其压缩为以下两个 HTML 页面 但问题仍然存在 问题 在 IE 8 和 9 中 厚盒模式 iframe 的输入字段在一秒 或更短时间 后失去焦点 它仅在模态中发生 如果您自行加载页面 焦点不会丢失 我
  • 如何为 JavaScript 生成的文本框附加 onclick 事件?

    我有一个表行 其中包含一个文本框 它有一个显示 JavaScript 日历的 onclick 我正在使用文本框向表中添加行 但我不知道如何将 onclick 事件附加到 JavaScript 生成的文本框
  • MyFaces 中的内存泄漏

    编辑 您可以在下面的评论中找到的解决方案假设更改 JSF 实现从 MyFaces 到 太阳的莫贾拉 Hi 我在 MyFaces 2 0 0 上遇到了非常烦人的问题 更准确地说 我也在 2 0 1 和 2 0 2 上检查过它 问题仍然存在 我
  • 如何使用 RDFLib 解析大数据集?

    我正在尝试使用 RDFLib 3 0 解析几个大图 显然它处理第一个图并在第二个图上死掉 MemoryError 看起来 MySQL 不再支持作为存储 您能建议一种以某种方式解析这些图的方法吗 Traceback most recent c