AGLDWG / gnaf-ont

Creative Commons Attribution 4.0 International
0 stars 0 forks source link

domain of :hasAlias is wrong #10

Closed dr-shorthair closed 4 years ago

dr-shorthair commented 5 years ago

Following on from #9

gnaf:hasAlias is defined as follows:

:hasAlias
  rdf:type owl:ObjectProperty ;
  rdfs:domain :Alias ;
  rdfs:label "has Alias"@en ;
...
.

However, :Street, :Locality and :Address all have local constraints on the use of :hasAlias in their context. So appearance of :hasAlias in the context of an individual member of one of these classes would entail that the individual is also a member of the class :Alias.

There is something wrong with the modeling here ...

dr-shorthair commented 4 years ago

@jabhay @nicholascar any insight here? The global domain constraint says that a :hasAlias property goes from a :Alias. But the guarded owl:Restriction constraints say that this property goes from a :Address or :Locality or :Street. Which is it?

nicholascar commented 4 years ago

It should be from an Address or other to an Alias so the hasAlias property domain and range are exactly the inverse of what they should be!

I guess you may want to remove the class Restrictions if the domain and range are set or perhaps the other way around. Not sure I was implementing any sound modelling pattern here with having both, and them being contradictory.

I can’t remember what the expected properties of an Alias are (on phone at airport now so can’t easily check). There’s the inverse property of hasAlias but I can’t remember how an Address with an Alias then is Linked to the alias’ details. Perhaps Alias is just a subClassOf Address (or Street or Locality) so an Address or other with an Alias is effectively just pointing to another Address.

dr-shorthair commented 4 years ago

I'm guessing that Alias is an association class, which should have both an incoming and outgoing link to an :Address or :Locality or :Street, but is missing one?

dr-shorthair commented 4 years ago

Looking at test data, I see that an Alias is just an alternative label, with a qualifier to say what the nature of the alias-ness is. So it looks like the domain and range of the hasAlias property got swapped.

dr-shorthair commented 4 years ago

Also - the guarded constraint on the Address/Locality/Street classes is hasAlias some Alias which is the 'existential qualifier' - it says that every Address/Locality/Street has at least one hasAlias property whose value is an Alias. I don't think this was intended. The global constraint should be enough in this case.