-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow cyclic dependencies in Concepts as synonym #999
Comments
Impact:
|
So what to do with
|
Hi Han, good questions! To start with, what to do with For the instances
Then what about
So it yields a nonempty list instead of a single Functions |
Makes sense. I recognize this from the OWL ontology language. “NOTE: If we wanted to "upgrade" an axiom of the form "A subClassOf B" to "A equivalentClass B" (meaning that the class extension of A is not just any subset, but in fact the same set as the class extension of B), we could add a second subClassOf axiom of the form (B subClassOf A), which by definition makes the two class extensions equivalent (and thus has the same meaning as "A equivalentClass B"). Such subClassOf "cycles" are explicitly allowed. As OWL is usable in a distributed environment, this can be a useful feature.” |
I have implemented a nice solution to this problem, and created pull request #1055 for it. Some choices I made in this implementation:
|
Great! I like this solution because it is upwards compatible and it maintains the rule in the metamodel that We will get some details to look after, which may pop up as issues in the future:
|
Aliassing of concept names now works and is merged into development. |
Problem
Ampersand-v3.17.2 and earlier prohibit cyclic dependencies in Concepts. Also, it prohibits multiple root concepts in a typology. However, as a user, I might have reasons to allow synonyms. For instance when combining different contexts (from different offspring) into a new context.
Solution intent
We could simply allow cyclic dependencies. All concepts in a cycle represent the same set of atoms, so effectively this means they will be synonyms of each other.
In the same effort, we can allow multiple roots (see issue #898). Note that this differs from allowing cyclic dependencies. It fits well in the philosophy of allowing things that have a reasonable interpretation. Nevertheless, a warning is in place, because sometimes people define multiple roots by mistake. The way to get rid of the warning is to define a concept for the union of the roots as described in issue #898.
The text was updated successfully, but these errors were encountered: