JPL-IMCE / gov.nasa.jpl.imce.oml

Ontology Modeling Language (OML) Workbench
14 stars 1 forks source link

Propose a better name than PartialReifiedRelationship #258

Closed NicolasRouquette closed 6 years ago

NicolasRouquette commented 6 years ago

Per this comment and that comment, the distinction between:

is misleading with respect to the mapping to OWL which is structurally different in both cases.

What would be a better name for PartialReifiedRelationship?

sjiherzig commented 6 years ago

Maybe RestrictedReifiedRelationship? Partial implies incompleteness, which is why it may truly not be the best choice of words. Restricted may capture the fact that only certain aspects of the super relationship are redefined.

I don't fully understand the mapping to OWL, so this may be a bad suggestion.

StevenJenkinsJPL commented 6 years ago

I was thinking ReifiedRelationshipRestriction. I think that better implies that the resulting thing is a restriction, not a relationship.

sjiherzig commented 6 years ago

Would the ReifiedRelationshipRestriction represent an OWL class that subclasses the reification class?

NicolasRouquette commented 6 years ago

I agree that ReifiedRelationshipRestriction is better than RestrictedReifiedRelationship. Shall we go with that?

sjiherzig commented 6 years ago

I'm fine with that.

NicolasRouquette commented 6 years ago

ok, then it shall be!

NicolasRouquette commented 6 years ago

About the concrete syntax of ReifiedRelationship vs. ReifiedRelationshipRestriction.

Based on the 0.9.4 concrete syntax, we have:

// For a ReifiedRelationship
reifiedRelationship <reified relationship class name> {
   unreified <object property property name>
   [inverse <inverse object property name>]
   [<characteristics>]
   source <domain>
   target <range>
}

// For a ReifiedRelationshipRestriction
reifiedRelationship <name> {
   source <domain>
   target <range>
}

For ReifiedRelationshipRestriction, I propose instead:

// For a ReifiedRelationshipRestriction
reifiedRelationshipRestriction <name> {
   source <domain>
   target <range>
}

This would avoid confusion at the concrete syntax with ReifiedRelationship.

NicolasRouquette commented 6 years ago

I'll proceed with the proposal and ask you to review the PR.

StevenJenkinsJPL commented 6 years ago

It seems to me the ReifiedRelationshipRestriction needs four parameters: (1) the name of the subclass to be created (2) the reification class to be specialized, (3) the source, and (4) the target.

NicolasRouquette commented 6 years ago

The information about the specialization is specified via ReifiedRelationshipSpecialization. There must be at least one such axiom for a given ReifiedRelationshipRestriction; there could be more than one.

NicolasRouquette commented 6 years ago

For example:

reifiedRelationship U2 {
   unreified u2
   source A2
   target B2
}

reifiedRelationshipRestriction U3 {
   source A3
   target B3
}

U3 extendsRelationship U2
StevenJenkinsJPL commented 6 years ago

That will work. I was a little troubled that U3 didn't seem like the same sort of thing as U2, so "extends" seemed wrong. But U3 is in the domain of hasU2Source and hasU2Target, so in that sense it can be considered to represent a fully reified relationship.