[Pellet-users] Individuals with anonymous ClassExpressions as rdf:type

Paolo Bussotti paolo.bussotti at unifi.it
Thu Apr 24 16:00:00 UTC 2008


Hi everibody.
I'm working with Pellet via the Jena interface, and I would like know if it is possible to assert types on individuals when these are anonymous class expressions: I've programmatically produced such an individual in a Pellet-backed Jena Ontmodel (here is the resulting OWL ) and then I've prepared the ontmodel to make the change available to the Pellet KnowledgeBase.  

<user:EndUser rdf:ID="U_22">
  <user:user-address rdf:resource="#Address_U_22_N0"/>
  <user:user-address rdf:resource="#Address_U_22_N1"/>
  <user:user-address rdf:resource="#Address_U_22_N2"/>
  <rdf:type>
      <owl:Restriction>
           <owl:onProperty rdf:resource="userProfileOnto#user-address"/>
           <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</owl:maxCardinality>
       </owl:Restriction>
 </rdf:type>
</user:EndUser>

where U_22 is asserted to be both an EndUser and to be allowed to be related  atmost 3 times via the "user-address" property, which, in the class EndUser  has no cardinality restriction at all. 
The objects of the domain Address of the "user-address" have been programmed to be mutually disjoint elsewhere.

When I checked for consistency the individual behave as expected, i.e., if the number of role assertion of "user-address" for this individual exceed the maxCardinality, then an inconsistency results. 

If I create another Individual with the same (semantically speaking) class expression as type, and I rebuild the anonymous class, this has a different ID for jena and I don't know if the Pellet KnowledgeBase treates the two restrictions as one or separates them.
The problem is that my attempts to query a list of individuals with such type or to further manipulate the individual (e.g., removing the restriction from its type) have failed, and I don't know exactly the reason.

Besides asking you for some gentle help (and thanking you in advance), I would like to clarify the motivation of my attempts: for my knowledge, using anonymous class expression for typing individuals is accepted in DL (and in OWL DL) and in the examples I've seen, this augment the way the TBox (named) classes can be used, since some individuals may be model as both Students and Vegetarians by an anonymous class expression as type, without needing to define a probably rarely used class as "VegetarianStudent" at the TBox level.
>From a DL-semantics viewpoint dealing with such constructs (allowed by the syntax) should not represent any problem.

Please give me some advice about this topic and correct me if I asserted something wrong.  

Best regards, 
    Paolo Bussotti
      

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.owldl.com/pipermail/pellet-users/attachments/20080424/8515239b/attachment.htm 


More information about the Pellet-users mailing list