opencaesar / oml

Ontological Modeling Language (OML)
https://opencaesar.github.io/oml/
Apache License 2.0
24 stars 4 forks source link

class expressions in OML #70

Open StevenJenkinsJPL opened 3 years ago

StevenJenkinsJPL commented 3 years ago

User Story

As a vocabulary developer, I would like to use class expressions to express semantics more precisely.

Detailed Description

Case I

If hasLevel is a string-valued scalar property and System is an aspect or concept, the OML notation

    aspect System [
        restricts scalar property hasLevel to "system"
    ]

ensures that every individual of type System will have "system" as the value of hasLevel. There is no notation, however, to express the converse, i.e., that every individual with hasLevel "system" is a System.

Case II

The OML notation

aspect SubsystemOrAbove
aspect System :> SubsystemOrAbove
aspect Subsystem :> SubsystemOrAbove

indicates that SubsystemOrAbove is a superclass of both System and Subsystem (and consequently of their union). There is no notation, however, to say that SubsystemOrAbove is the union of System and Subsystem.

Discussion

We should consider adding support for the full range of class expressions in OWL 2. We might not allow anonymous expressions every place OWL 2 does (e.g., property domains), but they are useful for range restrictions.

Acceptance Criteria

Sub-task List