为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

2024-03-18

我正在(想做)一些链接开放数据集的实验,特别是政府推出的实验。

我有一个 RDBMS(更具体地说是 MySQL)。我设计它时考虑了语义网络的想法,即我将信息存储为对象、谓词和定义对象的类。反过来,所有对象通过主语 --> 谓词 --> 宾语形式的语句相互关联(其中主语来自对象表)。

我希望能够从我的应用程序查询其他 RDF 三元组存储,并让其他三元组存储查询我的数据。是否有可能“设置一些东西”以使这成为可能?

我看过耶拿。使用 Jena 似乎意味着我必须将它作为存储应用程序而不是 MySQL - 唯一的问题是我包含了一个称为类别的新概念(我不认为它是语义网络语言的一部分)。我将使用类别来帮助显示信息(它们没有任何其他含义),但使用 Jena 似乎意味着我无法在类别下组织谓词以方便查看。

我使用的是 Java,所以首选 JAVA API。

我也可能误解了耶拿的目的,也许这有用,但我不确定如何用。

我确信四天后这个问题会显得相当愚蠢,但目前我对如何继续感到有些困惑。


我不确定你所说的“一个称为类别的新概念”是什么意思,也许你可以举个例子?

如果您的意思是您想要添加额外的元数据,也许作为在用户界面中组织信息的一种方式,则无需扩展语义网络语言或存储系统 - 它们已经可以做您想做的事情。

假设您有一所学校的数据英国公立学校数据集 http://blogs.talis.com/n2/archives/818(为简洁起见,使用 Turtle 编码):

@prefix sch-ont:  <http://education.data.gov.uk/def/school/>.
<http://education.data.gov.uk/id/school/135412>
a sch-ont:School;
sch-ont:establishmentStatus 
    <http://education.data.gov.uk/def/school/EstablishmentStatus_Open>;
sch-ont:MSOA <http://statistics.data.gov.uk/id/msoa/E02000001>;
sch-ont:establishmentName "Guildhall School of Music and Drama";
...

您可以直接从以下位置查询该数据SPARQL 端点 http://services.data.gov.uk/education/sparql,或者您可以下载数据并将其本地存储在您自己的三重存储中。无论哪种方式,您都可以完全自由地添加对用户有用的额外信息。例如:

@prefix ankurs-app: <http://ankur.org/example/app/vocab/display#>.
<http://education.data.gov.uk/id/school/135412> 
        ankurs-app:category ankurs-app:wkdCool.

您可以将此新三元组存储在与下载数据相同的图表中,也可以将其存储在单独的命名图表中,以指示其信息与源数据具有不同的来源。不管怎样,从 Jena 以编程方式或通过 SPARQL 查询来查询它都很简单。

进行布局有效率的查询无模式的三重中心数据是一个经过充分研究的难题。大多数 RDF 平台(包括 Jena)都具有经过良好优化的代码,用于根据自己的数据库方案查询和更新三元组。您必须有充分的理由开始自己的关系表布局:)

如果您确实需要采用现有的关系表方案并将其映射到 Jena RDF 模型,请查看D2RQ http://www4.wiwiss.fu-berlin.de/bizer/d2rq/.

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

为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法 的相关文章

随机推荐

  • lua __pairs 的实际实现是什么?

    有谁知道 lua 5 2 的实际实现吗 元方法 pairs 换句话说 我如何实施 pairs作为元表中的元方法 因此它的工作原理与pairs 我需要覆盖 pairs并想跳过我在表中添加的一些虚拟变量 下面将使用元表元来显式提供pairs默认
  • 更改数组适配器中列表项的文本颜色

    我创建一个列表视图并在自定义对话框中实现该列表视图 该列表视图使用数组适配器 在我的数组适配器中 我使用自己的布局和所需的颜色 代码如下 listView new ListView context ArrayAdapter
  • PHP Printf 作为浮点精度

    我正在尝试使用 PHPprintf功能打印出用户的存储容量 完整的公式看起来像这样 echo printf 02f size 1024 1024 GB 鉴于 size 10 1024 1024 这应该打印出来 10 00 GB 但事实并非如
  • 读取 byte[] 历史队列

    我正在尝试编写一个我知道数组大小的字节数组 但是我无法解析结果数据 我正在使用以下代码 okAppender writeBytes b gt b write byteData and byte byteData new byte 500 o
  • 如何在phpmyadmin中导入大型sql文件

    我想导入一个大约 12 mb 的 sql 文件 但它在加载时引起问题 有没有办法在不分割sql文件的情况下上传它 尝试根据您的操作系统的口味从 mysql 控制台导入它 mysql u DB USER NAME p DB NAME lt d
  • Spring Boot:禁用特定 URL 的客户端身份验证

    我的配置中有以下配置application yml server address port 8443 sessionTimeout 30 ssl client auth need key store keyStore jks key sto
  • Xamarin iOS 通用链接支持 Twitter 身份验证

    所以 现在 Twitter 从 9 月 25 日开始支持通用链接 这意味着当 UIWebView 命中时https twitter com oauth authorize oauth token https twitter com oaut
  • 仅根据字段名称对类数组进行排序

    我有一个应用程序 用户向我提供字段名称 例如name or costInCents 我必须按该字段排序 我有办法保证字段名称是正确的 这个应用程序导致了我根本无法上课的复杂情况Comparable并实施具体的compareTo 因为自定义实
  • 为用户定义类型实现 ToOwned

    考虑以下示例代码 derive Clone struct DataRef lt a gt text a str derive Clone struct DataOwned text String 我要实施ToOwned for DataRe
  • 如何让 iPhone 应用程序用户提交崩溃报告? [复制]

    这个问题在这里已经有答案了 可能的重复 iPhone如何获取客户的崩溃日志 https stackoverflow com questions 3844482 iphone how to get crash log from custome
  • 在 JavaScript 中,当完成通过 new ActiveXObject 创建的对象后,我是否需要将其设置为 null?

    在 WSH 中运行并创建对象 例如 Scripting FileSystemObject 或任何任意 COM 对象 的 Javascript 程序中 完成后是否需要将变量设置为 null 例如 我建议这样做 var fso new Acti
  • 如何将开始按钮放在剪辑的中间

    我在以下位置找到了设计师页面http www videojs com http www videojs com 在那里 您可以将开始按钮的位置更改为剪辑的中间 但我无法在 video js 播放器上放置或使用此样式表 有人可以解释一下如何在
  • C++ 中获取用户输入未执行/跳过的代码

    在下面的代码中 当我尝试让用户输入他们的名字时遇到错误 我的程序只是跳过它并直接进行函数调用 而不允许用户输入他们的名字 尽管出现错误 我的程序仍在编译 我不确定出了什么问题 因为我是根据在这里找到的其他示例编写该部分的 有什么建议么 in
  • 使用 Moneta (JavaMoney) JSR 354 实现自定义货币金额格式

    我真的很困惑如何定制MonetaryAmountFormat使用 Moneta JSR 354 实现 我的目的是能够解析两者1 23 and 3 45 as MonetaryAmounts 这是我的单元测试 Test public void
  • 从 WidgetKit 小部件扩展检测应用程序启动

    点击 WidgetKit 小部件会自动启动其父应用程序 如何检测我的应用程序是否是从其 WidgetKit 小部件扩展启动的 我无法找到任何有关在应用程序中捕获此内容的文档AppDelegate and or SceneDelegate 要
  • 如何使用参数和 POST 方法重定向到外部 url?

    我想在提交到 Flask 中的操作 url 之前保存表单数据
  • 如何在android中打开图库中的一个特定文件夹?

    我使用下面的代码打开 Android 默认图库应用程序 它会打开 sdcard 下的所有图像文件夹 如何只打开一个特定文件夹 Intent intent new Intent Intent ACTION PICK android provi
  • 除非作为参数传入,否则无法添加快速路线

    我正在尝试创建映射其自己的路线的节点模块 我在下面提供了一个简化的示例 删除了返回的对象中映射的所有其他函数以及任何代码以简化示例 我最初的尝试是这样做 文件 web core js function initRoutes app var
  • 具有不同 uv 坐标的 OpenGL ES 1 多重纹理

    我需要使用多重纹理渲染一个对象 但两个纹理对于同一对象具有不同的 uv 坐标 一张是法线贴图 另一张是光照贴图 请提供与此相关的任何有用材料 在 OpenGL ES 2 中 无论如何你都会使用着色器 因此 您可以完全自由地使用您喜欢的任何纹
  • 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

    我正在 想做 一些链接开放数据集的实验 特别是政府推出的实验 我有一个 RDBMS 更具体地说是 MySQL 我设计它时考虑了语义网络的想法 即我将信息存储为对象 谓词和定义对象的类 反过来 所有对象通过主语 gt 谓词 gt 宾语形式的语