将空白节点添加到 Jena 模型

2023-12-15

我正在尝试使用一组现有的三元组填充耶拿本体模型,其中一些包含空白节点。我想忠实地维护这个新模型中的这些空白节点,但我无法找到将它们添加到耶拿模型中的方法。

我一直在使用:

Statement s = ResourceFactory.createStatement(subject, predicate, object);

要将新语句添加到模型中:

private OntModel model = ModelFactory.createOntologyModel();
model.add(s);

但这只允许某些类型,如主语、谓语和宾语;资源主题、属性谓词、RDFNode 对象。这些类型都不允许添加空白节点作为主题或宾语,例如通过:

Node subject =  NodeFactory.createBlankNode(subjectValue);

有什么建议么?我尝试过仅使用空白节点作为资源并创建一个资源对象,但这会破坏所有内容,因为它们会成为类而不是空白节点。

任何帮助将不胜感激,一直在拉我的头发。


好吧,如果您已经有一组现有的三元组,您可以使用以下命令轻松地从文件中读取它们:

OntModel model = ModelFactory.createOntologyModel();
model.read(new FileInputStream("data.ttl"), null, "TTL");

这将处理空白节点,请参阅耶拿文档

您可以像这样手动创建一个空白节点:

Resource subject = model.createResource("s");
Property predicate = model.createProperty("p");
Resource object = model.createResource();
model.add(subject, predicate, object);

这将导致类似的结果:

[s、p、aad22737-ce84-4564-a9c5-9bdfd49b55de]

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

将空白节点添加到 Jena 模型 的相关文章

随机推荐

  • 我们如何将用户和机器人消息记录到微软机器人框架中的cosmos db

    我使用 microsoft bot Framework v4 sdk 创建了一个聊天机器人 我想将机器人用户和机器人消息记录到 cosmos db 我只能使用下面的博客记录用户消息 我希望记录用户和机器人的响应 值得庆幸的是 这很容易 因为
  • Java 属性的字段隐藏

    我刚刚开始学习 Java 所以如果答案有些明显 请耐心等待 我做了一些研究但没有结果 据我了解 属性不会被覆盖 而只是隐藏字段 为了确定是否使用超类或子类中的属性 Java将检查引用的类型 然后我不明白这里的输出 public class
  • JOLT 转换以沿数组复制单个值

    我想将 JSON 转换为键值对 并同时复制特定的单个值 即 timestamp 对于所有这些对 输入 JSON Timestamp 2018 05 13T14 57 09 first key 1023 another key 1987 ye
  • 如何在 git diff 输出中正确显示重音

    当我运行 git diff 命令时 文件列表中所有带有重音符号的文件显示效果不佳 git diff name status xxxx yyyyyy return M 303 251 303 251 txt 我怎样才能保留口音来拥有这个 M
  • 函数结构不遵循的问题(PHP)

  • 带有消息“无法将类型(字符串)的变体转换为类型(双精度)的 EVariantTypeCastError 类”

    使用 Delphi 和 FastReport 在 Delphi 内调试时 紧接此行之后 我收到此错误消息
  • 在 Android 应用程序中解压 SD 卡上的压缩文件

    我有一个压缩密码保护的视频文件保存在 Android 模拟器的 SD 卡上 现在我想通过代码将该视频文件解压到SD卡上 我怎样才能做到这一点 有什么帮助或代码吗 提前致谢 import android util Log import jav
  • 如何在 Swift 3 中转置数组长度不等的矩阵

    我的数组是 Int 类型 array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 我希望转置结果为 array 1 4 7 11 14 2 5 8 12 15 3 6 9 13 16 0 0 10 0 0
  • X-Frame-Options 标头在防止恶意框架方面有多有用?

    添加X Frame Options DENY响应标头有助于防止网页的恶意框架 作为一种解决方案 它肯定比客户端 JavaScript 解决方案更好 但它到底有多有用呢 所有 现代 浏览器都支持它 意图劫持您网站的黑客是否可以绕过它 埃里克
  • 更改网址而不刷新?

    我在互联网上发现了一个应用程序 当您单击其中的 A 链接时 它将重定向到 A 页面 而无需刷新整个位置并更改 url 地址栏 我知道这可能是因为 JQuery 可以访问客户端浏览器 Please帮我解决这个问题 使用历史API你可以做这样的
  • IE 浏览器中的 CSS 媒体查询支持

    请帮助我如何使用 IE 浏览器的媒体查询 我遇到过一个 jquery 库 http plugins jquery com project MediaQueries但我无法下载这个库 我建议不要使用 javascript 来模拟媒体查询 设置
  • 如何使用 django 将进程置于后台?

    我尝试了 os system os spwanl 等 但效果不佳 我需要从 django 应用程序执行一些后台进程 尝试使用celery 它最初就是为此目的而创建的 并且还支持调度任务
  • JS:导出 Array.prototype

    如果我想向 JavaScript 添加原型Array 有没有办法导出它 以便我可以将所有原型方法放入一个文件中 例如modules prototypes js 可不可能是export Array 或者我会在设置原型之前添加导出吗 如果你的代
  • iOS - 本地通知 - 自定义振动或振动时间更长

    我正在尝试构建一个像闹钟一样工作的 iPhone 应用程序 我正在使用 UILocalNotification Problem 我希望手机振动时间更长一些 但目前它仅振动一次 替代方法 是否可以使用自定义振动模式 http www pcwo
  • 在 bash 中将带有分号 (';') 的值赋给变量

    我试图用 sed 在 unix shell bash 上的字符串中转义 分号 当我直接执行而不将值分配给变量时它会起作用 那是 echo hello sed s 1 g hello 但是 当将上述命令分配给变量时 它似乎不起作用 resul
  • 将插入符号/光标位置设置为字符串值 WPF 文本框的末尾

    我尝试将插入符 光标位置设置为end当我第一次打开窗口时 WPF 文本框中的字符串值 当窗口打开时 我使用 FocusManager 将焦点设置在文本框上 似乎没什么作用 有任何想法吗 请注意 我使用的是 MVVM 模式 并且我的代码中仅包
  • Struts2 中的 NoSuchMethodException

    我有出生日期的文本字段 当用户输入无效日期 例如字符串 时 错误消息成功显示为 fielderror 但在我的控制台中 我收到此错误 java lang NoSuchMethodException Profile setBirthDate
  • jquery ajax 单击时调用,仅有效一次

    我有这个简单的 jquery 代码 单击时 它会获取标签的 URL 加载当前内容旁边的页面 滑动它并删除旧内容 页面的状态与以前完全相同 相同的元素没有额外的类或样式 问题是下一个 ajax 调用不起作用 也许我需要 unbind 一些东西
  • 反应点击处理程序并绑定它

    我有一个反应组件 我在其中迭代列表并创建行 每行都有一个删除按钮 单击删除按钮时 我想传递对该行中元素的引用 var TagTable React createClass onTagDelete function tagName this
  • 将空白节点添加到 Jena 模型

    我正在尝试使用一组现有的三元组填充耶拿本体模型 其中一些包含空白节点 我想忠实地维护这个新模型中的这些空白节点 但我无法找到将它们添加到耶拿模型中的方法 我一直在使用 Statement s ResourceFactory createSt