![](/img/trans.png)
[英]What is the difference between “someValuesFrom” and “allValuesFrom”?
[英]What is the main difference between instances and sub-classes?
这个问题是关于本体论的,我正在实施一个关于无线传感器作为设备的潜在物理攻击的本体论。
我创建了 class Modification_Attack ,意思是在传感器本身进行修改的攻击。 我创建了Programming_Modification作为这个 class 的实例,这是合乎逻辑的,它是一个子类更好还是既不是实例也不是子类更好?
实例和子类之间的主要区别是什么?
这个问题并不是OWL本体真正独有的。 它出现在面向对象的程序设计和数学的集合论中。 一个类是其成员的集合。 例如,
人≡{人1 ,人2 ,…}
假设您还有另一个课程:
TallPerson≡{人63 ,人102 ,…}
如果A的每个元素也是B的元素,则A类是B类的子类:
(A⊆B)≡(x∈A→x∈B)
因此,例如,如果TallPerson的每个成员也是Person的成员,则TallPerson是Person的子类。
我创建了Modification_Attack类,这意味着可以在传感器本身中进行修改的攻击。我创建了Programming_Modification作为此类的实例,这是逻辑上的吗,它是更好的子类,还是既不是实例又不是子类?
这是您需要做出的选择。 这实际上取决于上下文以及打算如何使用本体。 如果您正在观察狂野的攻击并尝试对其进行分类,则可能需要一个子类,但是您将需要有Programming_Modification的 实例 。 也就是说,您将需要以下内容:
Programming_Modification≡{攻击24 ,攻击89 ,…}
但是,如果您还有其他用例,那么您想将Programming_Modification视为单个实体,那么将其作为一个个体可能会更有意义。
我一直在思考同样的问题。 而且我认为同一事物既可以是实例又可以是子类,这取决于您是否打算在概念上使用它,这可以简化为您是否会使用the或a来描述它。
比如我在做一个materials本体,其中主要的class就是Material
。 一种特殊类型的材料是Steel
。 如果我说钢,那么steel
就是Material
的一个实例。 如果我说钢,那么Steel
是Material
的子类。 此外, steel
是Steel
的一个实例。 并且给它一些有意义的标识符会更合适,比如steel-1
。
无论您是将术语用作概念性的 class 还是用作该 class 的某个实例的名称,这一切似乎都已解决。在您的情况下,我认为说Programming_Modification
是一个子类可能更合适,因为您可能拥有您可以将许多此类修改称为第first Programming_Modification
或第二second Programming_Modification
。 如果您有解决方案,很想看看您的想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.