0

我有一个 Tera Byte 大文件。我想将它从nt转换为n3。这样做的原因是,我有一个大文件,由于附加的命名空间而占用了大量空间:

# <1>
<file:///home//uniprot/uniprot.rdf>    <http://www.w3.org/2002/07/owl#imports> <http://purl.uniprot.org/core/> .
# <2>
<http://purl.uniprot.org/uniprot/Q6GZX4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.uniprot.org/core/Protein> .
# <3>
<http://purl.uniprot.org/uniprot/Q6GZX4> <http://purl.uniprot.org/core/reviewed> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .

现在我想以压缩形式有效地存储这个文件:

@fileuniprot: <file:///home//uniprot/>.
@owl: <http://www.w3.org/2002/07/owl#>.
@purlUniprot: <http://purl.uniprot.org/>.
@rdfs: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@xsd: <http://www.w3.org/2001/XMLSchema#>.
@xsd: 
# <1>
fileuniprot:uniprot.rdf    owl:imports purlUniprot:core .
# <2>
purlUniprot:uniprot/Q6GZX4 rdfs:type purlUniprot:core/Protein .
# <3>
purlUniprot:Q6GZX4 purlUniprot:core/reviewed "true"^^ xsd:boolean .

即我不希望命名空间与相应的三元组相连。虽然我想保留评论。有没有可能这样做。如果是,那么有人可以建议一个有效的工具来做同样的事情。

如果我能在 python 或 java 中找到一些适用于 linux 的工具,那就太好了?我已经手动完成了上述操作,如果可以自动完成转换,那就太好了。

4

1 回答 1

1

您可能需要考虑hdt以获得非常好的压缩。您可以将 uniprot 文件改回使用 gzip 压缩的 rdf/xml 并将大小减少至少 25 倍。(bzip2 将给出 30)我建议使用 pbzip2 以获得最佳效果。

如果你确实想使用海龟语法进行一些压缩,那么使用来自sesame RIOjena RIOT或来自librdf的 rapper 的预先存在的代码

问题是您为什么要以 nt 开头的文件?

您实际考虑使用的文件格式称为turtle。N3 是海龟加规则,这个规则部分实际上并没有在 UniProt 数据集中使用,并且不属于 RDF/triples。

rapper -i ntriples -o turtle ~/uniprot.nt  > ~/uniprot.ttl

忘掉关于海龟的N3阅读吧。

于 2013-10-30T15:30:20.797 回答