[Pellet-users] Koperator

Alejandro Sanchez ale at iist.unu.edu
Wed Jan 16 09:46:16 UTC 2008


Sorry for this late response, but yes, we solved the problem. However 
the solution you attached is much neater. Many Thanks !

Now I'm trying to dynamically generate the restrictions required for 
closing individual's properties from the attached ontology. For 
instance, given the following description:

<owl:Class rdf:ID="ValidForm">
   <owl:equivalentClass>
     <owl:Class>
       <owl:intersectionOf rdf:parseType="Collection">
         <owl:Restriction>
           <owl:onProperty>
             <owl:ObjectProperty rdf:about="#hasSecondary" />
           </owl:onProperty>
           <owl:allValuesFrom>
             <owl:Class rdf:about="#SecondaryArticle"/>
           </owl:allValuesFrom>
          </owl:Restriction>
          <owl:Class rdf:about="#Form" />
       </owl:intersectionOf>
     </owl:Class>
   </owl:equivalentClass>
</owl:Class>

<Form rdf:ID="794">
   <hasMain rdf:resource="#AMobilePhone"/>
   <hasSecondary rdf:resource="#AHeadset"/>
</Form>

I would like to dynamically generate the description below, restricting 
(closing) an individual's property.

<owl:Thing rdf:about="#794">
   <rdf:type>
     <owl:Restriction>
       <owl:cardinality 
rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">
       1
       </owl:cardinality>
       <owl:onProperty>
         <owl:ObjectProperty rdf:about="#hasSecondary" />
       </owl:onProperty>
     </owl:Restriction>
    </rdf:type>
</owl:Thing>

With the API the closest I can do is ...

OWLObjectProperty hasSecondary =
  factory.getOWLObjectProperty(URI.create(...));
OWLIndividual form794 = ...
...
OWLObjectExactCardinalityRestriction restr =
   factory.getOWLObjectExactCardinalityRestriction(hasSecondary, 1);
OWLClassAssertionAxiom restrictAxiom =
   factory.getOWLClassAssertionAxiom(form794, restr);
manager.applyChange(new AddAxiom(ontology, restrictAxiom));

However, after executing this code, the reasoner does not find any 
ValidForm.

What is the correct code for restricting an individual's property ?

Many Thanks,
Alejandro.



Ibach, Brandon L wrote:
> Alejandro,
> 
> I'm not sure if your last message indicated that you had solved the
> problem you were having, but when I tried running it through the Pellet
> 1.5.1 command line, I got a number of errors.  Most were syntax-related,
> such as extra whitespace inside the cardinality restrictions, the use of
> owl11:ObjectProperty instead of owl:ObjectProperty, the use of rdf:ID
> instead of rdf:resource on some owl:inverseOf axioms and the syntax used
> for enumerating the instances of owl:Thing.  Pellet also complained
> about the lack of typing information for the SWRL vocabulary, thus
> making the ontology OWL Full, though I believe this is simply a
> shortcoming of Pellet.
> 
> All that said, I took the liberty of creating a modified version,
> attached, which fixes these issues and simplifies the ontology a bit.
> 
> I eliminated the need for declaring MainArticle to be equivalent to the
> restriction on includedAsMain by simply changing the range of hasMain
> (and, accordingly, the domain of includedAsMain) to MainArticle.  This
> also eliminates the need for the includedAsMain property, though I left
> it in the ontology in case you want to use it for other purposes.  I
> also replaced the SWRL rule by making MainArticle a subclass of an
> allValuesFrom restriction on hasAccessory, thereby making the object of
> any hasAccessory triple on a MainArticle a ValidSecondaryArticle.
> 
> Hopefully, this helps with your efforts.  Feel free to ask if you have
> any questions about the changes I made or if you run into any other
> issues.
> 
> -Brandon :)



-------------- next part --------------
A non-text attachment was scrubbed...
Name: formValidationOneOf-Ibar.owl
Type: text/xml
Size: 3537 bytes
Desc: not available
Url : http://lists.owldl.com/pipermail/pellet-users/attachments/20080116/35841d2e/attachment.bin 


More information about the Pellet-users mailing list