-
Notifications
You must be signed in to change notification settings - Fork 4
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
Syntax support for inverses #79
Comments
re: Specialization of an inverse relation entity Instead, you can do the following and it should have the same intended semantics:
|
re: Restriction of an inverse property Couldn't you simply add a name to the reverse property? |
Well, to be clear, we need to look at the mapping of I expect that
This usually works with asserting That is:
and
mean completely different things. |
When you declare:
You get:
In your last comment, if you labeled the forward/reverse, you get the following (which is the same as above):
|
In your example, the reverse property of The point of the proposed syntax is to make the forward property of the specializing relation a sub-object property of the reverse property of the specialized relation. Clarifying the original example:
That is:
|
Nic, those inferences are exactly what you get with:
Where do you see the difference? |
The difference is that the domain of |
Since "s" is a reverse, its domain is the "to" of the relation (i.e., C), and its range is the "from" of the relation (i.e., D), which is what you want and said above. |
and since "s" is a reverse, it becomes subproperty of the super relationentity's reverse. Since R's reverse is unnamed, we can refer to it as inverseOf (r), i.e., s :> inverseof (r) which is what you want. |
This would be a completely different situation. Consider the original example split in two parts:
Then later, we can add:
or:
The point here is that the two specialization axioms are completely independent of the definition of |
OK so the requirement here is to be able to declare the specialization between S and R without having to change S (since this is possible as I suggested). |
yes |
User Story
As an ontology author, I would like oml syntactic support for referring to an inverse of a relation entity or of a property that does not have a named inverse so that I can author vocabularies that require this expressiveness..
Detailed Description
Description providing additional details and context.
There are a few places where OML lacks syntax for referring to an inverse relation entity or property:
Specialization of an inverse relation entity.
This is currently not possible. For example, suppose that there is a relation
R
with domainA
and rangeB
and forward propertyr
:In OWL functional syntax, the above means (ignoring the rule):
Elsewhere, one may need to define
S
, a specialization of the inverse ofR
for some domainC
that may beB
or a specialization and for some rangeD
that may beA
or a specialization.It would be useful to define
S
as follows with a new OML keywordinverse()
like the following:The syntax above would map in OML to the following in functional syntax:
It is currently not possible to do this.
Restriction of an inverse property
This is currently not possible. For example, suppose that there is a relation
R
with domainA
and rangeB
and forward propertyr
without a named inverse:There is currently no syntax to specify a restriction on the inverse of
r
.Propose adding new syntax like the following based on a new OML keyword
inverse()
like the following:This syntax should be available for all OML restrictions of entity relation properties.
OML syntax extension
The proposed OML keyword
inverse()
and syntax could be replaced with something else that achieves the expressive intent of this ticket.Acceptance Criteria
Sub-task List
The text was updated successfully, but these errors were encountered: