Skip to content
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

[BUG] - missing support for key axioms involving object properties #89

Open
NicolasRouquette opened this issue Jan 12, 2022 · 0 comments

Comments

@NicolasRouquette
Copy link
Member

In OWL2-DL, key axioms can involve a combination of object and data properties.

OML 1.0.6 is currently limited to OML scalar properties.

https://github.com/opencaesar/oml/blob/master/io.opencaesar.oml.dsl/src/io/opencaesar/oml/dsl/Oml.xtext#L421

KeyAxiom:
	'key' properties+=[ScalarProperty|Ref] (',' properties+=[ScalarProperty|Ref])*;

https://github.com/opencaesar/oml/blob/master/io.opencaesar.oml/src/io/opencaesar/oml/Oml.xcore#L1397:L1416

/*
 * KeyAxiom is an axiom that states that a set of scalar properties form a unique key for an entity. This means that all 
 * instances of that entity must have unique values for those keys. Scalar properties do not need to be specified as
 * functional to be used as keys. 
 */
@Bikeshed(heading="Axioms")
class KeyAxiom extends Axiom {
    /*
     * The set of scalar properties specified by this axiom as a key
     */
    refers ScalarProperty[] properties
    /*
     * The entity that owns this axiom
     */
    container Entity owningEntity opposite ownedKeys
    /*
     * The reference to an entity that owns this axiom
     */
    container EntityReference owningReference opposite ownedKeys
}

The OML abstract and concrete syntaxes should be expanded to support referring to an OML relation entity (forward or inverse) in a key axiom.

This issue is related to #88 since there is also a need to include a relation entity source/target (or their inverses) in a key axiom.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant