我该在哪里测试用SPARQL编写的RDF查询?

22

我是一个语义化Web技术的初学者,我的问题可能很基础,但我真的卡在这里了。我有一个RDF文件,是从一个XML文件中创建的,并使用w3.org RDF VALIDATOR进行了验证。我的问题是如何使用SPARQL在我的RDF文档上运行查询。

在线资源http://demo.openlinksw.com/sparql无法使用,我不知道该如何获取相关信息。


2
下载 Apache Jena 的副本并使用它。 - bmargulies
2个回答

21

您可以使用Fuseki来建立自己的本地SPARQL端点。Fuseki是Apache Jena项目的一部分,但也可以作为独立应用程序下载(在上面的链接中)。

使用Fuseki,您可以执行以下操作:

  1. 加载本地RDF数据集
  2. 使用该数据集
    • 将此数据公开为通过http://localhost:3030/(默认情况下)的SPARQL端点
    • 使用位于http://localhost:3030/sparql.html基于Web的查询表单

这意味着您可以使用Fuseki仅使用Web表单查询数据集,也可以使用任何通过http查询SPARQL端点的应用程序查询数据集。

个人而言,我目前正在开发一款通过SPARQL端点分析数据集的应用程序。我使用Fuseki设置了一个带有示例数据的本地SPARQL端点,以便运行和测试我的应用程序。


如何操作?

Fuseki的基本功能非常容易使用。以下行将启动服务器(SPARQL端点)。

java -jar fuseki-server.jar --config=yourConfig.ttl

文件 yourConfig.ttl 是一个 RDF 文件(采用 turtle 序列化格式)。要设置一个基本服务器,将您的 RDF 文件加载到内存中,请编写以下内容(至少替换数据集文件路径):

# Attention: I have omitted the @prefix declarations

[] rdf:type fuseki:Server ;
   fuseki:services (
 <#yourService>
) .

<#yourService> rdf:type fuseki:Service ;
fuseki:name                     "yourService" ;
fuseki:serviceQuery             "query" ;
fuseki:serviceReadGraphStore    "get" ;
fuseki:dataset                   <#yourDataset> ;
.

<#yourDataset>    rdf:type ja:RDFDataset ;
rdfs:label "a label for your dataset" ;
ja:defaultGraph 
  [ rdfs:label "yourDataset.rdf" ;
    a ja:MemoryModel ;
    ja:content [ja:externalContent <file:Path/To/yourDataset.rdf> ] ;
  ] ;
.


1
这个答案并没有完全解决问题。访问http://localhost:3030/会返回404错误。 - biogeek
如果数据量很大怎么办?运行Fuseki相当容易和直接。然而,将大量数据加载到Fuseki服务器总是很麻烦,我卡在了那个部分。 - Pedram
@Pedram 抱歉,我没有处理大量数据的经验。 - Thomas

4
有几个工具可用于此。当然,有像Apache Jena或OpenRDF Sesame(Java)或dotNetRdf(.Net)这样的RDF框架,只是其中之三。大多数(如果不是全部)都提供安装和入门指南。这些是强大的解决方案,如果您进一步使用SW技术并需要在RDF数据源之上构建自己的代码,则绝对需要它们。

但是,为了尝试一些简单的查询,也许可以尝试类似Sesame Windows Client(SWC)工具的东西。这是一个简单的图形化Windows桌面应用程序,您可以使用它创建存储库,在其中加载数据,然后进行SPARQL查询,而无需任何编程或高级配置(免责声明:我编写了此工具)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接