RDF 文件转换为 excel 可读格式
RDF file to excel-readable format
我下载了一个 .ttl 格式的 rdf 文件 - 我是 RDF 的新手,我想看看我是否能以某种简单的 txt/csv 格式获取数据。有人知道怎么做吗?
RDF 有一个非常简单的数据模型:它只是 subject
predicate
object
。您可以通过将文件转换为 n-triples
:
来查看这一点
$ rdfcopy myfile.ttl # apache jena
$ rapper -i turtle myfile.ttl # rapper (part of librdf)
但这是有限的。假设您从漂亮的 turtle 文件开始:
@prefix ex: <http://example.com/>
<Brian> ex:age 34 ;
ex:name "Brian Smith" ;
ex:homepage <http://my.name.org/Brian> .
<Delia> ex:age 45 ;
ex:name "Delia Jones" ;
ex:email <mailto:delia@deliajones.com> .
结果是:
<file:///tmp/Delia> <http://example.com/email> <mailto:delia@deliajones.com> .
<file:///tmp/Delia> <http://example.com/name> "Delia Jones" .
<file:///tmp/Delia> <http://example.com/age> "45"^^<http://www.w3.org/2001/XMLSchema#integer> .
<file:///tmp/Brian> <http://example.com/homepage> <http://my.name.org/Brian> .
<file:///tmp/Brian> <http://example.com/name> "Brian Smith" .
<file:///tmp/Brian> <http://example.com/age> "34"^^<http://www.w3.org/2001/XMLSchema#integer> .
换句话说,所有内容都减少到三列。
您可能更喜欢 运行 一个简单的 sparql 查询。它将为您提供更有用的表格结果:
prefix ex: <http://example.com/>
select ?person ?age ?name
where {
?person ex:age ?age ;
ex:name ?name .
}
运行 使用 apache jena 的 arq:
$ arq --data myfile.ttl --query query.rq
---------------------------------
| person | age | name |
=================================
| <Delia> | 45 | "Delia Jones" |
| <Brian> | 34 | "Brian Smith" |
---------------------------------
这可能更有用。 (您也可以通过添加 --results csv
来指定 CSV 输出)。
(librdf 等价物是 roqet query.rq --data myfile.ttl -r csv
)
我下载了一个 .ttl 格式的 rdf 文件 - 我是 RDF 的新手,我想看看我是否能以某种简单的 txt/csv 格式获取数据。有人知道怎么做吗?
RDF 有一个非常简单的数据模型:它只是 subject
predicate
object
。您可以通过将文件转换为 n-triples
:
$ rdfcopy myfile.ttl # apache jena
$ rapper -i turtle myfile.ttl # rapper (part of librdf)
但这是有限的。假设您从漂亮的 turtle 文件开始:
@prefix ex: <http://example.com/>
<Brian> ex:age 34 ;
ex:name "Brian Smith" ;
ex:homepage <http://my.name.org/Brian> .
<Delia> ex:age 45 ;
ex:name "Delia Jones" ;
ex:email <mailto:delia@deliajones.com> .
结果是:
<file:///tmp/Delia> <http://example.com/email> <mailto:delia@deliajones.com> .
<file:///tmp/Delia> <http://example.com/name> "Delia Jones" .
<file:///tmp/Delia> <http://example.com/age> "45"^^<http://www.w3.org/2001/XMLSchema#integer> .
<file:///tmp/Brian> <http://example.com/homepage> <http://my.name.org/Brian> .
<file:///tmp/Brian> <http://example.com/name> "Brian Smith" .
<file:///tmp/Brian> <http://example.com/age> "34"^^<http://www.w3.org/2001/XMLSchema#integer> .
换句话说,所有内容都减少到三列。
您可能更喜欢 运行 一个简单的 sparql 查询。它将为您提供更有用的表格结果:
prefix ex: <http://example.com/>
select ?person ?age ?name
where {
?person ex:age ?age ;
ex:name ?name .
}
运行 使用 apache jena 的 arq:
$ arq --data myfile.ttl --query query.rq
---------------------------------
| person | age | name |
=================================
| <Delia> | 45 | "Delia Jones" |
| <Brian> | 34 | "Brian Smith" |
---------------------------------
这可能更有用。 (您也可以通过添加 --results csv
来指定 CSV 输出)。
(librdf 等价物是 roqet query.rq --data myfile.ttl -r csv
)