package tudelft.healthpsychology.traumaontologies.answerstate;
import java.util.Collection;
import java.util.List;
import org.semanticweb.owlapi.model.OWLClass;
import tudelft.utilities.tree.TreeNode;
/**
* This is a node (class) in the ontology. The ontology builds a tree of terms
* and subterms, eg "Apparatus" would be a term and "Vacuum cleaner" a subterm
* of it. The IRI contains eg "#Apparatus" and should refer properly to the IRIs
* in the ontology.
* This class abstracts away all database querying and RDF stuff, facilitating
* testing and code readability.
*
* The nodes in the ontology graph have properties. These properties are
* questions to be filled in separately.
*
* We use a String as label of the nodes that are referring to {@link OWLClass}
* objects.
*
*/
public interface OntologyNode extends TreeNode> {
/**
* @param depth Must be positive or 0. 0 means node itself, 1 means direct
* children, 2 means children of the children, etc.
* @return list with only this node if this is a leaf node or depth=0. If
* this is not a leaf node, then returns a list joining all
* getChildren(depth-1) of each child.
*/
List getChildren(int depth);
/**
* @return the parent of this node. Null if no such node eg if this is the
* root node.
*/
OntologyNode getParent();
}