[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