Gershon, You defined drink as a parent class for alcoholic and caffein classes. This means that every member of these classes is also a member of the drink class. You then said that healthy is an equivalent class to drink which means that every member of the drink class is a member of the healthy class (and vice versa). With this, beer, as a member of the alcoholic class, is a member of the drink class and a member of the healthy class.
You then said that healthy is disjoint with alcoholic and caffein. Since it contradicts definitions described above, for the model to stay consistent, it can only mean that alcoholic and caffein must have no members they can only be empty sets. You also defined unhealthy as an intersection, so only those drinks that are both alcoholic and have caffein would be inferred as unhealthy and you don¹t have any of those. You could say that unhealthy is a union of alcoholic and caffein and drink is a union of healthy and unhealthy. And healthy is a complement of unhealthy. This would mean that any drink that is known to be a member of the healthy class, can't be a member of the unhealthy class (and vice versa). But the open world assumption used in OWL will not allow you to infer that a drink that is not explicitly specified to be a member of the unhealthy class, must be a member of the healthy class. This is because in the open world, the fact that we only know about {:milk a :drink} triple and do not have {:milk a :unhealthy} triple doesn¹t mean that such triple may not be discovered in the future. In other words, open world doesn¹t support negation as failure. As a result, cardinalities, complements and a few other things are not as useful in OWL as one may expect. I would recommend looking into SPIN (http://www.topquadrant.com/technology/sparql-rules-spin/ and http://spinrdf.org/spinstack.html) where inferences can use closed world assumptions. Hope this helps, Irene Polikoff From: Gershon Pollatschek <gersh...@gmail.com> Reply-To: <topbraid-users@googlegroups.com> Date: Wednesday, May 13, 2015 at 7:41 AM To: <topbraid-users@googlegroups.com> Subject: [topbraid-users] Newbie question Hello all, I am trying to create a sub-class, which includes all instances that are NOT included in a sibling class. I tried ComplementOf and using "no NameOfSibling and no NameOfSibling". Both did not perform as expected. In the example attached, healty drinks are to be defined as drinks which have no caffeine or alcohol. I checked all the messages in this group but could not find a solution. Could you please point me in the right direction? I am standing on the hosa, as they say in german...:-) Thank you for your help. Gershon -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary Network (EVN), Reference Data Manager (RDM), TopBraid Composer, TopBraid Live, TopBraid Insight, SPARQLMotion, SPARQL Web Pages and SPIN. To post to this group, send email to topbraid-users@googlegroups.com --- You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to topbraid-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary Network (EVN), Reference Data Manager (RDM), TopBraid Composer, TopBraid Live, TopBraid Insight, SPARQLMotion, SPARQL Web Pages and SPIN. To post to this group, send email to topbraid-users@googlegroups.com --- You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to topbraid-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.