使用 Jena tdbloader 加载三元组时设置基本 URI
Set the base URI when loading triples using Jena tdbloader
我想在使用 tdbloader
或 tdbloader2
将数据加载到 Fuseki 时设置基数 url。目前本地路径用作基础,这不是我想要的。示例:
# 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#>
?
在数据中放入 BASE
或 @base
语句。这样数据就稳定了——在任何地方使用时它都会提供相同的三元组。
或者避免编辑文件是:
cat "MyBase.ttl" "MyData.ttl" > D.ttl
tdbloader --loc DB D.ttl
我想在使用 tdbloader
或 tdbloader2
将数据加载到 Fuseki 时设置基数 url。目前本地路径用作基础,这不是我想要的。示例:
# 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#>
?
在数据中放入 BASE
或 @base
语句。这样数据就稳定了——在任何地方使用时它都会提供相同的三元组。
或者避免编辑文件是:
cat "MyBase.ttl" "MyData.ttl" > D.ttl
tdbloader --loc DB D.ttl