rdf文件中的SPARQL嵌套元组
如何为包含此类元组的rdf文件编写SPARQLrdf文件中的SPARQL嵌套元组,rdf,sparql,Rdf,Sparql,如何为包含此类元组的rdf文件编写SPARQL 贝罗沃特拉斯-贝罗沃 520号。 420登。 17:15 13:20 对于具有元组的列表中的每一项,我希望获得属性的信息: j.0:DistricName j.0:moneyTwoDir j.0:moneyOneDir j.0:Hastinmestop,以及 j.0:Hastinmestart 虽然Turtle和SPARQL的语法不完全相同,但许多Turtle表达式适合作为SPARQL模式。如果我们稍微修改一下您的数据(使其成为完整的RDF文
贝罗沃特拉斯-贝罗沃
520号。
420登。
17:15
13:20
对于具有元组的列表中的每一项,我希望获得属性的信息:
j.0:DistricName
j.0:moneyTwoDir
j.0:moneyOneDir
,以及j.0:Hastinmestop
j.0:Hastinmestart
贝罗沃特拉斯-贝罗沃
520号。
420登。
17:15
13:20
使用Jena的rdfcat
工具,我们可以在Turtle中获得以下信息:
$rdfcat-out-Turtle data.rdf
@前缀rdf:。
, , , , , , , , , , .
“BEROVOTRANS-BEROVO”;
"13:20" ;
"17:15" ;
“420洞。”;
“520号。”。
果不其然,对应的SPARQL查询就是这样的:
前缀rdf:
选择?详细信息?名称?moneyTwoDir?moneyOneDir?timeStop?timeStart,其中{
?细节。
?详情
名称
?时间启动;
?时隙;
?moneyOneDir;
?moneyTwoDir。
}
如果需要,可以使查询更清晰一些:
前缀rdf:
前缀ex:
选择?详细信息?名称?moneyTwoDir?moneyOneDir?timeStop?timeStart,其中{
ex:BEROVO ex:destDetails?细节。
?详细信息,例如:发行商名称?名称;
例如:Hastinestart?timeStart;
ex:Hastinmestop?timeStop;
例:moneyOneDir?moneyOneDir;
例句:moneyTwoDir?moneyTwoDir。
}
结果如您所料:
$arq--data.rdf--query.sparql
---------------------------------------------------------------------------------------------------------------------
|详细信息|名称| moneyTwoDir | moneyOneDir | timeStop | timeStart|
=====================================================================================================================
|例如:0c64a8f2-fd39-4e9d-a03b-527359af8661 |“BEROVOTRANS-BEROVO”|“520个巢穴。”|“420个巢穴。”|“17:15”|“13:20”|
---------------------------------------------------------------------------------------------------------------------
虽然Turtle和SPARQL的语法不完全相同,但许多Turtle表达式适合作为SPARQL模式。如果我们稍微修改一下您的数据(使其成为完整的RDF文档),我们会得到:
贝罗沃特拉斯-贝罗沃
520号。
420登。
17:15
13:20
使用Jena的rdfcat
工具,我们可以在Turtle中获得以下信息:
$rdfcat-out-Turtle data.rdf
@前缀rdf:。
, , , , , , , , , , .
“BEROVOTRANS-BEROVO”;
"13:20" ;
"17:15" ;
“420洞。”;
“520号。”。
果不其然,对应的SPARQL查询就是这样的:
前缀rdf:
选择?详细信息?名称?moneyTwoDir?moneyOneDir?timeStop?timeStart,其中{
?细节。
?详情
名称
?时间启动;
?时隙;
?moneyOneDir;
?moneyTwoDir。
}
如果需要,可以使查询更清晰一些:
前缀rdf:
前缀ex:
选择?详细信息?名称?moneyTwoDir?moneyOneDir?timeStop?timeStart,其中{
ex:BEROVO ex:destDetails?细节。
?详细信息,例如:发行商名称?名称;
例如:Hastinestart?timeStart;
ex:Hastinmestop?timeStop;
例:moneyOneDir?moneyOneDir;
例句:moneyTwoDir?moneyTwoDir。
}
结果如您所料:
$arq--data.rdf--query.sparql
---------------------------------------------------------------------------------------------------------------------
|详细信息|名称| moneyTwoDir | moneyOneDir | timeStop | timeStart|
=====================================================================================================================
|例如:0c64a8f2-fd39-4e9d-a03b-527359af8661 |“BEROVOTRANS-BEROVO”|“520个巢穴。”|“420个巢穴。”|“17:15”|“13:20”|
---------------------------------------------------------------------------------------------------------------------
我可以在我的rdf数据上使用您的SPARQL,而不将其转换为Turtle吗?@vikifor Yes!我转换成了Turtle,因为Turtle语法更接近SPARQL三重模式,所以很容易基于数据的Turtle语法序列化构建SPARQL查询。Turtle和RDF/XML都是RDF的序列化,SPARQL引擎应该能够读取数据的RDF/XML序列化。我可以在我的RDF数据上使用您的SPARQL,而不将其转换为Turtle吗?@vikifor Yes!我转换成了Turtle,因为Turtle语法更接近SPARQL三重模式,所以很容易基于数据的Turtle语法序列化构建SPARQL查询。Turtle和RDF/XML都是RDF的序列化,SPARQL引擎应该能够读取数据的RDF/XML序列化。