2016-10-27 109 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 
相關問題