Skip to content

Question: How to correctly create/preserve cardinality constraints on ObjectProperties using template? #1133

@andreas-w-m

Description

@andreas-w-m

Dear ROBOT team,

We need to create OWL files from UML class diagrams, which contain all taxonomy, partonomy and topological relationships with inverses and cardinalities. The UML tool generates Excel files, which can easily processed to be usable for ROBOT template. Hence, we use a staged process, which

  1. creates the classes via a simple "ID | SC %" template, followed by
  2. creating the ObjectProperties with their domains/ranges via a template "ID | TYPE | DOMAIN | RANGE".

Now, since the UML-to-Excel export contains also distinct columns for the specified min/max cardinalities, these shall be also properly set in a third step, so that restrictions like

Class: <Process>
SubClassOf: 
   (<contains> min 1 <Task>) and (<contains> max 5 <Task>)

are correctly inserted. In this example, both "Process" and "contains" have been successfully created als Class and ObjectProperty, respectively, in steps 1 and 2.

However, there are several issues with the third step:

  • In the UML-to-Excel export there are cases where the same ObjectProperty comes in multiple rows with identical domain but different ranges. Hence, in such cases the range should become a union, however, ROBOT template always creates intersections. Is there a way to change this behavior?
  • Even when using manually created subclass axioms in the template, e.g., "(contains min 1 Task)", attempting to merge this with the previously created valid outputs from steps 1 and 2 either with template or with merge in any combination always results in "Task" being redeclared as a Datatype instead of the Class it has actually been created as before (the owl:Restriction then gives an owl:onDataRange instead of owl:onClass). Protégé also gives a punning warning here. How can this be avoided, so that the previous class definitions and object properties are correctly used?
  • Is there a way to set up a template that permits directly using the numerical contents for the cardinalities in creating the correct Manchester syntax for the restrictions and involved entities, e.g. from Excel "From-Class | Restricted-Property | To-Class | Min-Card. | Max-Card."?

Thank you in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions