将 RDF .ttl 文件合并到一个文件数据库中 - 过滤并仅保留所需的数据/三元组

2023-12-23

我需要将 1000 多个 .ttl 文件合并到一个文件数据库中。如何通过过滤源文件中的数据来合并它们,并仅保留目标文件中所需的数据?

Thanks


有很多选项,但最简单的方法可能是使用 Turtle 解析器读取所有文件,并让该解析器将其输出传递给处理程序,该处理程序在将数据传递给 Turtle 编写器之前进行过滤。

像这样的东西可能会起作用(使用 RDF4J):

  RDFWriter writer = org.eclipse.rdf4j.rio.Rio.createWriter(RDFFormat.TURTLE, outFile);

  writer.startRDF();
  for (File file : // loop over your 100+ input files) {
      Model data = Rio.parse(new FileInputStream(file), "", RDFFormat.TURTLE);
      for (Statement st: data) {
         if (// you want to keep this statement) {
              writer.handleStatement(st);
         }
      }
  }
  writer.endRDF(); 

或者,只需将所有文件加载到 RDF 存储库中,然后使用 SPARQL 查询获取数据并保存到输出文件,或者如果您愿意:使用 SPARQL 更新来remove在将整个存储库导出到文件之前删除您不需要的数据。

沿着这些思路(再次使用 RDF4J):

 Repository rep = ... // your RDF repository, e.g. an in-memory store or native RDF database

 try (RepositoryConnection conn = rep.getConnection()) {

    // load all files into the database
    for (File file: // loop over input files) {
        conn.add(file, "", RDFFormat.TURTLE);
    }

    // do a sparql update to remove all instances of ex:Foo
    conn.prepareUpdate("DELETE WHERE { ?s a ex:Foo; ?p ?o }").execute();

    // export to file
    con.export(Rio.createWriter(RDFFormat.TURTLE, outFile));
 } finally {
    rep.shutDown(); 
 } 

根据数据量/文件大小,您可能需要稍微扩展此基本设置(例如通过使用事务而不是仅仅让连接自动提交)。但希望你能了解总体思路。

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

将 RDF .ttl 文件合并到一个文件数据库中 - 过滤并仅保留所需的数据/三元组 的相关文章

  • Android NumberPicker 带字符串

    I have customised the NumberPicker to show text The output is this 当我按 确定 时 我想将 e x 鼠标添加到我的列表 文章 中 我得到的是索引值 int 它由 array
  • 在 Kotlin 中实现返回 Collection 的 Java 方法

    我将 Kotlin 与 Spring Security 结合使用 实现该方法时 public interface UserDetails extends Serializable Collection
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • Spring webflow 应用程序:HTTP 302 暂时移动

    我的 java 应用程序中的每个请求都会生成另外 2 个带有 HTTP 302 错误的请求 例如 如果请求查看名为板 html 这个请求是从首页 html 我收到按以下顺序生成的 3 个请求 POST home html 302 Moved
  • 有效地查找正则表达式的所有重叠匹配项

    这是后续与 java 正则表达式匹配的所有重叠子字符串 https stackoverflow com q 11303309 244526 有没有办法让这段代码更快 public static void allMatches String
  • Maven + Cobertura:无法找到[您的班级]。你指定了源目录吗?

    我有 MyMath 类 有两个简单的方法 multi 和 add 和测试类只会测试多种方法 public class MainTest Test public void testMultiply MyMath tester new MyMa
  • java“void”和“非void”构造函数

    我用 java 编写了这个简单的类 只是为了测试它的一些功能 public class class1 public static Integer value 0 public class1 da public int da class1 v
  • 独占锁定ConcurrentHashMap

    我知道不可能锁定 ConcurrentHashMap 进行独占访问 但是 我找不到原因 是因为构成CHM的 Segment 没有被api公开吗 据推测 如果是的话 客户端代码可以执行 交接 锁定 Cheers 我知道不可能锁定 Concur
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 如何使用 Java 原生接口从 Java 调用 Go 函数?

    可以通过以下方式调用 C 方法JNA https en wikipedia org wiki Java Native AccessJava 中的接口 如何使用 Go 实现相同的功能 package main import fmt impor
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • .class 与 .java

    class 文件和 java 文件有什么区别 我正在尝试让我的小程序工作 但目前我只能在 Eclipse 中运行它 还不能嵌入 HTML 谢谢 编辑 那么如何使用 JVM 进行编译呢 class 文件是编译后的 java 文件 java 都
  • Java中的DRY原则[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我一直在读关于DRY https en wikipedia org wiki Don 27t repeat yourself原则 虽然看起来
  • 当容器大小更改时,JTable 仅调整选定列的大小

    对于面板内的 JTable 如果面板变大 我如何将额外的空间仅分配给某些列 在我的例子中 分配给最后一列 尽管提供 第 3 4 列和8 将获得额外的空间 我想允许用户手动更改所有列的列大小 我尝试了 table setAutoResizeM
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • java中的比较器链

    正在阅读Oracle 关于接口的 Java 教程 https docs oracle com javase tutorial java IandI createinterface html其中给出了一个例子Card 打牌 我试图理解接口中的
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat
  • 使用 Android 的 Mobile Vision API 扫描二维码

    我跟着这个tutorial http code tutsplus com tutorials reading qr codes using the mobile vision api cms 24680关于如何构建可以扫描二维码的 Andr

随机推荐

  • 为什么媒体查询的顺序在 CSS 中很重要?

    最近 我一直在设计响应速度更快的网站 并且经常使用 CSS 媒体查询 我注意到的一种模式是 定义媒体查询的顺序实际上很重要 我没有在每个浏览器中测试它 只是在 Chrome 上测试 这种行为有解释吗 有时 当您的网站无法正常工作并且您不确定
  • 数组中出现 NullPointerException

    我不断收到 NullPointerException 见下文 在 C 中一切正常 但在 android 中却崩溃了 arrDBNumbers 已满 代码应该运行并计算 1 2 3 等到 49 的数量 将 1 添加到 arrFreq i 1
  • Python - Flask:找不到 render_template() [重复]

    这个问题在这里已经有答案了 我是烧瓶新手 我有这个代码 你能给我一个建议吗 我做错了什么 谢谢 from flask import Flask from flask import request from flask import rend
  • Android:2个具有相同包的aar库

    Edit 基于此讨论的后续问题已发布在以下链接中 Android 如何管理同一应用程序使用的多个库中的公共代码库 https stackoverflow com questions 57572278 android how to manag
  • 我无法更改 static void Main(string[] args)

    我无法在控制台应用程序中更改 static void Main string args 谁能告诉我如何将其更改为其他内容 如果您的意思是无法将其更改为非静态的 或者无法更改其名称 那就对了 应用程序的入口点 must叫做Main must保
  • ASP.NET 部分回发期间打开时的 jQueryUI 日期选择器行为:年份变为 1899 或 1900

    我在 jQueryUI 日期选择器和 UpdatePanel 中遇到了一个非常有趣的错误 其中日期选择器选择的日期大约是 100 年后 jQuery 的版本为 1 6 2 jQueryUI 的版本为 1 8 14 这是粗略的布局
  • 了解事件循环

    我正在思考这个问题 这就是我想到的 我们看下面这段代码 console clear console log a setTimeout function console log b 1000 console log c setTimeout
  • 模式中的 Bootstrap 日期选择器不起作用

    我试图用谷歌搜索并搜索类似的问题 但到目前为止还没有找到任何东西 我有一个问题 我从 jquery 创建并打开模式并尝试访问日期选择器 但它不会激活日期选择器 JS id add click function myModal modal h
  • 在Java变量和方法名称中使用下划线[关闭]

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

    我在进行嵌套的 Observable 调用时遇到了一些麻烦 我的意思是调用一个 http 服务来检索用户 然后从用户处获取 id 以进行另一个 http 调用 最后在屏幕上呈现结果 1 HTTP GET 1 获取用户 2 HTTP GET
  • 无论我做什么,都无法使用预签名 URL 将文件上传到 S3。 AWS 命令​​行有效。 CURL 和其他 = 403

    我的 AWS 凭证位于 aws credentials是正确的并且有效 证明 aws s3api put object bucket
  • 保存时将笔记本 (.ipynb) 导出为 .py 文件

    我目前正在使用 Jupyter IPython Notebook 我想将我的笔记本置于版本控制之下 这就是为什么当我保存并检查笔记本 ipynb 文件 时 我希望更改也能保存并同步到同一文件夹中相应的 python 脚本 py 文件 中 见
  • 将 pyodbc.rows 列表转换为 pandas Dataframe 需要很长时间

    有没有更快的方法将 pyodbc rows 对象转换为 pandas Dataframe 将超过 1000 万个 pyodbc rows 对象的列表转换为 pandas dataframe 大约需要 30 40 分钟 import pyod
  • 停止 CherryPy 中的请求处理并从工具返回 200 响应

    我的问题 我正在寻找一种方法来停止工具中的请求处理而不引发异常 换句话说 我想在请求到达指定的控制器之前停止请求并返回 2xx 状态代码 背景 我们希望我们的应用程序支持 CORS 以及预检请求 这个想法是编写一个工具来挂钩before h
  • FacebookSDK 呈现登录 UI 两次

    将 iOS 6 与 FacebookSDK 结合使用会将读取和发布权限的请求拆分为两个单独的调用 我不确定为什么这样做有任何好处 但它似乎需要在第一次时向用户展示 Facebook UI 两次 在我的应用程序中 在用户选择使用 Facebo
  • Silverlight 的拖放控件

    最近 我需要向 Silverlight 应用程序添加拖放功能 谁能推荐一个好的拖放控件 我创建了一个拖 放控制器 我认为效果非常好 我已经使用这种技术有一段时间了 我对此非常满意 http houseofbilz com archive 2
  • 匿名函数中的 rlang::sym

    我最近注意到rlang sym似乎不适用于匿名函数 我不明白为什么 这是一个例子 它非常笨拙和丑陋 但我认为它说明了这一点 require tidyverse data lt tibble x1 letters 1 3 x2 letters
  • 这是在 Bootstrap 中将单选按钮设置为“选中”的正确方法吗?

    我正在重新利用 TIMEX 已标记为重复的问题 因为我相信它不是重复的 而且我遇到了同样的问题 如何在 Bootstrap 中将单选按钮设置为 选中 https stackoverflow com questions 24463822 ho
  • 在 Outlook VBA 中,如何更改主题以便它更改资源管理器窗格中的主题?

    当我收到电子邮件时 我会修改主题行 使其更具可读性 并且由某个自动电子邮件程序生成的 对话 实际上包含所有主题 我可以更改电子邮件视图窗格中的主题 但资源管理器窗格中的主题保持不变 如何强制更改资源管理器窗格中的主题 我必须复制电子邮件并删
  • 将 RDF .ttl 文件合并到一个文件数据库中 - 过滤并仅保留所需的数据/三元组

    我需要将 1000 多个 ttl 文件合并到一个文件数据库中 如何通过过滤源文件中的数据来合并它们 并仅保留目标文件中所需的数据 Thanks 有很多选项 但最简单的方法可能是使用 Turtle 解析器读取所有文件 并让该解析器将其输出传递