Fork me on GitHub

Using OWL, is it legal to define a sub-property of something while increasing the range of the property compared to the parent property?


e.g. can you legally extend something like lexinfo:partOfSpeech which currently has a range of lexinfo:PartOfSpeech


My use case is that I’m extending the Global WordNet Association’s schema, but they sadly chose to deviate from the standard they otherwise follow (Ontolex) on this matter defining their own wn:partOfSpeech relation. I am trying to establish some kind of equivalence between the lexinfo relation and the GWA one.


@simongray: Are you basically asking what are the semantics of rdfs:range with regards to owl?


maybe… 😛 I’m trying to figure out whether doing this would blow up some software


I’m no expert; but my understanding is that generally speaking owl will let you do that because AFAIK the semantics are defined in terms of the entailments, and things are only really illegal if they lead to contradictions which will depend on your domain model. So the semantics are I think somewhat subtle…. Firstly as I understand it the semantics of multiple ranges are given: P rdfs:range A, B . foo P bar Then foo a A, B. Which means that foo is in the intersection of classes A and B. As to whether that works for you or not with the right semantics will depend on what the software is doing. Strictly speaking the interpretation under OWL of the entailment won’t be broader; because it will be interpreted as the intersection of A and B.


It’ll only be illegal in OWL if some disjointness conditions are triggered… i.e. if it’s inconsistent with guarantees made in the ontologies.


On my phone, so I can't type much. RDFS is completely open world. You can say almost anything with rdfs:range and not be inconsistent. As for making a subproperty, it must abide by everything that applies to the super property. If S is a subproperty of P, P has range A, and S has range A Union B then this implies that B is a subclass of A


It can't allow for P to have a broader range, since <P rdfs:range A> means that any use of P implies the object is of type A


And any use of <x S y> implies the statement <x P y>

☝️ 1
🙇 1