RDF和RDFS是两个单独的文件吗?

时间:2018-04-10 13:33:03

标签: rdf rdfs

在编写RDF和RDFS时,您是否应该创建一个涵盖两者的单个文档?或创建两个单独的文件?与xml和xmls类似。

3 个答案:

答案 0 :(得分:3)

任何一种方法都可以,这完全取决于您自己的偏好。实际上,您可以根据需要在一个,两个或更多文件之间拆分RDF(S)数据。

要注意的一些事项:对于小/简单的数据集,将所有内容放在一个文件中可能会更方便,但是一旦开始使用更大的模式(或更多的实例数据),可能会有一些分离处理数据更灵活。

答案 1 :(得分:3)

我认为这实际上归结为可重用性问题。例如,目前你有:

  • 甲。架构
  • B中。一些实例数据的集合

鉴于你有这两件事,你有两个选择:

  • X。具有架构(+)和实例数据的单个文档
  • 两份文件:
    • Y.1一个用于架构(**)
    • Y.2一个实例数据集合

现在,如果希望将来有另一个实例数据集合,这与第一个不同,那么有两个选项:

  • 两个文件:
    • X.1具有架构(+)和第一个实例数据集合
    • X.2一个具有模式(+)和第二个实例数据集合
  • 三个文件:
    • Y.1 with schema(**)
    • Y.2第一个实例数据集合
    • Y.3第二个实例数据集合

如果你采取第二种方法,你最终会得到三个文件,但标有(**)的文件会从第一个文件中继承,你不必担心它会保持同步。在第一种方法中,您最终需要确保标记为(+)的模式副本在两种情况下都相同,并且您在多个位置重复该信息。

在实践中,哪些更重要可能取决于您希望将来必须处理的内容。

答案 2 :(得分:2)

ABox vs. TBox

我认为你不是在询问RDF与RDF,而是关于ABox(断言组件)与TBox(术语组件)。

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <http://example.com/vocabulary/> .

# TBox
ex:Person rdf:type rdfs:Class .
ex:hasName 
  rdf:type rdf:Property ;
  rdfs:range rdfs:Literal .
  # not using rdfs:domain, because other things than ex:Person could have an ex:hasName

# ABox
<https://example.com/team/alice#i> 
  rdf:type ex:Person ;
  ex:hasName "Alice" ;
  rdfs:seeAlso <https://example.com/team/alice> .

如本例所示,两个部分(ABox和TBox)都可以使用两个词汇表(RDF和RDFS)。根据它们对RDF和RDFS的使用来区分这些语句是没有意义的。

单独的文件?

是否在同一文档中使用TBox和ABox主要取决于您的工作流程。选择更容易的事情。

拥有单独文件的可能原因:

  • 其他人可能希望将TBox中定义的术语用于自己的数据。他们可以使用您的TBox获取文档(例如,将其导入到他们的本体工具中),而无需获得ABox(他们可能甚至不感兴趣)。

    (反之亦然。有些人可能只对你的ABox感兴趣。)

  • 您的ABox可能会变得如此之大,以至于将它放在一个文档中已不再可行。不是在每个文档中重复TBox(不必要),或者不是仅在第一个文档中使用TBox(不一致),而是将TBox放在自己的文档中,将ABox放在多个文档中。

  • 如果您想为ABox和TBox使用不同的语法(无论出于何种原因)。