Class TdbGraphSet

  • Direct Known Subclasses:
    TdbSubGraph

    public abstract class TdbGraphSet
    extends java.lang.Object
    Represents a graph database, a graph cluster or a subgraph based on a graph query.

    THIS CLASS IS EXPERIMENTAL. USE WITH CAUTION! ITS INTERFACE MAY CHANGE IN FUTURE RELEASES.

    Since:
    TRIPjxp 3.1
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      TdbGraphSet backtrack​(java.lang.String edge, int sourceSet)
      Creates a subgraph by following a particular edge type backwards from target vertex in the current graph set to source vertex in the specified source set.
      TdbGraphPath[] findPaths​(int startSet, java.lang.String[] edgeNames, int targetSet, int maxDepth, boolean reverse)
      Locate all paths associated with the current graph set that use vertices in the specified start set as origins.
      TdbGraphSet follow​(java.lang.String edge, int targetSet)
      Creates a subgraph by locating targets for the source vertices in the current graph set such that they are related via a particular edge (a.k.a.
      int getEdgeCount()
      Returns the count of edges in this graph set.
      TdbGraph getGraph()
      Returns the TdbGraph instance that this graph set is associated with.
      TdbGraphRecord getRecord​(int index)
      Returns a TdbGraphRecord object for a record in the the current graph set.
      int getSearchId()
      Returns the TRIP search set ID for this graph set.
      TdbGraphSet merge​(TdbGraphSet otherSet)
      Merge this graph set with another, producing the union of both sets.
      TdbGraphQueryResult query​(java.lang.String expression)
      Execute a query using the TRIP graph query language.
      TdbSearchSet resolveSources()
      Resolve target vertices to a search set of the regular records they represent.
      TdbSearchSet resolveTargets()
      Resolve target vertices to a search set of the regular records they represent.
      TdbGraphPath shortestPath​(int startSet, java.lang.String[] edgeNames, int targetSet)
      Determine the shortest path associated with the current graph set that use vertices in the specified start set as origins.
      TdbGraphSet source​(int searchSet)
      Create a subgraph with edges where source vertices can be found in the specified (regular) search set.
      TdbGraphSet target​(int searchSet)
      Create a subgraph with edges where target vertices can be found in the specified (regular) search set.
      TdbGraphSet transitive​(int sourceSet, int targetSet, java.lang.String[] edgeNames, int maxDepth, boolean reverse, boolean allEdges)
      Creates a subgraph of the current graph set where the specified source and target records are connected via path.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getGraph

        public TdbGraph getGraph()
        Returns the TdbGraph instance that this graph set is associated with.
      • getSearchId

        public int getSearchId()
        Returns the TRIP search set ID for this graph set.
      • getEdgeCount

        public int getEdgeCount()
        Returns the count of edges in this graph set.
        Returns:
        Edge count
      • getRecord

        public TdbGraphRecord getRecord​(int index)
                                 throws TdbException
        Returns a TdbGraphRecord object for a record in the the current graph set.
        Parameters:
        index - The zero-based index of the record in the set.
        Returns:
        A TdbGraphRecord instance
        Throws:
        TdbException
      • source

        public TdbGraphSet source​(int searchSet)
                           throws TdbException
        Create a subgraph with edges where source vertices can be found in the specified (regular) search set.
        Parameters:
        searchSet - Normal search set to find outgoing edges for.
        Returns:
        A TdbGraphSet instance for the resulting subgraph
        Throws:
        TdbException
      • target

        public TdbGraphSet target​(int searchSet)
                           throws TdbException
        Create a subgraph with edges where target vertices can be found in the specified (regular) search set.
        Parameters:
        searchSet - Normal search set to find incoming edges for.
        Returns:
        A TdbGraphSet instance for the resulting subgraph
        Throws:
        TdbException
      • follow

        public TdbGraphSet follow​(java.lang.String edge,
                                  int targetSet)
                           throws TdbException
        Creates a subgraph by locating targets for the source vertices in the current graph set such that they are related via a particular edge (a.k.a. relation, link).
        Parameters:
        edge - Name of edge (a.k.a. relation, link) to follow
        targetSet - Positive search set number (from regular database)
        Returns:
        A TdbGraphSet instance for the resulting subgraph
        Throws:
        TdbException
      • backtrack

        public TdbGraphSet backtrack​(java.lang.String edge,
                                     int sourceSet)
                              throws TdbException
        Creates a subgraph by following a particular edge type backwards from target vertex in the current graph set to source vertex in the specified source set.
        Parameters:
        edge - Name of edge (a.k.a. relation, link) to follow backwards
        sourceSet - Positive search set number (from regular database)
        Returns:
        A TdbGraphSet instance for the resulting subgraphs
        Throws:
        TdbException
      • resolveTargets

        public TdbSearchSet resolveTargets()
                                    throws TdbException
        Resolve target vertices to a search set of the regular records they represent.
        Returns:
        A TRIP search set with the records targeted by the edges in the current graph set.
        Throws:
        TdbException
      • resolveSources

        public TdbSearchSet resolveSources()
                                    throws TdbException
        Resolve target vertices to a search set of the regular records they represent.
        Returns:
        A TRIP search set with the records being targets for the edges in the current graph set.
        Throws:
        TdbException
      • transitive

        public TdbGraphSet transitive​(int sourceSet,
                                      int targetSet,
                                      java.lang.String[] edgeNames,
                                      int maxDepth,
                                      boolean reverse,
                                      boolean allEdges)
                               throws TdbException
        Creates a subgraph of the current graph set where the specified source and target records are connected via path.
        Parameters:
        sourceSet - The positive number for a regular search set that specifies the source vertices (must not be zero).
        targetSet - The positive number for a regular search set that specifies the target vertices (or zero to locate all potential targets)
        edgeNames - An array of names of the edge types to traverse - pass null or an empty array to traverse all edge types.
        maxDepth - The maximum depth to search - pass zero for no depth limit
        reverse - Pass true to do transitive search by following edges in reverse direction.
        allEdges - Pass true to retrieve all edges explored by the operation, and false to only retrieve the final, outer edges.
        Returns:
        A TdbGraphSet object
        Throws:
        TdbException
      • query

        public TdbGraphQueryResult query​(java.lang.String expression)
                                  throws TdbException
        Execute a query using the TRIP graph query language.
        Parameters:
        expression - Query expression in TRIP graph query language syntax.
        Returns:
        An instance of TdbGraphSet if the query results in an edge set, or an instance of TdbSearchSet if the query results in an edge set.
        Throws:
        TdbException
      • findPaths

        public TdbGraphPath[] findPaths​(int startSet,
                                        java.lang.String[] edgeNames,
                                        int targetSet,
                                        int maxDepth,
                                        boolean reverse)
                                 throws TdbException
        Locate all paths associated with the current graph set that use vertices in the specified start set as origins. This is a so-called "NP hard" problem, and as such this operation may take a long time to complete for large graphs.
        Parameters:
        startSet - Regular search set specifying the vertex record(s) to use as starting point(s) for the paths.
        edgeNames - Names of edges to follow or pass null or an empty array to follow all edges.
        targetSet - Regular search set specifying the vertex record(s) to use as end point(s) for the paths.
        maxDepth - The maximum traversal depth or pass zero for no limit.
        reverse - Pass true to explore paths in reverse direction.
        Returns:
        An array of graph paths
        Throws:
        TdbException
      • shortestPath

        public TdbGraphPath shortestPath​(int startSet,
                                         java.lang.String[] edgeNames,
                                         int targetSet)
                                  throws TdbException
        Determine the shortest path associated with the current graph set that use vertices in the specified start set as origins. This is a so-called "NP hard" problem, and as such this operation may take a long time to complete for large graphs.
        Parameters:
        startSet - Regular search set specifying the vertex record(s) to use as starting point for the paths.
        edgeNames - Names of edges to follow or pass null or an empty array to follow all edges.
        targetSet - Regular search set specifying the vertex record(s) to use as end points for the paths.
        Returns:
        The shortest path found in the graph between the target and the source, or null if no path was found.
        Throws:
        TdbException
      • merge

        public TdbGraphSet merge​(TdbGraphSet otherSet)
                          throws TdbException
        Merge this graph set with another, producing the union of both sets.
        Parameters:
        otherSet - Other graph set to merge with.
        Returns:
        Merged graph set
        Throws:
        TdbException