如何将关系型数据库映射到OWL?

2024-01-21

我正在尝试将关系数据库映射到 OWL 这是我的 2 张桌子 学生(student_id,student_name,course_id)
课程(课程ID,课程名称)

+----+--------+-----------+    
| id | name   | course_id |  
+----+--------+-----------+     
|  1 | Adam   |         5 |   
|  2 | Michael|         2 |    
+----+--------+-----------+   
+-----------+-------------+    
| course_id | course_name |   
+-----------+-------------+      
|         2 | DM          |    
|         5 | WEBIR       |  
+-----------+-------------+

现在 course_id 是学生表引用中的外键 course_id 在课程表中。我使用 Protege 4.3 创建了本体(定义了模式)

我正在尝试使用 Jena API 将数据作为实例插入到 OWL 文件中。 在本体中,非外键的列被映射到数据类型 根据本文,属性和外键映射到对象属性。 我将元组作为实例添加到耶拿的学生和课程中。 如果外键是对象属性,我如何使用它来唯一确定关系。 这是我用来将数据作为实例添加到在 Protege 中创建的 owl 文件的 jena 代码。

    for (student std : studlist) {
        Individual stud = stud_ont.createIndividual(nspace + "student/"
                + std.getStudent_id());
        stud.addProperty(stud_id, std.getStudent_id());
        stud.addProperty(stud_name, std.getStudent_name());
        stud.addProperty(reln, std.getCourse_id());
        PrintStream p = new PrintStream(
                "/home/owlDM/newedu.owl");
        m.writeAll(p, "RDF/XML", null);
        p.close();
    }
    for (course crs : courselist) {

        Individual cour = course_ont.createIndividual(nspace + "course/"
                + crs.getCourse_name());
        cour.addProperty(course_course_name, crs.getCourse_name());
        PrintStream p = new PrintStream(
                "/home/owlDM/newedu.owl");
        m.writeAll(p, "RDF/XML", null);
        p.close();
    }

这里的“reln”是对象属性(功能),我为其添加 course_id(值),它是外键。 但这有助于关联两个实例吗? 假设我需要推断“Adam 已经参加了 WebIR 课程”。

我的对象属性如何替换与唯一相关的外键值 连接两个类的两个元组?
请提出建议,非常感谢任何帮助。


"The D2RQ http://d2rq.org/Platform 是一个以虚拟、只读 RDF 图的形式访问关系数据库的系统”。

你可能想看看

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

如何将关系型数据库映射到OWL? 的相关文章

  • 从耶拿的文件中删除无效的 N-Quads

    我有一个包含 N Quads 的文件 使用 schema org 词汇表 我想使用 Apache Jena 的命令行工具将其加载到 TDB RDF 存储中 我正在使用的命令是 tdbloader loc
  • 从 RDF 到 html 的 XSLT 转换

    我正在尝试使用 XSLT 将 RDF 文件转换为 HTML 我正在使用我在网上找到的模板 http snippets dzone com posts show 1164 http snippets dzone com posts show
  • Sparql 查询永远运行

    我在耶拿执行 SPARQL 查询时遇到了困难 结果导致了我无法理解的行为 我正在尝试查询 Esco 本体 https ec europa eu esco download https ec europa eu esco download 我
  • 本体验证的耶拿规则

    我想验证本体并在有任何不正确的情况下抛出错误 我要做的最多的验证如下所示 我有一堂这样的课
  • RDF 读取/解析错误

    我有一些 RDF 文件 我想将其导入到 tripplestore AllegroGraph 中 但在第一个文件中 我收到 SAX 解析器错误 指出存在无法识别的字符 删除有问题的行后 一切都很好 然后我尝试使用 W3C RDF 验证器和带有
  • RDF 文件转换为 Excel 可读格式

    我下载了 ttl 格式的 rdf 文件 我是 RDF 新手 我想看看是否可以以某种简单的 txt csv 格式获取数据 有谁知道如何做到这一点 RDF 有一个非常简单的数据模型 它只是subject predicate object 您可以
  • 有修订的三重存储

    我需要存储 RDF 三元组 同时跟踪修改 有这项服务吗 或者 在使用上下文感知三重存储时如何跟踪修订 Edit 请注意 我不仅仅需要变更集 我还需要查看过去任何时间的三元组 我试图通过存储额外的三元组来解决这类问题 这些三元组描述了谁在何时
  • OWL 中表达式前面的列表?

    OWL 中表达式前面是否可以有一个列表 就像是 Dairy Egg Nut rdfs subClassOf FoodGroup or Dairy Egg Nut rdfs subClassOf FoodGroup 或者一般来说 是否存在针对
  • RDF和OWL工作流程问题

    我一直在通过 Protege 查看和使用 OWL 我想知道我是否正确理解 工作流程 和它的想法 从头开始构建数据库 使用 Protege 或等效工具为您的数据生成 OWL 本体 将此模式导出为 RDF 使用定义为三元组中的某些元素的类以及目
  • 如何推断两个人之间的财产是兄弟

    我需要推断一个人是另一个人的兄弟 如果他们有同一个父亲 所以 如果我有这个 巴特有父亲荷马 丽莎有父亲荷马 Because Bart and Lisa有同一个父亲 我想推断 丽莎有弟弟巴特 有没有什么方法可以利用任何属性特征来做到这一点 使
  • SPARQL - 查找具有最相似属性的对象

    假设有一个人的 RDF 数据库 每个人都有许多三元组来定义这个人的朋友 这么多 person x hasFriend otherPerson 如何找到拥有最相似朋友的人 我是 SPARQL 的新手 这似乎是一个非常复杂的查询 基本上 结果将
  • 通过计算属性来推断 OWL 中的知识

    我有一个包含 Person 和 City 类的本体 人们前往城市旅行 这种旅行在 TravelTo 对象属性中表示 我想添加一个 WorldTraveler 类 如果人们去过两个或更多城市 那么他们就是世界旅行者 我怎样才能在我的本体中做到
  • 三元组组合的递归 SPARQL 查询

    我使用onspy在Python中递归运行以下查询 SELECT c WHERE c rdfs subClassOf restriction restriction owl onProperty has part owl someValues
  • 从 RDF 节点拉出字符串

    在使用 Jena 的 SPARQL 查询时 我试图以更易读的格式获取数据 但是我不知道如何以正确的方式提取数据 就目前而言 输出是 http www w3 org TR 2003 PR owl guide 20031209 wine Sau
  • W3C 验证器无法处理 RDF/XML

    我正在尝试描述一个非常基本的地铁火车站地图 其中包含站点和时间 这个 RDF 到 Turtle 转换器 http rdf translator appspot com 可以解析我的 XML 但 W3C 验证器抛出 Error Your do
  • 什么是适合 .net 的优秀 RDF 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以处理 RDF 和 OWL 数据的库 到目前为止我已经发现 semweb http razor occams info c
  • 概念数据建模:RDF 是正确的工具吗?其他解决方案?

    我正在规划一个系统 该系统结合了各种数据源 并允许用户对这些数据源进行简单的查询 系统的一部分需要充当抽象层 了解所有连接的数据源 用户不应该 需要 了解底层数据 提供者 数据提供者可以是任何东西 关系 DBMS 错误跟踪系统 气象站 它们
  • SPARQL 查询在 Fuseki 中有效,但在 Jena TDB 中无效

    我将数据组织在多个图表中 保存三元组的图表很重要 数据结构很复杂 但可以简化如下 我的商店包含蛋糕 其中有不同蛋糕类型的层次结构 所有子类
  • 为什么 RDF 中对对象使用代码而不是字符串?

    例如 entity f06574 rdfs label Orioles 或者这样的格式 tt0268252 a Movie 在任一情况下 f06574 and tt0268252是代码 而不是实体或实例的实际字符串 原因之一可能是因为同一个
  • 解析 SPARQL 查询中 AltLabel 的返回值

    在如下所示的 Wikidata SPARQL 查询中 我希望能够使用自定义分隔符作为返回值 placeOfBirthAltLabel 问题是下面的一些值 placeOfBirthAltLabel包含逗号 例如 纽约 的同义词包括作为单个条目

随机推荐

  • 如何启用 mongodb cli 漂亮打印? - db.col.find().pretty() 不工作

    使用 mongo v2 4 5 shell db col find pretty 在 osx 控制台或 linux ubuntu 12 04 bash 上都不能很好地打印 使用和不使用 Pretty 的输出没有差异 gt db people
  • 使用 C# 填充引导下拉列表

    如何从代码隐藏填充引导下拉列表 现在我正在尝试这个 HtmlGenericControl li for int x 3 x lt 10 x li new HtmlGenericControl li li Attributes Add cla
  • 在 TypeScript 中将 JSON 文件导入为 const

    我想从数组元素的属性创建一个联合类型 如果数组是内联的 那么使用常量断言就非常简单 const arr name One name Two as const type name typeof arr number name name One
  • ply lexmatch 正则表达式与通常的 re 有不同的组

    我正在使用 ply 并注意到存储在 t lex lexmatch 中的令牌 re 匹配与 re 模块以通常方式定义的 sre pattern 之间存在奇怪的差异 组 x 似乎偏离了 1 我定义了一个简单的词法分析器来说明我所看到的行为 im
  • 查找邮政编码指定距离内的所有邮政编码

    我知道这个问题听起来像是这里几个问题的重复 但这些问题都没有回答我想要的 我有兴趣知道是否有人知道如何在指定邮政编码的半径内找到其他邮政编码 我有带有纬度和经度的邮政编码数据库 但我不知道如何在 VB net 中执行此操作 例如 90069
  • WebAPI 混合隐式流程和客户端凭证流程

    我有一个 WebAPI 解决方案 可以通过 Authorize 属性保护其控制器方法 它验证给定用户是否具有适当的角色 这些角色基本上是来自 IdentityServer3 的声明 有多个单页应用程序客户端与此 WebAPI 交互 并且使用
  • x509 Go 包 - ParsePKIXPublicKey 是 DER 还是 PEM?

    我正在尝试获取 rsa PublicKey 的对象 并且执行了以下步骤 BEGIN RSA PUBLIC KEY END RSA PUBLIC KEY package main import crypto rand crypto rsa c
  • 浏览器自动填充选项与角度材质自动完成选项重叠

    在有角度的材料中 材料自动完成工作正常 但浏览器自动填充选项与材料自动完成弹出窗口重叠 如何在不关闭浏览器自动填充的情况下关闭特定应用程序的自动填充 附参考图片 它也工作
  • Django 1.8:删除迁移文件夹后未检测到迁移

    我不小心删除了 migrations 文件夹 现在 python manage py makemigrations 无法检测到我的模型中的更改 我该怎么办 shubham shubham PC Documents try ecommerce
  • 片段包接收空值

    我有两个片段 我想将数据从一个片段传递到另一个片段 该捆绑包在发送时具有第一个片段的值 但不在另一个片段中接收 以下是代码 第一个片段 public View onCreateView NonNull LayoutInflater infl
  • TomEE CDI @Inject NullPointerException

    我试图让 CDI 在我的应用程序中工作 但是当我这样做时 我只得到 NullPointerExceptions 当正常实例化 playlistService 时 它 工作得很好 但是当我尝试使用 CDI 时 它就不再工作了 服务器能够启动
  • 让 2 个不同的父实体通过 JPA 中的 @OneToMany 引用子实体

    我有一个有点奇怪的问题 我不知道JPA是否支持这个 我有一个 Entity Child和另外两个实体 Entity Parent1 and Entity Parent2 我想做的是有一个 OneToMany父母和孩子之间的关系 以及另一个
  • 使用 Google datalab 读取文件

    我正在尝试使用 Google Datalab 读取 ipython 笔记本中的文件 基本的 pd read csv 因为我找不到文件的路径 我把它放在本地 并将其上传到谷歌云存储的一个桶中 我运行了以下命令来了解我在哪里 os getcwd
  • 调用外部意图(相机)时调试器断开连接

    我正在尝试调试我的应用程序 因为从我调用相机意图到拍摄照片时发生了一些事情 并且我的应用程序在返回时强制关闭 问题是 当调用相机意图时 调试器会立即断开连接 并且我无法再调试我的应用程序 我正在设备上调试 而不是模拟器上 我在谷歌中发现了这
  • 将图像添加到 JavaFX 特定位置的按钮

    当我向按钮添加图像和文本时 默认情况下元素是水平设置的 如何更改此行为以在图像下获取文本 Set the 内容显示属性 http docs oracle com javafx 2 api javafx scene control Label
  • gitk 中“标记此提交”是什么意思?

    使用 gitk 时 可以在日志窗格中选择提交 右键单击上下文菜单会提供 标记此提交 那有什么作用 查看以下选项 返回标记 找到它的后代并标记 与标记的提交进行比较
  • iOS 8 + 交互式过渡 + 显示的导航栏 = 损坏?

    我们正在尝试在我们的应用程序中添加两个视图之间的交互式过渡 我们可以让它在 iOS 7 或 iOS 8 上正常工作不显示导航栏 但是 我们需要显示一个导航栏 为了演示我们遇到的 一些 问题 我创建了一个小型原型 屏幕截图如下所示 我尝试了
  • 限制 unserialize() 返回数组?

    有没有办法限制 PHP 的 unserialize 只解析数组 出于安全原因 假设在未序列化的对象中有一个邪恶的 unserialize 魔术方法 我不想调用 有没有办法限制 PHP 的 unserialize 只解析数组 出于安全原因 假
  • Scala Future 带有过滤器以供理解

    在下面的示例中我得到了异常java util NoSuchElementException Future filter predicate is not satisfied 我想要结果Future Test2 当检查if i 2 失败 如何
  • 如何将关系型数据库映射到OWL?

    我正在尝试将关系数据库映射到 OWL 这是我的 2 张桌子 学生 student id student name course id 课程 课程ID 课程名称 id name course id 1 Adam 5 2 Michael 2 c