Hello Dave,

my question would be whether he ask how to set this singleton enumeration as

a) the range of the property or

b) used in a class expression with

b1) owl:hasValue or

b2) like you suggested to use owl:allValuesFrom



Cheers,
Lorenz

> On 08/11/16 14:02, Jos Lehmann wrote:
>> Hi there
>>
>>
>>
>> I am new to jena and I'm trying the write the two following
>> restrictions into an owl (rdf/xml) ontology:
>>
>>
>>
>> - in_category property should range over a singleton (Collection)
>> containing only #Bo,
>
> You need to create an enumerated class (oneOf) containing #Bo (see
> OntModel#createEnumeratedClass) and pass that class to the
> allValuesFrom restriction.
>
>> - is_XXX_type should  range over a singleton containing only the
>> Boolean value "true"
>
> That's OWL2 which is not supported by Jena's convenience OntAPI. So
> you'll need top do this at the RDF level - create an anonymous
> instance of rdfs:Datatype, create a RDFList containing boolean true
> then link them with an owl:oneOf property, then again pass that to the
> allValuesFrom.
>
> Dave
>
>> My code (below) cannot write the parts of the desired output (below)
>> marked with ==>.
>>
>>
>>
>> So far, I have been working to achieve the second part of the desired
>> output (i.e. the #is_XXX_type part), and that's my priority, but
>> suggestions on the first part would be welcome.
>>
>>
>>
>>
>>
>> DESIRED OUTPUT
>>
>>
>>
>> <owl:Class
>> rdf:about="http://www._.net/ontologies/2016/XXXs_Ontology.owl#B7";>
>>
>>         <rdfs:subClassOf
>> rdf:resource="http://www._.net/ontologies/2016/XXXs_Ontology.owl#B"/>
>>
>>         <rdfs:subClassOf
>> rdf:resource="http://www._.net/ontologies/2016/XXXs_Ontology.owl#T"/>
>>
>>         <rdfs:subClassOf>
>>
>>             <owl:Restriction>
>>
>>                 <owl:onProperty
>> rdf:resource="http://www._.net/ontologies/2016/XXXs_Ontology.owl#in_category"/>
>>
>>                 <owl:allValuesFrom>
>>
>> ==>                    <owl:Class>
>>
>> ==>                        <owl:oneOf rdf:parseType="Collection">
>>
>> ==>                            <rdf:Description
>> rdf:about="http://www._.net/ontologies/2016/XXXs_Ontology.owl#Bo"/>
>>
>> ==>                        </owl:oneOf>
>>
>> ==>                    </owl:Class>
>>
>>                 </owl:allValuesFrom>
>>
>>             </owl:Restriction>
>>
>>         </rdfs:subClassOf>
>>
>>         <rdfs:subClassOf>
>>
>>             <owl:Restriction>
>>
>>                 <owl:onProperty
>> rdf:resource="http://www._.net/ontologies/2016/XXXs_Ontology.owl#is_XXX_type"/>
>>
>>                 <owl:allValuesFrom>
>>
>> ==>                    <rdfs:Datatype>
>>
>> ==>                        <owl:oneOf>
>>
>> ==>                            <rdf:Description>
>>
>> ==>                                <rdf:type
>> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
>>
>> ==>                                <rdf:first
>> rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean";>true</rdf:first>
>>
>> ==>                                <rdf:rest
>> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
>>
>> ==>                            </rdf:Description>
>>
>> ==>                        </owl:oneOf>
>>
>>                     </rdfs:Datatype>
>>
>>                 </owl:allValuesFrom>
>>
>>             </owl:Restriction>
>>
>>         </rdfs:subClassOf>
>>
>>     </owl:Class>
>>
>>
>>
>>
>>
>> MY CODE (note: the new class is derived from an existing individual)
>>
>>
>>
>>                         OntClass newClass =
>> model2.createClass(thisInstance.toString());
>>
>>
>>
>>                         DatatypeProperty is_XXX_type =
>> model2.createDatatypeProperty("http://www._.net/ontologies/2016/XXXs_Ontology.owl#is_XXX_type";);
>>
>>
>>
>>                         is_XXX_type.setRange(XSD.xboolean);
>>
>>
>>
>>                         Restriction restriction =
>> model2.createAllValuesFromRestriction(null, is_ XXX_type, XSD.xboolean);
>>
>>
>>
>>                         newClass.addSuperClass(restriction);
>>
>>
>>
>>
>>
>>
>>
>> MY PRESENT OUTPUT FOR THE  is_XXX_type CASE:
>>
>>
>>
>> <owl:Class
>> rdf:about="http://www._.net/ontologies/2016/XXXs_Ontology.owl#B7";>
>>
>>     <rdfs:subClassOf>
>>
>>       <owl:Restriction>
>>
>>         <owl:allValuesFrom
>> rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
>>
>>         <owl:onProperty>
>>
>>           <owl:DatatypeProperty
>> rdf:about="http://www._.net/ontologies/2016/XXXs_Ontology.owl#is_XXX_type"/>
>>
>>         </owl:onProperty>
>>
>>       </owl:Restriction>
>>
>>     </rdfs:subClassOf>
>>
>>   </owl:Class>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Thank you in advance for the advice.
>>
>>
>>
>> Jos Lehmann
>>
>>
>>
>> Knowledge Management
>>
>> Bauhaus Luftfahrt e.V.
>>
>> GERMANY
>>
>>
>>
>>
>>
>>
>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to