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

时间:2013-05-23 10:32:09

标签: rdf jena prefixes n3

我有一个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的包装器来保持它不相交。有没有更好的方法来解决这个问题或有没有办法删除重复的前缀?

2 个答案:

答案 0 :(得分:1)

如果您正在使用实用程序(例如,Jena的rdfcat来连接RDF文档,那么您无需担心。前缀只会使读取和写入更容易,但RDF感知工具不会“如果能够使用基于文本的工具(即不支持RDF的工具)连接数据很重要,那么你应该使用N-Triples格式。这很简单,只是< / p>

subject predicate object .

每行一个三元组。由于没有前缀的规定,文本连接只是起作用。 N-Triples还具有(甚至更好的)功能,如果您需要拆分文档(例如,用于分布式处理),只要您在换行符处拆分,就可以拆分文件。使用N3,RDF / XML和其他更复杂的格式是不可能的。

答案 1 :(得分:1)

谢谢@Joshua。我想过这个问题。而不是删除重复的条目,我认为最好不要在第一时间。我没有将两个RDF文档连接起来,而是发现将各个模型联合起来更好。因此,这就是我所做的:

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