On Mon, 2011-05-23 at 16:14 +0800, 朱曼 wrote: 
> 2011/5/23 Dave Reynolds <[email protected]>
> 
> > On Mon, 2011-05-23 at 12:43 +0800, 朱曼 wrote:
> > > Hi list,
> > >
> > > In the following code, I try to create an ontology model with pellet,
> > > then I create an anonymous class which is complement to an existed
> > > class "Mother"(see details from the attached ontology test.owl), and I
> > > want to print "not Mother", but the results appear to be:
> > >
> > > not (Female)  (Mother)
> > > not Female
> > >
> >
> > If you try without a reasoner (use OntModelSpec.OWL_MEM) you will
> > probably get what you want.
> >
> > Why Pellet is inferring the extra complementOf relation is hard to tell
> > without seeing the ontology.
> >
> 
> In the ontology, Mother is a subClass of Female, and the ontology is created
> according to actual facts.
> 
> If I create a complement class of "Female", listOperands() also return
> Female and Mother.

So it seems that Pellet is inferring that Mother and Female are
equivalent, which may indicate some problem in the rest of the ontology.

Dave

> 
> >
> > Dave
> >
> > > Are there convenient ways to print "not Mother" directly?
> > >
> > >
> > ---------------------------------------------------------------------------------------------------------------------------------------
> > >         OntModel m =
> > > ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
> > >         m.read("test.owl");
> > >         OntClass c = m.getOntClass(m.getNsPrefixURI("") + "Mother");
> > >         OntClass newCls = m.createComplementClass(null, c);
> > >         if (newCls.isComplementClass()) {
> > >             System.out.print("not");
> > >             for (ExtendedIterator<? extends OntClass> iter =
> > > newCls.asComplementClass().listOperands(); iter.hasNext(); )
> > >                 System.out.print(" (" + iter.next().getLocalName() +
> > > ") ");
> > >             System.out.print("\nnot ");
> > >
> > >
> > System.out.println(newCls.asComplementClass().getOperand().getLocalName());
> > >
> > >         }
> > >
> > ------------------------------------------------------------------------------------------------------------------------------------------
> > >
> > > All the best,
> > >
> > > June
> >
> >
> >
> >



Reply via email to