2ronwalf/*
2ronwalf * Created on Dec 16, 2004
2ronwalf */
2ronwalfpackage org.mindswap.owl;
2ronwalf
13daenzeroramaimport java.io.OutputStream;
13daenzeroramaimport java.io.Writer;
2ronwalfimport java.net.URI;
2ronwalfimport java.util.List;
2ronwalfimport java.util.Map;
2ronwalfimport java.util.Set;
2ronwalf
2ronwalfimport org.mindswap.exceptions.LockNotSupportedException;
2ronwalfimport org.mindswap.exceptions.UnboundVariableException;
2ronwalfimport org.mindswap.owl.list.ListVocabulary;
2ronwalfimport org.mindswap.owl.list.RDFList;
2ronwalfimport org.mindswap.owls.generic.expression.Expression;
2ronwalfimport org.mindswap.owls.generic.list.OWLSObjList;
2ronwalfimport org.mindswap.owls.grounding.Grounding;
2ronwalfimport org.mindswap.owls.grounding.JavaAtomicGrounding;
2ronwalfimport org.mindswap.owls.grounding.MessageMap;
2ronwalfimport org.mindswap.owls.grounding.UPnPAtomicGrounding;
2ronwalfimport org.mindswap.owls.grounding.WSDLAtomicGrounding;
2ronwalfimport org.mindswap.owls.grounding.WSDLOperationRef;
2ronwalfimport org.mindswap.owls.process.AnyOrder;
2ronwalfimport org.mindswap.owls.process.AtomicProcess;
39daenzeroramaimport org.mindswap.owls.process.BindingList;
2ronwalfimport org.mindswap.owls.process.Choice;
2ronwalfimport org.mindswap.owls.process.CompositeProcess;
2ronwalfimport org.mindswap.owls.process.Condition;
2ronwalfimport org.mindswap.owls.process.ControlConstruct;
2ronwalfimport org.mindswap.owls.process.ControlConstructBag;
2ronwalfimport org.mindswap.owls.process.ControlConstructList;
2ronwalfimport org.mindswap.owls.process.ForEach;
2ronwalfimport org.mindswap.owls.process.IfThenElse;
2ronwalfimport org.mindswap.owls.process.Input;
2ronwalfimport org.mindswap.owls.process.InputBinding;
2ronwalfimport org.mindswap.owls.process.Local;
2ronwalfimport org.mindswap.owls.process.Output;
2ronwalfimport org.mindswap.owls.process.OutputBinding;
39daenzeroramaimport org.mindswap.owls.process.Parameter;
2ronwalfimport org.mindswap.owls.process.Perform;
2ronwalfimport org.mindswap.owls.process.Process;
2ronwalfimport org.mindswap.owls.process.Produce;
2ronwalfimport org.mindswap.owls.process.RepeatUntil;
2ronwalfimport org.mindswap.owls.process.RepeatWhile;
2ronwalfimport org.mindswap.owls.process.Result;
2ronwalfimport org.mindswap.owls.process.Sequence;
2ronwalfimport org.mindswap.owls.process.Split;
2ronwalfimport org.mindswap.owls.process.SplitJoin;
2ronwalfimport org.mindswap.owls.process.ValueData;
2ronwalfimport org.mindswap.owls.process.ValueOf;
2ronwalfimport org.mindswap.owls.profile.Profile;
2ronwalfimport org.mindswap.owls.profile.ServiceParameter;
2ronwalfimport org.mindswap.owls.service.Service;
2ronwalfimport org.mindswap.query.ABoxQuery;
2ronwalfimport org.mindswap.query.ValueMap;
2ronwalfimport org.mindswap.swrl.AtomList;
2ronwalf
2ronwalf/**
2ronwalf * An abstract view for querying a KnowledgeBase or a single ontology.
2ronwalf *
2ronwalf * @author Evren Sirin
2ronwalf */
2ronwalfpublic interface OWLModel {
2ronwalf /**
2ronwalf * Return the implementation specific object for this model.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public Object getImplementation();
2ronwalf
2ronwalf /**
2ronwalf * Refresh the data in this model from the original source.
2ronwalf */
2ronwalf public void refresh();
2ronwalf
2ronwalf /**
2ronwalf * Check if the model is consistent or not. This functions will simply return true if
2ronwalf * there is no reasoner attached or the reasoner used does not support consistency check.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isConsistent();
2ronwalf
2ronwalf /**
2ronwalf * Prepare the reasoner associated with this model.
2ronwalf */
2ronwalf public void prepare();
2ronwalf
2ronwalf /**
2ronwalf * Tell the reasoner to compute the subclass relations between all the named classes and find
2ronwalf * the instances of each class. The results will be cached and subsequent calls to queyr the
2ronwalf * model will use the cache. This call has no effect if reasoner does not support
2ronwalf * classification.
2ronwalf */
2ronwalf public void classify();
2ronwalf
2ronwalf /**
2ronwalf * Returns true if the model is classifed.
2ronwalf */
2ronwalf public boolean isClassified();
2ronwalf
2ronwalf /**
2ronwalf * Set the reasoner of this model using a reasner name. See OWLFactory.getReasoners() for
2ronwalf * available reasoner names.
2ronwalf *
2ronwalf * <p>For Jena based implementation available reasoner names are:
2ronwalf * <ul>
2ronwalf * <li>RDFS</li>
2ronwalf * <li>RDFS-Simple</li>
2ronwalf * <li>Transitive</li>
2ronwalf * <li>OWL</li>
2ronwalf * <li>OWL-Mini</li>
2ronwalf * <li>OWL-Micro</li>
2ronwalf * <li>DIG</li>
2ronwalf * <li>Pellet</li>
2ronwalf * </ul>
2ronwalf * </p>
2ronwalf * @param reasonerName
2ronwalf */
2ronwalf public void setReasoner(String reasonerName);
2ronwalf
2ronwalf /**
2ronwalf * Set the reasoner using an implementation specific reasoner object. The exact type of the
2ronwalf * parameter is different for Jena and OWL-API.
2ronwalf *
2ronwalf * @param reasoner
2ronwalf */
2ronwalf public void setReasoner(Object reasoner);
2ronwalf
2ronwalf /**
2ronwalf * @return
2ronwalf */
2ronwalf public Object getReasoner();
2ronwalf
2ronwalf// /**
2ronwalf// * Used to enable/disable the attached reasoner for some period of time. Using reasoner to
2ronwalf// * answer all the queries may be too expensive especially when the KB is being changed
2ronwalf// * frequently. Using this function, attached reasoner can be disabled and enabled back when
2ronwalf// * needed.
2ronwalf// *
2ronwalf// * @param enabled
2ronwalf// * @return
2ronwalf// */
2ronwalf// public void enableReasoner( boolean enabled );
2ronwalf
2ronwalf /**
2ronwalf * The ontology where the changes will go. If this model represents an OWLOntology object
2ronwalf * then it is the same ontology, if th emodel represents a OWLKnowledgeBase then it is the
2ronwalf * base ontology of the KB.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLOntology getBaseOntology();
2ronwalf
2ronwalf// /**
2ronwalf// * @return
2ronwalf// */
2ronwalf// public OWLSObjListFactory getListFactory();
2ronwalf//
2ronwalf// /**
2ronwalf// * @param vocabulary
2ronwalf// * @return
2ronwalf// */
2ronwalf// public OWLSObjListFactory getListFactory(ListVocabulary vocabulary);
2ronwalf
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLClass createClass(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLObjectProperty createObjectProperty(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataProperty createDataProperty(URI uri);
2ronwalf /**
2ronwalf *
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual createIndividual(URI uri);
2ronwalf /**
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual createInstance(OWLClass c);
2ronwalf /**
2ronwalf * @param c
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual createInstance(OWLClass c, URI uri);
2ronwalf /**
2ronwalf * @param value
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValue createDataValue(String value);
2ronwalf /**
2ronwalf * @param value
2ronwalf * @param language
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValue createDataValue(String value, String language);
2ronwalf /**
2ronwalf * @param value
2ronwalf * @param datatypeURI
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValue createDataValue(Object value, URI datatypeURI);
2ronwalf /**
2ronwalf * @param value
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValue createDataValue(Object value);
2ronwalf
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLClass getClass(URI uri);
28daenzerorama
28daenzerorama public Set getClasses();
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual getIndividual(URI uri);
2ronwalf
2ronwalf public OWLIndividualList getIndividuals();
2ronwalf
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLProperty getProperty(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLObjectProperty getObjectProperty(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataProperty getDataProperty(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataType getDataType(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLType getType(URI uri);
2ronwalf /**
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf public OWLEntity getEntity(URI uri);
2ronwalf
2ronwalf /**
2ronwalf * Set the value for the given data property to the given plain literal
2ronwalf * value (no language identifier). All the existing data values (that has
2ronwalf * no language identifier) will be removed.
2ronwalf *
2ronwalf * @param propURI
2ronwalf * @param value
2ronwalf */
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf public void setProperty(OWLIndividual ind, OWLDataProperty prop, String value);
2ronwalf
2ronwalf /**
2ronwalf * Set the value for the given data property. All the existing data values
2ronwalf * (that has the same language identifier with the given value) will be removed.
2ronwalf *
2ronwalf * @param propURI
2ronwalf * @param value
2ronwalf */
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf public void setProperty(OWLIndividual ind, OWLDataProperty prop, OWLDataValue value);
2ronwalf
2ronwalf /**
2ronwalf * Set the value for the given data property to the given literal by
2ronwalf * determining the RDF datatype from Java class. This function is
2ronwalf * equivalent to <code>setProperty(prop, OWLFactory.createDataValue(value))</code>.
2ronwalf *
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf public void setProperty(OWLIndividual ind, OWLDataProperty prop, Object value);
2ronwalf
2ronwalf public void addProperty(OWLIndividual ind, OWLProperty prop, OWLValue value);
2ronwalf
2ronwalf
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf public void addProperty(OWLIndividual ind, OWLDataProperty prop, OWLDataValue value);
2ronwalf
2ronwalf public void addProperty(OWLIndividual ind, OWLDataProperty prop, Object value);
2ronwalf
2ronwalf public void addProperty(OWLIndividual ind, OWLDataProperty prop, String value);
13daenzerorama
2ronwalf /**
13daenzerorama * Removes all RDF statements from the model with the given OWLIndividual in
14daenzerorama * its object or subject therefore removing each occurrence of the given individual.
14daenzerorama * This is a convenience method for removeIndividuals(ind, false)
13daenzerorama *
13daenzerorama * @param ind the individual to remove
14daenzerorama * @see #removeIndividuals(OWLIndividual, boolean)
13daenzerorama */
13daenzerorama public void removeIndividuals(OWLIndividual ind);
13daenzerorama
13daenzerorama /**
14daenzerorama * Removes all RDF statements from the model with the given OWLIndividual in
14daenzerorama * its object or subject therefore removing each occurrence of the given individual.
14daenzerorama * If the <code>recursive</code> parameter is set, the method iterates recursively
14daenzerorama * through all properties of the given individual and removes them all.
14daenzerorama *
14daenzerorama * ATTENTION: Use the recursive mode only when you are sure that your data is
14daenzerorama * structured in a tree and not in a graph (as OWL and OWL-S usually is). Otherwise
14daenzerorama * unexpected behaviour may be observed.
14daenzerorama *
14daenzerorama * @param ind the individual to remove
14daenzerorama * @param recursive true, if recursive removal is desired. false otherwise
14daenzerorama */
14daenzerorama public void removeIndividuals(OWLIndividual ind, boolean recursive);
14daenzerorama
14daenzerorama /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf */
2ronwalf public void removeProperties(OWLIndividual ind, OWLProperty prop);
2ronwalf
2ronwalf /**
2ronwalf * Removes the specified triple from the Model.
2ronwalf * @param theInd OWLIndividual
2ronwalf * @param theProp OWLProperty
2ronwalf * @param theValue OWLValue
2ronwalf */
2ronwalf public void removeProperty(OWLIndividual theInd, OWLProperty theProp, OWLValue theValue);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf public void addProperty(OWLIndividual ind, OWLObjectProperty prop, OWLIndividual value);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf */
2ronwalf public void setProperty(OWLIndividual ind, OWLObjectProperty prop, OWLIndividual value);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param c
2ronwalf */
2ronwalf public void addType(OWLIndividual ind, OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf */
2ronwalf public void removeTypes(OWLIndividual ind);
2ronwalf
2ronwalf /**
2ronwalf * Returns true if c is an enumerated class (defined with owl:oneOf)
2ronwalf *
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isEnumerated(OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * Returns the enumeration for the class (the list of individuals declared in the
2ronwalf * owl:oneOf list).
2ronwalf *
2ronwalf * @param c
2ronwalf * @return List of individuals or null if the class is not enumerated
2ronwalf */
2ronwalf public OWLIndividualList getEnumerations(OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * Check if one class is subclass of another
2ronwalf *
2ronwalf * @param c1
2ronwalf * @param c2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isSubClassOf(OWLClass c1, OWLClass c2);
2ronwalf
2ronwalf /**
2ronwalf * Check if one datatype is subtype of another
2ronwalf *
2ronwalf * @param uri1
2ronwalf * @param uri2
2ronwalf * @return
2ronwalf */
2ronwalf /**
2ronwalf * @param t1
2ronwalf * @param t2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isSubTypeOf(OWLDataType t1, OWLDataType t2);
2ronwalf
2ronwalf /**
2ronwalf * Check if one type is subsumed by another
2ronwalf *
2ronwalf * @param uri1
2ronwalf * @param uri2
2ronwalf * @return
2ronwalf */
2ronwalf /**
2ronwalf * @param t1
2ronwalf * @param t2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isSubTypeOf(OWLType t1, OWLType t2);
2ronwalf
2ronwalf /**
2ronwalf * @param t1
2ronwalf * @param t2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isEquivalent(OWLType t1, OWLType t2);
2ronwalf
2ronwalf /**
2ronwalf * @param t1
2ronwalf * @param t2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isDisjoint(OWLType t1, OWLType t2);
2ronwalf
2ronwalf
2ronwalf /**
2ronwalf * Check if two classes are disjoint. Returns true if there can possibly be no
2ronwalf * individual that may belong ot both classes.
2ronwalf *
2ronwalf * @param uri1
2ronwalf * @param uri2
2ronwalf * @return
2ronwalf */
2ronwalf /**
2ronwalf * @param c1
2ronwalf * @param c2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isDisjoint(OWLClass c1, OWLClass c2);
2ronwalf
2ronwalf
2ronwalf /**
2ronwalf * Get all the subclasses of the given class
2ronwalf *
2ronwalf * @param uri
2ronwalf * @return
2ronwalf */
2ronwalf /**
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public Set getSubClasses(OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * Get all the (direct) subclasses of the given class
2ronwalf *
2ronwalf * @param c
2ronwalf * @param direct
2ronwalf * @return
2ronwalf */
2ronwalf public Set getSubClasses(OWLClass c, boolean direct);
2ronwalf
2ronwalf /**
2ronwalf * Get all the superclasses of the given class
2ronwalf *
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public Set getSuperClasses(OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * Get all the (direct) subclasses of the given class
2ronwalf *
2ronwalf * @param c
2ronwalf * @param direct
2ronwalf * @return
2ronwalf */
2ronwalf public Set getSuperClasses(OWLClass c, boolean direct);
2ronwalf
2ronwalf /**
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public Set getEquivalentClasses(OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * @param p
2ronwalf * @return
2ronwalf */
2ronwalf public Set getSubProperties(OWLProperty p);
2ronwalf /**
2ronwalf * @param p
2ronwalf * @return
2ronwalf */
2ronwalf public Set getSuperProperties(OWLProperty p);
2ronwalf /**
2ronwalf * @param p
2ronwalf * @return
2ronwalf */
2ronwalf public Set getEquivalentProperties(OWLProperty p);
2ronwalf
2ronwalf /**
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getInstances(OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param c
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isType(OWLIndividual ind, OWLClass c);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @return
2ronwalf */
2ronwalf public OWLClass getType(OWLIndividual ind);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @return
2ronwalf */
2ronwalf public Set getTypes(OWLIndividual ind);
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual getProperty(OWLIndividual ind, OWLObjectProperty prop);
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getProperties(OWLIndividual ind, OWLObjectProperty prop);
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @return
2ronwalf */
2ronwalf public Map getProperties(OWLIndividual ind);
11daenzerorama
2ronwalf /**
11daenzerorama * Returns all properties for a class. Note that a class is an instance in OWL and therefore
11daenzerorama * the properties given to the instance at definition are returned and NOT the
11daenzerorama * properties that are declared for this class. Use
11daenzerorama * <code>getDeclaredProperties(OWLClass claz)</code> instead.
11daenzerorama *
11daenzerorama * @param claz the class whose properties will be returned
11daenzerorama * @return all properties (data- and object-properties) of the given class
11daenzerorama * @see #getDeclaredProperties(OWLClass)
11daenzerorama */
11daenzerorama public Map getProperties(OWLClass claz);
11daenzerorama
11daenzerorama /**
11daenzerorama * Returns all declared properties for a class. Use
11daenzerorama * <code>getDeclaredProperties(OWLClass claz)</code> if you want the properties
11daenzerorama * of the instance at class defintion.
11daenzerorama *
11daenzerorama * @param claz the class whose properties will be returned
11daenzerorama * @return all properties (data- and object-properties) of the given class
11daenzerorama * @see #getDeclaredProperties(OWLClass)
11daenzerorama */
11daenzerorama public List getDeclaredProperties(OWLClass claz);
11daenzerorama
11daenzerorama /**
11daenzerorama * Returns all declared properties for a class. Use
11daenzerorama * <code>getDeclaredProperties(OWLClass claz)</code> if you want the properties
11daenzerorama * of the instance at class defintion.
11daenzerorama *
11daenzerorama * @param claz the class whose properties will be returned
11daenzerorama * @param direct true, if only properties of the given class itself should be returned. false, if properties of superclasses should be returned too
11daenzerorama * @return all properties (data- and object-properties) of the given class
11daenzerorama * @see #getDeclaredProperties(OWLClass)
11daenzerorama */
11daenzerorama public List getDeclaredProperties(OWLClass claz, boolean direct);
11daenzerorama
11daenzerorama
11daenzerorama /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValue getProperty(OWLIndividual ind, OWLDataProperty prop);
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param lang
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValue getProperty(OWLIndividual ind, OWLDataProperty prop, String lang);
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValueList getProperties(OWLIndividual ind, OWLDataProperty prop);
2ronwalf
2ronwalf /**
2ronwalf * @param prop
2ronwalf * @param ind
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual getIncomingProperty(OWLObjectProperty prop, OWLIndividual ind);
2ronwalf /**
2ronwalf * @param prop
2ronwalf * @param ind
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getIncomingProperties(OWLObjectProperty prop, OWLIndividual ind);
2ronwalf
2ronwalf public OWLIndividualList getIncomingProperties(OWLIndividual ind);
2ronwalf
2ronwalf /**
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual getIncomingProperty(OWLDataProperty prop, OWLDataValue value);
2ronwalf /**
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividualList getIncomingProperties(OWLDataProperty prop, OWLDataValue value);
2ronwalf
2ronwalf
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @return
2ronwalf */
2ronwalf public boolean hasProperty(OWLIndividual ind, OWLProperty prop);
2ronwalf /**
2ronwalf * @param ind
2ronwalf * @param prop
2ronwalf * @param value
2ronwalf * @return
2ronwalf */
2ronwalf public boolean hasProperty(OWLIndividual ind, OWLProperty prop, OWLValue value);
2ronwalf
2ronwalf /**
2ronwalf * Apply the given set of (ground) atoms to the model. Simply adds new assertions to the
2ronwalf * model.
2ronwalf *
2ronwalf * @param atoms
2ronwalf * @throws UnboundVariableException
2ronwalf */
2ronwalf public void apply(AtomList atoms) throws UnboundVariableException;
2ronwalf
2ronwalf /**
2ronwalf * Similar to apply but simply skips the nonground atoms instead of throwing an
2ronwalf * exception.
2ronwalf *
2ronwalf * @param atoms
2ronwalf */
2ronwalf public void applyGround(AtomList atoms);
2ronwalf
2ronwalf /**
2ronwalf * Check if the conjunction of given atoms is entailed by the model.
2ronwalf *
2ronwalf * @param expr
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isTrue(ABoxQuery query);
2ronwalf
2ronwalf /**
2ronwalf * Check if the condition is true in this model. The condition is transformed into an
2ronwalf * <code>ABoxQuery</code> and then it is checked if the conjunction of atoms in the
2ronwalf * query is entailed by the model. This is equivalent to the call
2ronwalf * <code>isTrue( condition.getBody().toQuery() ).</code>
2ronwalf *
2ronwalf * @param expr
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isTrue(Condition condition);
2ronwalf
2ronwalf
2ronwalf /**
2ronwalf * Apply the given binding to the condition, thus grounding some of the variables,
2ronwalf * and then check if this condition is true in this model.
2ronwalf *
2ronwalf * @param expr
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isTrue(Condition condition, ValueMap binding);
2ronwalf
2ronwalf /**
2ronwalf * Answer the given ABoxQuery and return a List of ValueMap's that contains the
2ronwalf * bindings for the result variables of the query. An empty list of answers
2ronwalf * indicates there are no answers for the query. If the query is ground, i.e.
2ronwalf * no variables in the body, then the returned list contains a single empty
2ronwalf * ValueMap object if the atoms in the query are entailed (again an empty list
2ronwalf * in case of failure)
2ronwalf *
2ronwalf * @param query
2ronwalf * @return
2ronwalf */
2ronwalf public List query(ABoxQuery query);
2ronwalf
2ronwalf /**
2ronwalf * Answer the given ABoxQuery passing in an initial binding of some of the variables
2ronwalf * in the query. This function returns a List of ValueMap's that contains the
2ronwalf * bindings for the result variables of the query. An empty list of answers
2ronwalf * indicates there are no answers for the query. If the query is ground, i.e.
2ronwalf * no variables in the body, then the returned list contains a single empty
2ronwalf * ValueMap object if the atoms in the query are entailed (again an empty list
2ronwalf * in case of failure)
2ronwalf *
2ronwalf * @param query
2ronwalf * @param values
2ronwalf * @return
2ronwalf */
2ronwalf public List query(ABoxQuery query, ValueMap values);
2ronwalf
2ronwalf /**
2ronwalf *
2ronwalf * @param query
2ronwalf * @return
2ronwalf */
2ronwalf public List query(String query);
2ronwalf
2ronwalf
2ronwalf /**
2ronwalf * Checks if this implementation supports locking for concurrent access;
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isLockSupported();
2ronwalf
2ronwalf /**
2ronwalf * Lock the model for read operations. Multiple read operations are allowed for the same
2ronwalf * model. When the model is locked for reading no operation that would modify the model
2ronwalf * should be called. Throws an error if the model does not support concurrency, i.e.
2ronwalf * isLockSupported function returns false.
2ronwalf *
2ronwalf * @throws LockNotSupportedException
2ronwalf */
2ronwalf public void lockForRead() throws LockNotSupportedException;
2ronwalf
2ronwalf /**
2ronwalf * Lock the model for write operations. No other thread can access the model while there is
2ronwalf * a write lock. Throws an error if the model does not support concurrency, i.e.
2ronwalf * isLockSupported function returns false.
2ronwalf *
2ronwalf * @throws LockNotSupportedException
2ronwalf */
2ronwalf public void lockForWrite() throws LockNotSupportedException;
2ronwalf
2ronwalf /**
2ronwalf * Releases the lock form the matching lockForXXX function.
2ronwalf */
2ronwalf public void releaseLock() throws LockNotSupportedException;
2ronwalf
2ronwalf public List getServices();
2ronwalf public Service getService(URI serviceURI);
2ronwalf
2ronwalf public List getProfiles();
2ronwalf public Profile getProfile(URI profileURI);
2ronwalf
2ronwalf public List getProcesses();
2ronwalf public List getProcesses(int type);
2ronwalf public Process getProcess(URI processURI);
2ronwalf
2ronwalf public AnyOrder createAnyOrder();
2ronwalf public AnyOrder createAnyOrder(URI uri);
2ronwalf
2ronwalf public AtomicProcess createAtomicProcess();
2ronwalf public AtomicProcess createAtomicProcess(URI uri);
2ronwalf
2ronwalf public Choice createChoice();
2ronwalf public Choice createChoice(URI uri);
2ronwalf
2ronwalf public CompositeProcess createCompositeProcess();
2ronwalf public CompositeProcess createCompositeProcess(URI uri);
2ronwalf
2ronwalf public Condition createSWRLCondition();
2ronwalf public Condition createSWRLCondition(URI uri);
2ronwalf
2ronwalf public ControlConstructList createControlConstructList(ControlConstruct item);
2ronwalf public ControlConstructBag createControlConstructBag(ControlConstruct item);
2ronwalf
2ronwalf public Expression createSWRLExpression();
2ronwalf public Expression createSWRLExpression(URI uri);
2ronwalf
2ronwalf public ForEach createForEach();
2ronwalf public ForEach createForEach(URI uri);
2ronwalf
2ronwalf public Grounding createGrounding();
2ronwalf public Grounding createGrounding(URI uri);
2ronwalf
2ronwalf public IfThenElse createIfThenElse();
2ronwalf public IfThenElse createIfThenElse(URI uri);
2ronwalf
2ronwalf public Input createInput();
2ronwalf public Input createInput(URI uri);
2ronwalf
2ronwalf public InputBinding createInputBinding();
2ronwalf public InputBinding createInputBinding(URI uri);
2ronwalf
2ronwalf public Local createLocal();
2ronwalf public Local createLocal(URI uri);
2ronwalf
2ronwalf public MessageMap createWSDLInputMessageMap();
2ronwalf public MessageMap createWSDLInputMessageMap(URI uri);
2ronwalf
2ronwalf public MessageMap createWSDLOutputMessageMap();
2ronwalf public MessageMap createWSDLOutputMessageMap(URI uri);
2ronwalf
2ronwalf public MessageMap createUPnPMessageMap();
2ronwalf public MessageMap createUPnPMessageMap(URI uri);
2ronwalf
2ronwalf public Output createOutput();
2ronwalf public Output createOutput(URI uri);
2ronwalf
2ronwalf public OutputBinding createOutputBinding();
2ronwalf public OutputBinding createOutputBinding(URI uri);
2ronwalf
2ronwalf public Perform createPerform();
2ronwalf public Perform createPerform(URI uri);
2ronwalf public Perform createPerform(OWLIndividual individual);
2ronwalf
2ronwalf public Produce createProduce();
2ronwalf public Produce createProduce(URI uri);
2ronwalf
2ronwalf public Profile createProfile();
2ronwalf public Profile createProfile(URI uri);
2ronwalf
2ronwalf public RepeatUntil createRepeatUntil();
2ronwalf public RepeatUntil createRepeatUntil(URI uri);
2ronwalf
2ronwalf public RepeatWhile createRepeatWhile();
2ronwalf public RepeatWhile createRepeatWhile(URI uri);
2ronwalf
2ronwalf public Result createResult();
2ronwalf public Result createResult(URI uri);
2ronwalf
2ronwalf public Sequence createSequence();
2ronwalf public Sequence createSequence(URI uri);
2ronwalf
2ronwalf public Service createService();
2ronwalf public Service createService(URI uri);
2ronwalf
2ronwalf public ServiceParameter createServiceParameter();
2ronwalf public ServiceParameter createServiceParameter(URI uri);
2ronwalf
2ronwalf public Split createSplit();
2ronwalf public Split createSplit(URI uri);
2ronwalf
2ronwalf public SplitJoin createSplitJoin();
2ronwalf public SplitJoin createSplitJoin(URI uri);
2ronwalf
2ronwalf //added 15.4.2005 by Michael Daenzer for Java-Grounding
2ronwalf public JavaAtomicGrounding createJavaAtomicGrounding();
2ronwalf public JavaAtomicGrounding createJavaAtomicGrounding(URI uri);
2ronwalf public Grounding createJavaGrounding();
2ronwalf public Grounding createJavaGrounding(URI uri);
2ronwalf // end added
2ronwalf
2ronwalf public UPnPAtomicGrounding createUPnPAtomicGrounding();
2ronwalf public UPnPAtomicGrounding createUPnPAtomicGrounding(URI uri);
2ronwalf
2ronwalf public ValueOf createValueOf();
2ronwalf public ValueOf createValueOf(URI uri);
2ronwalf
2ronwalf public WSDLAtomicGrounding createWSDLAtomicGrounding();
2ronwalf public WSDLAtomicGrounding createWSDLAtomicGrounding(URI uri);
2ronwalf
2ronwalf public WSDLOperationRef createWSDLOperationRef();
2ronwalf public WSDLOperationRef createWSDLOperationRef(URI uri);
2ronwalf
2ronwalf public ValueData createValueData(OWLValue dataValue);
2ronwalf
2ronwalf public OWLSObjList createList();
2ronwalf
2ronwalf public OWLSObjList createList(OWLIndividual item);
2ronwalf
2ronwalf public OWLSObjList createList(OWLIndividualList items);
2ronwalf
2ronwalf public RDFList createList(ListVocabulary vocabulary);
2ronwalf
2ronwalf public RDFList createList(ListVocabulary vocabulary, OWLIndividual item);
2ronwalf
2ronwalf public RDFList createList(ListVocabulary vocabulary, OWLIndividualList items);
2ronwalf
2ronwalf /**
2ronwalf * Turn the RDF/XML representation into an OWLIndividual
2ronwalf * @param literal
2ronwalf * @return
2ronwalf */
2ronwalf public OWLIndividual parseLiteral(String literal);
2ronwalf
2ronwalf /**
2ronwalf * Return true if given two individuals are same as each other as dictated by the
2ronwalf * semantics of owl:sameAs.
2ronwalf *
2ronwalf * @param ind1
2ronwalf * @param ind2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isSameAs(OWLIndividual ind1, OWLIndividual ind2);
2ronwalf
2ronwalf public OWLIndividualList getSameIndividuals(OWLIndividual ind);
2ronwalf
2ronwalf /**
2ronwalf * Return true if given two individuals are different from each other as
2ronwalf * dictated by the semantics of owl:differentFrom.
2ronwalf *
2ronwalf * @param ind1
2ronwalf * @param ind2
2ronwalf * @return
2ronwalf */
2ronwalf public boolean isDifferentFrom(OWLIndividual ind1, OWLIndividual ind2);
2ronwalf
2ronwalf public OWLIndividualList getDifferentIndividuals(OWLIndividual ind);
2ronwalf
2ronwalf public OWLWriter getWriter();
2ronwalf public void write(Writer writer);
2ronwalf public void write(Writer writer, URI baseURI);
2ronwalf public void write(OutputStream out);
2ronwalf public void write(OutputStream out, URI baseURI);
22daenzerorama
22daenzerorama /**
28daenzerorama * Returns a list with all individuals that do not belong to the OWL-S language
28daenzerorama * definition and its base and helpers languages such as OWL, RDF or SWRL.
28daenzerorama *
28daenzerorama * @return all individuals do not belong to the OWL-S language definition
28daenzerorama */
28daenzerorama public List getNonLanguageIndividuals();
28daenzerorama
28daenzerorama /**
22daenzerorama * Returns a list with all classes that do not belong to the OWL-S language
22daenzerorama * definition and its base and helpers languages such as OWL, RDF or SWRL.
22daenzerorama *
22daenzerorama * @return all classes do not belong to the OWL-S language definition
22daenzerorama */
22daenzerorama public List getNonLanguageClasses();
22daenzerorama /**
22daenzerorama * Returns a list with all object properties that do not belong to the OWL-S language
22daenzerorama * definition and its base and helpers languages such as OWL, RDF or SWRL.
22daenzerorama *
22daenzerorama * @return all object properties do not belong to the OWL-S language definition
22daenzerorama */
22daenzerorama public List getNonLanguageObjectProperties();
22daenzerorama /**
22daenzerorama * Returns a list with all datatype properties that do not belong to the OWL-S language
22daenzerorama * definition and its base and helpers languages such as OWL, RDF or SWRL.
22daenzerorama *
22daenzerorama * @return all datatype do not belong to the OWL-S language definition
22daenzerorama */
22daenzerorama public List getNonLanguageDataProperties();
22daenzerorama
39daenzerorama public BindingList getBindingsFor(Parameter parameter);
2ronwalf}