本体中范围和枚举之间的关系



所以我目前正在研究一个本体,它以类似于Schema.org (https://schema.org/Enumeration)中枚举设置的方式设置了EnumerationClass。

它有子类,我称之为ProgramTypeEnumeration和SubstanceTypeEnumeration。它们都定义了实例。假设ProgramTypeEnumeration有两个实例BasicProgram和AdvancedProgram。

还有一个名为hasProgramType的属性,它将AcademicClass类与ProgramTypeEnumeration中的程序类型联系起来。我的假设是,域将是AcademicClass,范围将是ProgramTypeEnumeration。

话虽如此,我的理解是枚举实际上是一个列表。它是正确的说,BasicProgram是一个实例的ProgramTypeEnumeration当BasicProgram不是一个列表?同样,我并不是说hasProgramType具有程序列表的实例范围,而是程序的实例范围。有一个类ProgramType是一个ProgramTypeEnumeration的一部分,然后有ProgramType是hasProgramType的范围会更好吗?

同样,更广泛地说,是否每个具有一定数量实例的有限类在技术上都是枚举的子类?一个班级是否"美国"State"是枚举的子类,如果它恰好有50个实例?邮政编码;是枚举的子类,因为它在技术上也有确切数量的实例?如何定义一个类是否是枚举?

编辑1:试图在这里提供一个更清晰的例子。

schema。org有一个枚举子类是MedicalSpecialty"(https://schema.org/MedicalSpecialty)。"MedicalSpecialty"具有医学专业(麻醉、心血管等)的实例。

在Schema.org中,属性"medicalSpecialty"(https://schema.org/medicalSpecialty)的范围包括"医疗专业";(枚举子类)。

两个基本问题:(1)拥有"医学专业"有什么好处吗?作为枚举子类,而不是枚举之外的子类?(2)枚举是一个包含列表的类,如果是这样,枚举的实例也不是一个列表,而不是一个单一的选项吗?(也就是说,"医疗专业"的例子不会;枚举本身是枚举吗?)

枚举的主要优点是,它使使用你的本体的每个人都清楚,一个类由一个名为的的有限列表组成。个人。对于您提到的MedicalSpecialty示例,您将看到Schema.org有一个"枚举成员"列表。

枚举和普通类确实非常相似。枚举和类都由个体(也称为实例)组成。不同之处在于,对于类来说,它可能包含的所有个体通常是未知的,但对于枚举来说,它是已知的。此外,类可以有有限个或无限个个体,而枚举具有有限个已知个体。

如果您有一个命名的个体列表,那么使用枚举是一个好主意。

回答你的问题:

(1)使用枚举的价值在于向用户明确属性的期望值,例如medicalspecialty属性。如果使用推理器或规则引擎,它们将能够在例如medicalspecialty属性被错误使用时拾取错误。

(2) Enumeration不是包含列表的类。相反,枚举是由命名的个体组成的类。因此,枚举的实例是一个个体,就像类的实例是一个个体一样。Enumeration的实例不是Enumeration,而是一个个体。

如果这可能有帮助,我在我的博客上写了关于Schema.org和OWL的文章。

最新更新