gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:24:09 24 4
gpt4 key购买 nike

我正在(想做)一些有关链接开放数据集的实验,尤其是那些由政府推出的实验。

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

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

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

我正在使用 Java,因此首选 JAVA API。

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

我敢肯定,从现在起四天后,这个问题会显得相当愚蠢,但目前我对如何继续感到有些困惑。

最佳答案

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

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

假设您有来自 UK Government schools dataset 的学校数据(为简洁起见使用 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 end-point 中查询该数据,或者您可以下载数据并将其存储在本地您自己的三元组存储中。无论哪种方式,您都可以完全自由地添加对用户有用的额外信息。例如:

@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 .

关于mysql - 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com