2016-10-27 105 views
1

我想在使用tdbloadertdbloader2将数据加载到Fuseki时设置基URL。目前本地路径被用作基地,这不是我想要的。例如:在使用Jena加载三元组时设置基URI tdbloader

# mytriple.ttl 

@prefix owl: <http://www.w3.org/2002/07/owl#> . 
<#myitem> a owl:Thing . 

./tdbloader --loc /path/to/database /path/to/local/file/mytriple.ttl

# sparql query example 

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT ?subject ?predicate ?object 
WHERE { 
    ?subject ?predicate ?object . 
    ?subject a owl:Thing . 
} 

查询结果:

<file:///path/to/local/file/mytriple.ttl#myitem> rdf:type owl:Thing

这是(1)不是很干净,以在数据库中,(2)其导致可维护性当需要指定基准时,当我想查询特定项目时出现问题:

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT ?subject ?predicate ?object 
WHERE { 
    ?subject a owl:Thing . 
    <file:///path/to/local/file/mytriple.ttl#myitem> ?predicate ?object . 
} 

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
BASE <file:///path/to/local/file/mytriple.ttl> 
SELECT ?subject ?predicate ?object 
WHERE { 
    ?subject a owl:Thing . 
    <#myitem> ?predicate ?object . 
} 

我怎么可以指定tdbloader不同的基础,例如<mydomain:myontology#>

回答

1

将一个BASE@base声明放入数据中。这样数据是稳定的 - 它将在任何地方使用时提供相同的三元组。

或避免编辑该文件是:

cat "MyBase.ttl" "MyData.ttl" > D.ttl 
tdbloader --loc DB D.ttl 
相关问题