重用本体中的现有类



我设计自己的本体,并重用其他本体中的项。将另一个本体中的项子类化到现有本体下是好的还是坏的做法?或者我应该定义自己的子类吗?

我的本体中的类

<http://schema.org/Place> a owl:Class .
<http://OtherOntology/Area> a owl:Class;
rdfs:subClassOf <http://schema.org/Place> .
<http://MyOntology/TinyPlace> a owl:Class;
rdfs:subClassOf <http://schema.org/Place> .

RDF数据通常是关于";事实";由特定图断言,包括关于特定本体的事实。在这个级别上,词汇表项是哪个本体的一部分并不重要,因为URI是不相关的,并且所有本体都停留在"中;您的";图表

然而,当您的本体成为链接数据网络的一部分时,情况就不同了。关于你应该发表什么,没有特别的指导方针,但我认为一个好的经验法则是";不要为他人说话";,即,不要在与数据集中实体的事实相同的地方发布其他数据集中实体的事实(具体地说,三元组中至少有一个节点应该是"你的")。这与以下部分有关:

<http://OtherOntology/Area> a owl:Class;
rdfs:subClassOf <http://schema.org/Place> .

您正在陈述一些关于外来类的内容,但如果您的本体的用户或导入者对此有不同的想法呢?有些词汇没有唯一的OWL本体,因此在某些情况下可能会出现矛盾。这里可能很好,但你永远不能确定。

如果可能的话,最好使用owl:imports来导入http://OtherOntology/,假设它是使用OWL发布的。如果没有,您可以自己单独发布相关部分,然后从外部导入,或者使用rdfs:isDefinedBy引用该文档。

但是,我们鼓励您使用现有的类来实现最大的互操作性,因此使用http://schema.org/Placehttp://OtherOntology/Area是完全可以的。

相关内容

  • 没有找到相关文章

最新更新