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

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

作者:互联网

我正在做(想做)一些关于开放式数据集的实验,特别是那些由政府提出的实验.

我有一个RDBMS(更具体地说是MySQL).我在设计时考虑了语义网络思想,即我将信息存储为定义对象的对象,谓词和类.反过来,所有对象彼此相关,尽管形式主题的陈述 – >谓词 – >对象(主题来自对象表).

我希望能够从我的应用程序中查询其他RDF三元组商店,并让其他三元组商店查询我的数据.有可能“设置一些东西”以便这可能吗?

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

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

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

我相信从现在开始的四天这个问题看起来很愚蠢,但此刻我对如何进行感到有些困惑.

解决方法:

我不确定你所说的“一个叫做类别的新概念”,或许你可以举个例子吗?

如果您想要添加其他元数据(可能是作为在用户界面中组织信息的一种方式),则无需扩展语义Web语言或存储系统 – 它们已经可以执行您想要的操作.

假设您有一个来自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查询查询它都很简单.

进行有效查询无模式三重中心数据的布局是一个经过充分研究且难以解决的问题.包括Jena在内的大多数RDF平台都具有优化的代码,用于从自己的数据库方案中查询和更新三元组.你必须有很好的理由来开始你自己的关系表布局:)

如果您确实需要采用现有的关系表方案并将其映射到Jena RDF模型,请查看D2RQ.

标签:mysql,sparql,semantic-web
来源: https://codeday.me/bug/20190730/1582429.html