RDF资源中重复的名称空间(前缀)



我有一个RDF,其中包含我从数据模型生成的多个资源。因为每个资源都是单独添加(连接)的,所以我有多个前缀(在N3中)。它看起来像这样:

@prefix dc: <someURL>.
<someURL/Tony_Benn>
     dc:title "Tony Benn";
     dc:publisher "Wikipedia".
@prefix dc: <someURL>.
<someURL/Someone_Else>
     dc:title "Someone Else";
     dc:publisher "Wikipedia".

我正在使用Jena API来创建RDF,但是我已经在API周围编写了一个包装器来保持它的不连接。是否有更好的方法来解决这个问题,或者是否有方法删除重复的前缀?

如果您正在使用实用程序(例如,Jena的rdfcat来连接RDF文档,那么您就没有什么可担心的。前缀只是让读写变得更容易一些,但是支持rdf的工具并不在乎这些。如果能够使用基于文本的工具(即不支持rdf的工具)连接数据很重要,那么您可能应该使用N-Triples格式。很简单,只要

subject predicate object .

,每行一个三元组。由于没有提供前缀,所以文本连接可以简单地工作。N-Triples还有一个(更好的)特性,如果你需要分割一个文档,例如,为了分布式处理,你可以分割文件,只要你在换行处分割。对于N3、RDF/XML和其他更复杂的格式,这是不可能的。

谢谢@Joshua。我想了想。与其删除重复的条目,我认为最好一开始就不要它。我发现与其连接两个RDF文档,不如将各自的模型联合起来。因此,我是这样做的:

  • 将文档读入模型
  • 对模型进行合并。这可以使用union(Model Model)方法或更好的方法来完成
  • 读取,使用Read (.., . .)方法,将第一个RDF文件(因为我将其作为字符串,所以将其作为输入流读取)添加到模型中,并添加第二个文件中的语句。正如@Joshua在下面的评论中所建议的那样,它在内存使用方面效率更高。
  • 导出统一模型
  • 我发现这更容易,可预测和处理前缀更好。我也可以使用Notation3

    相关内容

    • 没有找到相关文章

    最新更新