Class Graph#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Types#

  • public GraphObject

  • public Iterable< Edge >

  • public Graph

  • public Graphable

  • public TripleStore

Class Documentation#

class Graph : public GraphObject, public Iterable<Edge>, public Graph, public Graphable, public TripleStore#

Graph Manager Edges are stored in an index An index is a table: predicate -> List<Edge> Edge List are sorted Join on a Node is computed by dichotomy getEdges() return edges of all named graphs as quads Default Graph: g.getDefault().iterate() Named Graphs: g.getNamed().iterate() See DataProducer for more iterators.

Author

Olivier Corby, Edelweiss INRIA 2010

Public Functions

inline boolean isSkolem()#
inline void setSkolem(boolean isSkolem)#
inline String getName()#
inline void setName(String name)#
inline boolean isFlawed()#

Contain undefined datatype.

inline boolean isCorrect()#
inline boolean typeCheck()#
inline boolean conform()#
inline boolean isTuple()#
inline void setTuple(boolean isTuple)#
inline boolean hasRuleEdgeList()#
inline void setHasList(boolean hasRuleEdgeList)#
inline String toGraph()#
inline void setGraph(Object obj)#
inline Object getGraph()#
inline Graph getTripleStore()#
inline String getDatatypeLabel()#
inline Iterable<Edge> getLoop()#

Return copy edges in specific objects.

Returns:

inline Iterable<Edge> getEdgesRDF4J(Node s, Node p, Node o, Node... from)#

Return statements with the specified subject, predicate, object and (optionally) from exist in this graph.

Parameters:
  • s – The subject of the statements to match, null to match statements with any subject.

  • p – Predicate of the statements to match, null to match statements with any predicate.

  • o – Object of the statements to match, null to match statements with any object.

  • from – Contexts of the statements to match. If from = Node[0] or from = null, statements will match disregarding their context.

Returns:

List of edges that match the specified pattern.

inline Iterator<Edge> iterator()#

Iterate graph edges Successive edges of the same property are returned in the “same physical” Edge object The reason is that edges are stored without the property Node.

Iterator creates a buffer to store a copy of edges with the property Node. For performance purpose in SPARQL Producer, we iterate edges in the same buffer If needed, it may be necessary to make copy of edge buffer using g.getEdgeFactory().copy(edge) .

inline IDatatype getValue(String var, int n)#
inline Context getContext()#
inline void setContext(Context context)#
inline PointerType pointerType()#
inline int getDefaultGraphMode()#
inline void setDefaultGraphMode(int defaultGraph)#
inline TreeNode treeNode()#
inline Graph()#
inline Graph(int length)#
inline Node getNode(int n)#
inline Node getNodeDefault()#
inline Node getNodeRule()#
inline Node getNodeEntail()#
inline EdgeFactory getEdgeFactory()#
inline void setOptimize(boolean b)#
inline void setByIndex(boolean b)#

set byIndex on this graph only reset EdgeIndex as well and sort edge list accordingly

inline boolean isByIndex()#
inline boolean isLog()#
inline Log getLog()#
inline void setLog(Log l)#
inline void log(int type, Object obj)#
inline void log(int type, Object obj1, Object obj2)#
inline void addEngine(Engine e)#
inline void removeEngine(Engine e)#
inline Workflow getWorkflow()#
inline void setWorkflow(Workflow wf)#
inline void setClearEntailment(boolean b)#
inline synchronized void process ()

Process entailments.

inline synchronized void process (Engine e)
inline synchronized void remove ()

Remove entailments.

inline void addListener(GraphListener gl)#
inline void removeListener(GraphListener gl)#
inline void removeListener()#
inline void setTagger(Tagger t)#
inline Tagger getTagger()#
inline Lock readLock()#
inline Lock writeLock()#
inline ReentrantReadWriteLock getLock()#
inline boolean isReadLocked()#
inline boolean isLocked()#
inline Entailment getEntailment()#
inline void setEntailment()#

Set RDFS entailment.

inline synchronized void setRDFSEntailment (boolean b)

Use Case: GUI Remove or perform RDFS Entailment.

inline void pragmaRDFSentailment(boolean b)#
inline void set(String property, boolean value)#
inline String toString()#
inline String toRDF()#
inline NodeManager getNodeManager()#
inline Graphable describe()#

Generate an RDF Graph that describes the KGRAM system and the current RDF graph.

inline String toString2()#
inline String display(int max)#
inline String display()#
inline String display(int n, int max)#
inline Entailment getProxy()#
inline boolean isType(Edge edge)#
inline boolean isType(Node pred)#
inline boolean isSubClassOf(Node pred)#
inline boolean isSubClassOf(Node node, Node sup)#
inline EventManager getEventManager()#

Consistency Management

inline void setEventHandler(EventHandler h)#
inline void setVerbose(boolean b)#
inline boolean isVerbose()#
inline boolean isEdgeMetadata()#
inline boolean isRDFStar()#
inline void setEdgeMetadata(boolean b)#
inline synchronized void init ()

EventManager call init() before query execution First time: Index graph: edge list sorted and reduced, compute graph node index Next time: recompute graph node index All time: Perform entailment.

inline IDatatype start()#
inline void clean()#
inline void cleanEdge()#
inline boolean hasEntailment()#
inline boolean isIndexable()#
inline void setIndexable(boolean b)#
inline boolean isIndexed()#
inline void setIndexed(boolean b)#
inline void initPath()#

Property Path start a new shortest path Only with one user (no thread here)

Deprecated:

inline ValueResolver getValueResolver()#

inline EdgeManagerIndexer getIndex()#
inline void finishUpdate()#
inline void finishRuleEngine()#
inline void startLoad()#
inline void clearNodeManager()#
inline void tuneNodeManager(boolean b)#

Pragma: to be called after reduce (after index()))

Parameters:

b

inline void index()#

When load is finished, sort edges Side effect: index NodeManager.

inline void compact()#
inline void cleanIndex()#
inline void prepare()#

Prepare the graph in order to perform eg a Query In practice it generates the Index properly.

inline void indexNodeManager()#

Index node -> (predicate:position) Pragma: graph must be indexed first.

inline void indexResources()#
inline void define(Edge ent)#
inline Iterable<Node> getProperties()#
inline Iterable<Node> getSortedProperties()#
inline IDatatype set(IDatatype key, IDatatype value)#
inline Edge add(Edge edge)#
inline Edge add(Edge edge, boolean duplicate)#
inline boolean exist(Edge edge)#
inline Edge find(Edge edge)#
inline Edge findEdge(Node s, Node p, Node o)#
inline TripleNode findTriple(Node s, Node p, Node o)#
inline boolean exist(Node p, Node n1, Node n2)#
inline Edge addEdgeWithNode(Edge ee)#
inline Edge insertEdgeWithTargetNode(Edge ee)#

DataManager create and insert nodes in graph and then insert edge.

inline Iterable<Edge> deleteEdgeWithTargetNode(Edge edge)#
inline void addEdgeNode(Edge ee)#
inline Node addList(List<Node> list)#
inline Node addList(Node g, List<Node> list)#
inline Edge addEdge(Edge edge)#
inline Edge addEdge(Edge edge, boolean duplicate)#
inline void addOpt(Node p, List<Edge> list)#
inline void addOpt(List<Edge> list)#

Use cas: RuleEngine PRAGMA: edges in list do not exists in graph (no duplicate)

inline List<Edge> copy(List<Edge> list)#

Use case: Entailment PRAGMA: edges in list may exist in graph.

inline Edge create(Node source, Node subject, Node predicate, Node value)#
inline Edge createForInsert(Node source, Node subject, Node predicate, Node value)#

create edge for insert in the graph pragma: nodes are already inserted

inline Edge createDelete(Node source, Node subject, Node predicate, Node value)#
inline Edge createDelete(IDatatype source, IDatatype subject, IDatatype predicate, IDatatype value)#
inline Edge create(Node source, Node predicate, List<Node> list)#
inline Edge create(Node source, Node predicate, List<Node> list, boolean nested)#
inline Edge createDelete(Node source, Node predicate, List<Node> list)#
inline Edge create(IDatatype source, IDatatype subject, IDatatype predicate, IDatatype value, IDatatype ref)#
inline IDatatype createTriple(IDatatype s, IDatatype p, IDatatype o)#
inline Edge create(IDatatype source, IDatatype subject, IDatatype predicate, IDatatype value)#
inline Edge create(IDatatype subject, IDatatype predicate, IDatatype value)#
inline int size()#
inline int nbNodes()#
inline int getNodeIndex()#
inline int nbResources()#
inline int nbIndividuals()#
inline int nbBlanks()#
inline int nbTriples()#
inline int nbLiterals()#
inline void setSize(int n)#
inline Node copy(Node node)#
inline Node getTopClass()#
inline Node getTopClass(String defaut, String... nameList)#
inline Node getTopProperty()#
inline List<Node> getTopLevel(Node predicate)#

predicate = rdfs:subClassOf return top level classes: those that are object of subClassOf but not subject

inline List<Node> getTopProperties()#
inline Node getNode(Node gNode, IDatatype dt, boolean create, boolean add)#
inline Node getNode(Node node)#

Given a constant query node, return the target node in current graph if it exists.

inline Node getVertex(Node node)#
inline Node createNode(IDatatype dt)#
inline Node addNode(IDatatype dt)#
inline Node addNode(Node node)#
inline Node getNode(IDatatype dt, boolean create, boolean add)#
inline Node getExtNode(Node node)#
inline Node getResourceNode(IDatatype dt, boolean create, boolean add)#
inline Node getBlankNode1(IDatatype dt, boolean create, boolean add)#
inline Node getBlankNode(IDatatype dt, boolean create, boolean add)#
inline Node getTripleNode(IDatatype dt, boolean create, boolean add)#
inline Node getLiteralNode(IDatatype dt, boolean create, boolean add)#
inline Node getResource(String name)#

Retrieve a node/graph node/property node.

inline boolean isIndividual(Node node)#
inline Node getNode(String name)#
inline Node getBlankNode1(String name)#
inline Node getBlankNode(String name)#
inline Node getBlankNodeBasic(String name)#
inline Node getBlankNodeGraph(String name)#
inline Node getTripleNode(String name)#
inline void removeTripleNode(Node node)#
inline void add(Node node)#
inline void add(Node node, int n)#
inline void addLiteralNode(IDatatype dt, Node node)#
inline Node getLiteralNode(IDatatype dt)#
inline Node getExtLiteralNode(IDatatype dt)#
inline Node getLiteralNode(String key, IDatatype dt)#
inline Node getGraphNode(String label)#
inline Node getGraphNode(Node node)#
inline Node getGraphNodeWithExternal(Node node)#

Include external named graph node.

inline void addGraphNode(Node gNode)#
inline boolean containsCoreseNode(Node node)#
inline Node getPropertyNode(String label)#
inline Node getPropertyNode(Node p)#
inline void addPropertyNode(Node pNode)#
inline DataStore getDataStore()#
inline DataProducer getDefault()#
inline DataProducer getNamed()#
inline Iterable<Edge> getEdges()#
inline Edge getEdge(Node pred, Node node, int index)#
inline Iterable<Edge> iterate(Node s, Node p, Node o, List<Node> from)#
inline Iterable<Edge> insert(Node s, Node p, Node o, List<Node> contexts)#
inline Iterable< Edge > delete (Node s, Node p, Node o, List< Node > contexts)
inline Node value(Node subj, Node pred, int n)#
inline Edge getEdge(String name, Node node, int index)#
inline Edge getEdge(String name, String arg, int index)#
inline IDatatype getValue(String name, IDatatype dt)#
inline IDatatype getValue(String name, Node node)#
inline Node getNode(String name, Node node)#
inline Iterable<Node> getNodes(Node pred, Node node, int n)#
inline void trace(String format, Object... obj)#
inline Iterable<Edge> properGetEdges(Node predicate, Node node, Node node2, int n)#
inline Iterable<Edge> getEdges(Node predicate, Node node, int n)#
inline Iterable<Edge> getEdges(Node predicate, Node node, Node node2, int n)#
inline Iterable<Edge> basicEdges(Node predicate, Node node, Node node2, int n)#
inline Iterable<Edge> getAllEdges(Node predicate, Node node, Node node2, int n)#

with rdfs:subPropertyOf

inline Iterable<Node> getProperties(Node p)#
inline List<Node> getLists()#

Return start blank node for all lists.

inline Node getRoot()#

Return the root of the graph, when it is a tree (e.g.

SPIN Graph)

inline boolean hasEdge(Node node, int i)#
inline List<Node> getList(Node node)#
inline List<IDatatype> getDatatypeList(IDatatype dt)#
inline List<IDatatype> getDatatypeList(Node node)#
inline IDatatype list(Node node)#
inline ArrayList<IDatatype> reclist(Node node)#
inline Iterable<Edge> getNodeEdges(Node node)#
inline Iterable<Edge> getNodeEdges(Node gNode, Node node)#
inline List<EdgeManagerIndexer> getIndexList()#
inline EdgeManagerIndexer getIndex(int n)#
inline Iterable<Edge> getEdges(Node node, int n)#
inline Iterable<Edge> getSortedEdgesBasic(Node node, int n)#
inline Iterable<Edge> getEdges(String p)#
inline Edge getEdge(String p)#
inline Iterable<Edge> getEdges(String p, Node n, int i)#
inline Iterable<Edge> getEdges(IDatatype s, IDatatype p, IDatatype o)#
inline Iterable<Edge> getEdges(Node predicate)#
inline int size(Node predicate)#
inline Node getGraphNode()#
inline Iterable<Node> getGraphNodes()#
inline Iterable<Node> getGraphNodes(List<Node> from)#

from is empty: return defined named graph list from is not empty: return subset of defined named graph member of from

When from is empty: iterate standard named graph nodes and when isAllGraphNode() = true include external named graph nodes

When from is not empty: include external graph node that are in from because they are explicitly required in the query use case: sparql micro service need external graph node

inline Iterable<Node> getTheGraphNodes()#
inline List<Node> getGraphNodesExtern()#
inline Iterable<Node> getGraphNodesAll()#
inline int nbGraphNodes()#
inline Iterable<Node> getNodes()#
inline Iterable<Node> getBlankNodes()#
inline Iterable<Node> getTripleNodes()#
inline Hashtable<String, Node> getTripleNodeMap()#
inline Iterable<Node> getRBNodes()#

resource & blank TODO: a node may have been deleted (by a delete triple) but still be in the table

inline Iterable<Node> getSubjectNodes()#
inline Iterable<Node> getLiteralNodes()#
inline Iterable<Node> getAllNodeIterator()#

return graph vertex: subject/object of asserted edges return iterable of NodeGraph(node, graph) MUST perform n.getNode() to get the node compute graph nodes (only if it has not been already computed)

inline Iterable<Node> getAllNodeIterator2()#
inline Iterable<Node> getNodeIterator()#

Iterate nodes from basic graph node tables not exactly graph vertex with rdf star.

Note

: consider nodes from nested triple although they are just quoted

inline Iterable<Node> getNodeGraphIterator()#

return iterable of NodeGraph(node, graph) MUST perform n.getNode() to get the node

inline Iterable<Node> getNodeGraphIterator(Node gNode)#
inline boolean contains(Node graph, Node node)#
inline NodeGraphIndex getNodeGraphIndex()#
inline Node addLiteral(String pred, String label, String datatype, String lang)#

May infer datatype from property range.

inline IDatatype createLiteral(String pred, String label, String datatype, String lang)#

May infer datatype from property range.

inline String newBlankID()#
inline String newTripleReferenceID()#
inline String skolem(String id)#
inline IDatatype skolem(IDatatype dt)#
inline Node skolem(Node node)#
inline void deleteGraph(String name)#
inline void setStorage(int type, Parameters params)#
inline void setStorage(int type)#
inline IStorage getStorageMgr()#
inline IDatatype getValue(Node node)#
inline Node createNode(String name)#
inline boolean compare(Graph g)#

Graph operations

inline boolean compare(Graph g, boolean isGraph)#
inline boolean compare(Graph g2, boolean isGraph, boolean detail, boolean isDebug)#
inline List<Graph> split()#

Create a graph for each named graph.

inline List<Edge> getEdgeList(Node n)#
inline List<Edge> getEdgeListSimple(Node n)#

Without rule entailment.

inline Edge insert(Edge ent)#

Update

inline List< Edge > delete (Edge edge)
inline List< Edge > delete (Edge edge, List< Constant > from)
inline void clear()#
inline boolean clearDefault()#
inline boolean clearNamed()#
inline boolean dropGraphNames()#
inline boolean clear(String uri, boolean isSilent)#
inline boolean clear(String graph_name)#
inline boolean update(String source, String target, boolean isSilent, int mode)#
inline boolean add(String source, String target, boolean isSilent)#
inline boolean move(String source, String target, boolean isSilent)#
inline boolean copy(String source, String target, boolean isSilent)#
inline void setClassDistance(Distance distance)#

Distance

inline synchronized Distance setClassDistance ()
inline Distance getClassDistance()#
inline void setPropertyDistance(Distance distance)#
inline synchronized Distance setPropertyDistance ()
inline Distance getPropertyDistance()#
inline Edge copy(Edge edge)#

User API

TODO: no code here, use call to basic methods secure addEdge wrt addGraph/addProperty api with IDatatype

Add a copy of edge Use case: edge comes from another graph, create a local copy of nodes

inline Edge copy(Node gNode, Node pred, Edge ent)#

TODO: setUpdate(true)

inline void copy(Graph g)#
inline Graph copy()#
inline Graph empty()#
inline Graph construct()#
inline Graph union (Graph g)
inline Graph merge(Graph g)#
inline Edge add(Node source, Node subject, Node predicate, Node value)#

Add edge and add it’s nodes Node MUST be graph node.

inline Edge insert(Node s, Node p, Node o)#
inline Edge insert(Node g, Node s, Node p, Node o)#
inline Edge insert(IDatatype subject, IDatatype predicate, IDatatype value)#

Add edge and add it’s nodes xt:insert.

inline Edge insert(IDatatype source, IDatatype subject, IDatatype predicate, IDatatype value)#
inline List< Edge > delete (Node s, Node p, Node o)
inline List< Edge > delete (Node g, Node s, Node p, Node o)
inline List< Edge > delete (IDatatype subject, IDatatype predicate, IDatatype value)
inline List< Edge > delete (IDatatype source, IDatatype subject, IDatatype predicate, IDatatype value)
inline Edge addEdge(Node source, Node subject, Node predicate, Node value)#

Add Edge, not add nodes.

inline Edge addEdge(Node subject, Node predicate, Node value)#
inline Edge addEdge(Node source, Node predicate, List<Node> list)#
inline Node addGraph(String label)#

Graph in itself is not considered as a graph node for SPARQL path unless explicitely referenced as a subject or object Hence ?x :p* ?y does not return named graph nodes.

inline Node addGraph(String label, boolean bnode)#
inline Node addDefaultGraphNode()#
inline boolean isDefaultGraphNode(Node g)#
inline boolean isDefaultGraphNode(String name)#
inline Node getDefaultGraphNode()#
inline IDatatype getDefaultGraphDatatypeValue()#
inline Node addRuleGraphNode()#
inline Node getRuleGraphNode()#
inline Node addConstraintGraphNode()#
inline Node getConstraintGraphNode()#
inline Graph getConstraintGraph()#
inline boolean isRuleGraphNode(Node node)#
inline Node addResource(String label)#
inline Node addProperty(String label)#

Property in itself is not considered as a graph node for SPARQL path unless explicitely referenced as a subject or object Hence ?x :p* ?y does not return property nodes.

inline Node addBlank(String label)#

label must have been generated by newBlankID()

inline Edge beforeInsert(Edge edge)#
inline Node addTripleReference()#
inline Node addTripleReference(String label)#
inline Node addTripleReference(Node s, Node p, Node o)#
inline Node getTripleReference(Node s, Node p, Node o)#
inline Node getTripleReference(Edge edge)#
inline IDatatype createTripleReference(Node s, Node p, Node o)#
inline IDatatype createTripleReference(Edge edge)#
inline String reference(Node s, Node p, Node o)#

generate unique reference node ID for given s p o pragma: nodes MUST have been inserted in the graph to have an index _:ti.j.k where i, j, k are node index

inline String reference(Node n)#
inline IDatatype createTripleReference()#
inline IDatatype createBlank(String label)#
inline Node addBlank()#
inline Node addTripleName()#
inline Node addLiteral(String label, String datatype, String lang)#
inline Node addLiteral(String label, String datatype)#
inline Node addLiteral(String label)#
inline Node addLiteral(int n)#
inline Node addLiteral(long n)#
inline Node addLiteral(double n)#
inline Node addLiteral(float n)#
inline Node addLiteral(boolean n)#
inline void setDebug(boolean b)#
inline void setDebugMode(boolean b)#
inline void tag(Edge ent)#
inline boolean hasTag()#
inline void setTag(boolean b)#
inline void logDelete(Edge ent)#

This log would be used to broadcast deletion to peers.

inline void logInsert(Edge ent)#
inline void declareUpdate(boolean b)#
inline void logStart(Query q)#
inline void logFinish(Query q)#
inline void logFinish(Query q, Mappings m)#
inline void logLoad(String path)#
inline boolean onInsert(Edge ent)#
inline boolean check(Query q)#

Check if query may succeed on graph PRAGMA: no RDFS entailments, simple RDF match.

inline void shareNamedGraph(Graph g)#
inline Collection<String> getNames()#
inline Graph getNamedGraph(String name)#
inline Graph setNamedGraph(String name, Graph g)#
inline Dataset getDataset()#
inline Graph getRuleGraph(boolean constraint)#
inline Node getRuleGraphName(boolean constraint)#
inline boolean isMetadata()#
inline boolean isMetadataNode()#
inline boolean isFormerMetadata()#
inline void setMetadata(boolean metadata)#
inline JSONObject match(ASTQuery ast)#

For each triple pattern: Search if there exists graph name, subject, property, object in the graph with similar URI mode=message&param=sv:distance~n => levenshtein distance <= n

inline JSONObject match(ASTQuery ast, int d)#
inline JSONObject cardinality(ASTQuery ast)#
inline SortedMap<IDatatype, Node> getLiteralNodeManager()#
inline void setLiteralNodeManager(SortedMap<IDatatype, Node> literal)#
inline SortedMap<IDatatype, Node> getLiteralIndexManager()#
inline void setLiteralIndexManager(SortedMap<IDatatype, Node> sliteral)#
inline boolean isAllGraphNode()#
inline void setAllGraphNode(boolean allGraphNode)#
inline EdgeManagerIndexer getSubjectIndex()#
inline void setIndexList(ArrayList<EdgeManagerIndexer> tables)#
inline boolean isDebugSparql()#
inline void setDebugSparql(boolean debugSparql)#
inline List<GraphListener> getListenerList()#
inline void setListenerList(List<GraphListener> listenerList)#

Public Static Functions

static inline Graph create()#
static inline Graph create(boolean b)#
Parameters:

b – true for RDFS entailment

static inline void setValueTable(boolean b)#
static inline void setCompareKey(boolean b)#
static inline void setCompareIndex(boolean b)#

Edge Index is sorted on integer index value of Node Set default behavior for all graphs PRAGMA: PB with several graphs, index are not shared.

static inline void setDistinctDatatype(boolean b)#
static inline void setNodeAsDatatype(boolean b)#
static inline void setEdgeMetadataDefault(boolean b)#
static inline void setRDFStar(boolean b)#
static inline boolean isTopRelation(Node predicate)#
static inline void setDefaultVerbose(boolean b)#
static inline void setDefaultSkolem(boolean b)#

Public Static Attributes

static final String SYSTEM   = ExpType.KGRAM + "system"
static final String TOPREL   = fr.inria.corese.sparql.triple.cst.RDFS.RootPropertyURI
static boolean valueOut = !true#
static final int IGRAPH   = -1
static final int ILIST   = -2
static final int LENGTH   = 2
static final int DEFAULT   = 0
static final int EXTENSION   = 1
static final int COPY   = 0
static final int MOVE   = 1
static final int ADD   = 2
static final int CLEAR   = 3
static String BLANK = "_:b"#
static String TRIPLE_REF = "_:t"#
static boolean VERBOSE = false#
static boolean DEBUG_SPARQL = false#
static boolean SKOLEM_DEFAULT = false#
static boolean EXTERNAL_NAMED_GRAPH = false#
static boolean CONSTRAINT_NAMED_GRAPH = true#
static boolean CONSTRAINT_GRAPH = false#
static boolean METADATA_DEFAULT = false#
static boolean EDGE_METADATA_DEFAULT = false#
static boolean RDFS_ENTAILMENT_DEFAULT = true#
static boolean TRIPLE_UNIQUE_NAME = true#
static final int DEFAULT_INDEX   = 0
static final int ENTAIL_INDEX   = 1
static final int RULE_INDEX   = 2
static final int RULE_CONSTRAINT   = 3
static final int SUBCLASS_INDEX   = 4
static final int LABEL_INDEX   = 5
static final int TYPE_INDEX   = 6
static final int FIRST_INDEX   = 7
static final int REST_INDEX   = 8
static final int DEFAULT_UNION   = 0
static final int DEFAULT_GRAPH   = 1
static int DEFAULT_GRAPH_MODE = DEFAULT_UNION#
class TreeNode : public java::util::TreeMap<IDatatype, Node>#

With CompareNode: manage 1, 01, 1.0 as different Node (with same index) With CompareIndex: manage IDatatype(1) IDatatype(01) IDatatype(1.0) with same index With CompareIndexStrict: manage IDatatype(1) IDatatype(01) with same index and 1.0 with different index (sparql compliant)

Public Functions

inline TreeNode()#