RDF和RDFS是两个独立的文档吗?

4
当编写RDF和RDFS时,是应该创建一个覆盖两者的单一文档?还是创建两个独立的文档?与XML和XSD类似。

2
你能否通过清晰的用例或示例来澄清你的问题? - Nico Haase
@nico 我的任务是使用RDF和RDFS来建模数据库。我不确定在建模数据库时是否应该为RDF创建一个单独的文件,另一个文件用于RDFS,还是应该将两者都包含在同一个文件中。 - Chris
3个回答

3

任何一种方法都可以,这只是取决于您自己的偏好。实际上,您可以根据自己的需要将RDF(S)数据分为一个、两个或多个文件。

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


3
我认为这实际上归结为可重用性的问题。例如,目前你有:
A. 一个模式
B. 一些实例数据的集合
鉴于你拥有这两个东西,你有两个选择:
X. 一个带有模式(+)和实例数据的单个文档
Y. 两个文档:
Y.1 带有模式(**)
Y.2 包含实例数据的集合
现在,如果你期望未来有另一个与第一个不同的实例数据集合,那么你有两个选择:
两个文档:
X.1 其中一个包含模式(+)和第一个实例数据集合
X.2 其中一个包含模式(+)和第二个实例数据集合
三个文档:
Y.1 带有模式(**)
Y.2 带有第一个实例数据集合
Y.3 带有第二个实例数据集合
如果采用第二种方法,则会得到三个文档,但标记为(**)的文档将从第一个文档继承,并且您无需担心将其与其他文档保持同步。在第一种方法中,您需要确保标记为(+)的模式副本在两种情况下是相同的,并且您正在多个位置复制该信息。
在实践中,哪种方法更重要可能取决于您未来需要处理的内容。

2

ABox与TBox

我认为你不是在问RDF和RDFS的区别,而是在问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放在自己的文档中,将ABox放在多个文档中,而不是在每个文档中重复您的TBox(不必要)或仅在第一个文档中拥有它(不一致)。

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


1
我还要补充,从RDFS转向OWL时,有时不可能将“TBox”和“ABox”保持为单独的文档。例如::Alcohol owl:oneOf(:Vodka :Champagne :Bourbon :Tequila :Whiskey) - Stanislav Kralin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接