如何在 TDB TripleStore 中加载模型

2024-02-16

我有一个问题问你:

我想在我的 Jena TDB TripleStore 上加载一个文件。 我的文件很大,大约80Mb,大约700000个三倍RDF。当我尝试加载它时,执行停止工作或需要很长时间。

我正在使用在 Web 服务上运行的代码:

        String file = "C:\\file.nt";
        String directory;
        directory = "C:\\tdb";
        Dataset dataset = TDBFactory.createDataset(directory);

        Model model = ModelFactory.createDefaultModel();

        TDBLoader.loadModel(model, file );
        dataset.addNamedModel("http://nameFile", model); 

        return model;

有时我会收到 Java 堆空间错误:

Caused by: java.lang.OutOfMemoryError: Java heap space
    at org.apache.jena.riot.tokens.TokenizerText.parseToken(TokenizerText.java:170)
    at org.apache.jena.riot.tokens.TokenizerText.hasNext(TokenizerText.java:86)
    at org.apache.jena.atlas.iterator.PeekIterator.fill(PeekIterator.java:50)
    at org.apache.jena.atlas.iterator.PeekIterator.next(PeekIterator.java:92)
    at org.apache.jena.riot.lang.LangEngine.nextToken(LangEngine.java:99)
    at org.apache.jena.riot.lang.LangNTriples.parseOne(LangNTriples.java:67)
    at org.apache.jena.riot.lang.LangNTriples.runParser(LangNTriples.java:54)
    at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
    at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTFactoryImpl$1.read(RDFParserRegistry.java:142)
    at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:859)
    at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:255)
    at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:241)
    at org.apache.jena.riot.adapters.RDFReaderRIOT_Web.read(RDFReaderRIOT_Web.java:96)
    at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:241)
    at com.hp.hpl.jena.tdb.TDBLoader.loadAnything(TDBLoader.java:294)
    at com.hp.hpl.jena.tdb.TDBLoader.loadModel(TDBLoader.java:125)
    at com.hp.hpl.jena.tdb.TDBLoader.loadModel(TDBLoader.java:119)

如何在 Jena 模型中加载此文件并将其保存在 TDB 中?提前致谢。


你需要在启动时为 JVM 分配更多内存 https://stackoverflow.com/a/2294280/2528639。当你的垃圾收集太少时,进程将花费太多时间执行垃圾收集,并最终失败。

例如,通过以下方式启动具有 4 GB 内存的 JVM:

java -Xms4G -XmxG

如果您使用的是 Eclipse 等 IDE,您可以更改您的运行配置 https://stackoverflow.com/q/4175188/2528639以便应用程序也有额外的内存。

除此之外,唯一让我惊讶的是,您正在使用内存中模型进行实际加载操作,而实际上您可以使用 TDB 支持的模型。这可以帮助缓解内存问题,因为 TDB 会动态地将其索引移动到磁盘。

Change:

Dataset dataset = TDBFactory.createDataset(directory);
Model model = ModelFactory.createDefaultModel();
TDBLoader.loadModel(model, file );
dataset.addNamedModel("http://nameFile", model);

to this:

Dataset dataset = TDBFactory.createDataset(directory);
Model model = dataset.getNamedModel("http://nameFile");
TDBLoader.loadModel(model, file );

现在,您的系统取决于 TDB 就何时将数据保留在内存中以及何时将数据刷新到磁盘做出正确决策的能力。

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

如何在 TDB TripleStore 中加载模型 的相关文章

  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • 如何在 MSSQL 中获取 CURRENT_DATE?

    我正在使用 jpa 3 o 和 Hibernate 我有一个命名查询 SELECT COUNT wt id FROM WPSTransaction wt WHERE wt createdDate gt CURRENT DATE WPSTra
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • 正确签名的 JNLP 应用程序无法在 Java 7 中运行

    我有一个 JNLP 应用程序 由于证书过期需要更新 我有一个经过 CA 验证的新证书 我已将新证书导入到我的密钥库中 我已导入完整的证书链 我的构建文件对构建中的 jar 进行签名和时间戳
  • 拆分/标记化/扫描字符串并注意引号

    Java中是否有默认 简单的方法来分割字符串 但要注意引号或其他符号 例如 给定以下文本 There s a man that live next door in my neighborhood and he gets me down Ob
  • 在 java 中运行外部应用程序但不要等待它完成

    我正在用java编写一个应用程序 允许我运行其他应用程序 为此 我使用了 Process 类对象 但当我这样做时 应用程序会等待进程结束 然后再退出 有没有办法在 Java 中运行外部应用程序 但不等待它完成 public static v
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • 删除 JFX 中选项卡后面的灰色背景

    So is there any way to remove the gray area behind the tab s 我尝试过用 CSS 来做到这一点 但没有找到方法 要设置 tabpane 标题的背景颜色 请在 CSS 文件中写入 t
  • 如何在 O(n) 时间内根据 Map 中的整数值相对于其他值随机选择一个键?

    如果我们有一个Map
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 让 Hibernate 和 SQL Server 与 VARCHAR 和 NVARCHAR 良好配合

    我目前正在大型数据库的某些表中启用 UTF 8 字符 这些表已经是 MS SQL 类型 NVARCHAR 此外 我还有几个使用 VARCHAR 的字段 Hibernate 与 JDBC 驱动程序的交互存在一个众所周知的问题 例如 参见在 h
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin

随机推荐

  • System.Web.HttpException:无法在 DropDownList 中选择多个项目

    在页面加载期间 索引 0 已被选择 然后这段代码语句选择了索引1 dropDownList Items FindByValue myValue Selected true assume myValue is found at index 1
  • XAMPP:如何升级 PEAR

    尝试升级 XAMPP pear 时出现以下错误 Fatal error Cannot use result of built in function in write context in C xampp php pear Archive
  • 干净架构中从网关到框架的依赖关系

    假设我想要实现一个基于 Uncle Bobs Clean Architecture 的 ASP NET 应用程序 据我了解 Asp Net 本身将属于框架圈 Asp Net 控制器位于网关 接口适配器层 我的业务逻辑将位于用例 实体层 依赖
  • NoSQL 数据库 - 日志处理/聚合和汇总的良好候选者? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将自定义元素添加到 ngRepeat 列表

    我正在使用 cordova onsenui angularJs 开发一个移动应用程序 并且对填充 ngRepeat 列表有特殊要求 有些项目可能有附加参数 在这种情况下 我想显示项目的附加信息 完全用新的替代模式 或在下面附加一个新的自定义
  • 两位数[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • Javascript/Jquery:使用数字范围验证输入

    我想验证预先配置的数字范围内的输入字段 只允许使用 1 到 24 之间的数字 我能怎么做 使用这样的自定义解决方案 field keypress function event var val parseInt this val HERE I
  • 在具有缩放事件的 内的两个元素之间放置一条线?

    我有这段代码 并且我有一个算法可以将线放在两个之间nodes 我想要这条线加入 nodo4与 nodo6 the rectangles是nodes并且每个都有与其相同的名字id 代码有点长 但实现这一点的重要部分在这里 setTimeout
  • PyPlot 图例:“Poly3DCollection”对象没有属性“_edgecolors2d”

    以下代码片段工作正常 直到我取消注释plt legend line import numpy as np import matplotlib pyplot as plt from mpl toolkits mplot3d import Ax
  • 如何在打字稿中声明公共枚举?

    对于以下课程 module LayoutEngine enum DocumentFormat DOCX 1 export class DocHeader public format DocumentFormat 我有两个问题 上面有一个编译
  • XST - 使用调用模板的输出作为返回值

    假设我有一个模板foo它可以输出给定参数的东西 现在我想使用该输出作为我的其他模板的参数 loop所以我可以循环输出一定次数 我一路上尝试过一些事情
  • 如何排除表单子类中 ModelForm 中声明的字段?

    在 Django 中 我试图从中派生 子类 一个新形式ModelForm我想删除一些字段 或者只包含一些字段 更正确 当然 显而易见的方法是 基本形式来自django contrib auth forms class MyUserChang
  • 如何以编程方式检查Android设备是否支持OTG功能

    我想以编程方式检查设备是否支持 OTG 功能 我在互联网上尝试了很多相关内容 但找不到任何东西 我怎样才能做到这一点 感谢 CommonsWare 如何检测Android是否完全支持USB https stackoverflow com q
  • ios 区分主页按钮点击和来电?

    是否有任何解决方案可以区分手动退出应用程序 通过单击主页按钮 和通过来电退出应用程序 请帮忙 是的 有点像 单击主页按钮或关闭屏幕将导致您的应用程序进入后台 applicationDidEnterBackground 而电话则不会 只会让您
  • 安装 Ruby 后,MAC OS X 上的活动开发人员路径无效

    我收到此错误 xcrun 错误 无效的活动开发人员路径 Applications Xcode app 缺少 xcrun 位于 Applications Xcode app usr bin xcrun This solution https
  • 使用 $http 单元测试 Angular 指令

    我有一个 Angular 指令 当附加到
  • :概要:在 Sphinx 自动模块中不起作用

    我正在使用 Sphinx 非常喜欢它 但它不会获取模块概要 没有错误或任何东西 只是简单 什么都没有 这是我试图自动记录的模块 vim set fileencoding utf 8 module CONF synopsis Configur
  • 使用 google chrome 扩展的 javascript 将文本插入文本区域

    我正在尝试扩展现有谷歌浏览器扩展的功能 使用 Wrike google chrome 扩展 我的目标是添加一个按钮 或多个按钮 该按钮将向描述字段 文本区域 添加一些文本 期望的效果是 如果用户单击 添加模板 按钮 代码 文本将被插入到 i
  • Spring + Hibernate + Sql Server 连接失败

    当我结合使用 Spring Hibernate 和 SQL Server 时 出现以下错误 19 17 09 137 ERROR org hibernate tool hbm2ddl SchemaValidator MSC service
  • 如何在 TDB TripleStore 中加载模型

    我有一个问题问你 我想在我的 Jena TDB TripleStore 上加载一个文件 我的文件很大 大约80Mb 大约700000个三倍RDF 当我尝试加载它时 执行停止工作或需要很长时间 我正在使用在 Web 服务上运行的代码 Stri