2016-10-27 4 views
1

Ich möchte die Basis-URL festlegen, wenn ich Daten in Fuseki mit tdbloader oder tdbloader2 laden. Momentan wird der lokale Pfad als Basis verwendet, was ich nicht möchte. Beispiel:Legen Sie die Basis URI beim Laden Triples mit Jena 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 . 
} 

Abfrageer:

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

Dies wird (1) nicht sehr sauber in der Datenbank zu haben, und (2) es Wartbarkeit führt Probleme, wenn ich ein bestimmtes Element abfragen möchte, wenn die Basis angegeben werden muss:

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 . 
} 

oder

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 . 
} 

Wie ich eine andere Base in tdbloader zum Beispiel <mydomain:myontology#> angeben?

Antwort

1

Geben Sie eine BASE oder @base Anweisung in die Daten ein. Auf diese Weise sind die Daten stabil - sie liefern die gleichen Tripel, wenn sie irgendwo verwendet werden.

oder bearbeiten Sie die Datei zu vermeiden ist:

cat "MyBase.ttl" "MyData.ttl" > D.ttl 
tdbloader --loc DB D.ttl 
Verwandte Themen