在编写RDF和RDFS时,您是否应该创建一个涵盖两者的单个文档?或创建两个单独的文件?与xml和xmls类似。
答案 0 :(得分:3)
任何一种方法都可以,这完全取决于您自己的偏好。实际上,您可以根据需要在一个,两个或更多文件之间拆分RDF(S)数据。
要注意的一些事项:对于小/简单的数据集,将所有内容放在一个文件中可能会更方便,但是一旦开始使用更大的模式(或更多的实例数据),可能会有一些分离处理数据更灵活。
答案 1 :(得分:3)
我认为这实际上归结为可重用性问题。例如,目前你有:
鉴于你有这两件事,你有两个选择:
现在,如果希望将来有另一个实例数据集合,这与第一个不同,那么有两个选项:
如果你采取第二种方法,你最终会得到三个文件,但标有(**)的文件会从第一个文件中继承,你不必担心它会保持同步。在第一种方法中,您最终需要确保标记为(+)的模式副本在两种情况下都相同,并且您在多个位置重复该信息。
在实践中,哪些更重要可能取决于您希望将来必须处理的内容。
答案 2 :(得分:2)
我认为你不是在询问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使用不同的语法(无论出于何种原因)。