Property has no domain or range in generated OWL #772
Replies: 4 comments 1 reply
-
@AbhaMoitra , this is a good find! There are two conflated things going on.
does not imply a domain or range but rather simply creates this property restriction:
However, you have said "at most one value", not "at least one value". So are you trying to give a maximum qualified cardinality restriction? If so, you should use a digit, not the word "one" which SADL only uses for owl:someValuesFrom restrictions. Note that for all practical purposes, an owl:someValuesFrom on employedBy on class PERSON to AGENT has the same meaning as a qualified cardinality restriction. SADL uses "at least one" for owl:someValuesFrom and "at least 1" for a qualified cardinality restriction.
translates to
SADL should check for the word "most" in the expression and suggest how to state a qualified cardinality restriction. This is a bug. This does not address the issue that you combined what is normally a domain declaration, "employedBy describes PERSON", which arguably should assign a domain, with the property restriction, so maybe in this case the domain should be assigned. Or maybe combining shouldn't be allowed? (I think it should since the grammar allows it.) But the range should definitely not be assigned based on the property restriction. What are you thoughts on how to handle this? |
Beta Was this translation helpful? Give feedback.
-
Thanks Andy. I'll think about it and get back to you. I also wanted to point out that this was identified by Robert Valentin who is working with us on ARCOS. and I have pointed him to this discussion so he can also chime in. |
Beta Was this translation helpful? Give feedback.
-
@AbhaMoitra , having thought about it I'm pretty confident that the domain should be set by the phrasing "employedBy describes PERSON" and "with at most one value" should generate an error message with a suggestion to use "with at most 1 value". A quick fix would be a nice addition. I don't remember Robert's github ID, but if either of you disagree please let me know. Otherwise I'll implement. |
Beta Was this translation helpful? Give feedback.
-
Sounds good. Thanks! |
Beta Was this translation helpful? Give feedback.
-
I am using SADL version 3.4.1.202010012108 and here is a snippet of SADL (the entire project is available at https://github.com/ge-high-assurance/RACK (navigate to https://github.com/ge-high-assurance/RACK/blob/master/RACK-Ontology/ontology/AGENTS.sadl)
PERSON (note "Person agents are people - alias for User")
is a type of AGENT.
employedBy (note "Relates people to the company they were acting on behalf of.")
describes PERSON with at most one value of type AGENT.
employedBy is a type of actedOnBehalfOf.
There is no domain or range for employedBy in the generated OWL file. That is still the case when "employedBy is a type of actedOnBehalfOf" is commented out.
But when "with at most one value of type AGENT" is replaced by "with values of type AGENT" then domain and range info is present in the OWL file.
I also tried this out in SADL version 3.5.0.202105101655; and again I did not see domain or range for employedBy.
This translation to OWL seems strange?
Beta Was this translation helpful? Give feedback.
All reactions