Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
This post was updated on Sep 11, 2023; 7:50pm.
André Muniz Demori <andredemori@ime.eb.br>
Anexos 18:25 (há 2 minutos) para jean-baptiste.lamy Hello, my name is André Demori and I'm from the Military Institute of Engineering of Brazil. I have a question about Owlready2 that I can't resolve. I'm working on my ontology with the concept of powertype, that is, I have a subclass, for example 'Platoon' and I use the same IRI of this subclass as an instance of another class called 'MilitaryOrganizationpowerType'. So Platoon is a subclass of MilitaryOrganization and instance of MilitaryOrganizationpowerType. However, I cannot access the data properties of this instance, for example: platoon_ms = ref_onto.Platoon.maxStrength I can't access Platoon.maxStrength, as it is recognized by owlready2 as a subclass and not as an instance. Do you know if this is something missing from OWLReady2? If so, here is a suggestion for future updates, it is, include a way to access the attributes of an instance that is a sub-class too. Attached are some prints to better explain the idea. ![]() ![]() ![]() |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
TLDR: Make sure that the class and the instance do not have the same IRI.
By definition, the set of classes and the set of individuals in an ontology are disjoint. There are probably even more basic references, but the one I can think of spontaneously is Euzenat and Shvaiko [1], who provide a neat formal definition of an ontology: o = 〈C, I, R, T, V, v, ⊥, ∈, =〉 where: o = ontology C = set of universals I = set of individuals R = set of relations T = set of data types V = set of values v = specialization relation on (C × C) ∪ (R × R) ∪ (T × T ) ⊥ = exclusion relation on (C × C) ∪ (R × R) ∪ (T × T ) ∈ = instantiation relation over (I × C) ∪ (V × T ) = = assignment relation over I × R × (I ∪ V ) C, I, R, T, and V are pairwise disjoint Thus, "Platoon" being both a class and an individual is simply not valid (in OWL2DL). One idea that might help you resolve this is something akin to a singleton [2] - you could create a class "Platoon", which has only a single instance, e.g., "platoon". Naming preferences vary, but personally I tend towards the one suggested by Arp and Smith [3]: "Along the same lines as principle 5, we recommend that when preparing ontology content for review by human beings lowercase italic letters be used for terms referring to universals or classes (this recommendation being based in part on the fact that initial capital letters are normally used in English to indicate proper names, which are names of instances (“Tom,” “Seattle,” “Jupiter”). Thus cat, not “Cat” or “CAT,” [...]" Not entirely sure though if that is the same thing as what you mean by Powertype. [1] https://link.springer.com/book/10.1007/978-3-642-38721-0 [2] https://en.wikipedia.org/wiki/Singleton_pattern [3] https://mitpress.mit.edu/9780262527811/building-ontologies-with-basic-formal-ontology/ |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Thanks.
I mean powertype in multilevel conceptual modeling. https://link.springer.com/article/10.1007/s10270-016-0538-9 but I think OWLready2 doesn't support this type of modeling completely, for example, in this problem getting attribute values from the instances that are sub-classes too. |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Administrator
|
This is also known as "punning"; not all tools support it and Owlready does not. Reasoners accept it but do not take it into account for reasoning purpose.
Jiba |
Free forum by Nabble | Edit this page |