My aim is to get the following enumerated restriction using Apache Jena:

 <SubClassOf>
        <Class IRI="http://www.equixonline.com/Grainger#TestClass"/>

        <ObjectMaxCardinality cardinality="1">

<ObjectProperty IRI="http://www.equixonline.com/Grainger#TestObjectProperty"/>

            <ObjectOneOf>
<NamedIndividual IRI="http://www.equixonline.com/Grainger#male"/> <NamedIndividual IRI="http://www.equixonline.com/Grainger#female"/>
            </ObjectOneOf>

        </ObjectMaxCardinality>

</SubClassOf>

I tried different codes, but can't get the above restriction. If I use the following code:

OntClass newItemClass = model.createClass(baseURI + "TestClass");
ObjectProperty objectProperty = model.createObjectProperty(baseURI + "TestObjectProperty"); MaxCardinalityRestriction restriction = model.createMaxCardinalityRestriction(null, objectProperty, 1);

newItemClass.addSuperClass(restriction);

I get max cardinality restriction without enumeration:

 <SubClassOf>
        <Class IRI="http://www.equixonline.com/Grainger#TestClass"/>
        <ObjectMaxCardinality cardinality="1">
<ObjectProperty IRI="http://www.equixonline.com/Grainger#TestObjectProperty"/>
        </ObjectMaxCardinality>
    </SubClassOf>

When I add the following code:

Individual male = model.createIndividual(baseURI + "male", OWL.Thing);
Individual female = model.createIndividual(baseURI + "female", OWL.Thing);
RDFList enums = model.createList();
enums = enums.cons(male);
enums = enums.cons(female);

OntClass newItemClass = model.createClass(baseURI + "TestClass");
ObjectProperty objectProperty = model.createObjectProperty(baseURI + "TestObjectProperty"); MaxCardinalityRestriction restriction = model.createMaxCardinalityRestriction(null, objectProperty, 1);

restriction.addProperty(OWL.oneOf, enums);

newItemClass.addSuperClass(restriction);

I only get enumeration, but max cardinality restriction is nowhere to find:

<SubClassOf>
        <Class IRI="http://www.equixonline.com/Grainger#TestClass"/>
        <ObjectOneOf>
<NamedIndividual IRI="http://www.equixonline.com/Grainger#male"/> <NamedIndividual IRI="http://www.equixonline.com/Grainger#female"/>
        </ObjectOneOf>
</SubClassOf>

Do you maybe know what I am doing wrong and how to get format (enumerated restriction) described at the beginning of this message?

Thanks,

Darko

Reply via email to