To use this HowTo, first clone the Star Wars demo into your team on DFRNT TerminusDB cloud. You will then have full access to the data needed for this tutorial.

Using a Path Query

Sometimes we want to search for links that are not immediate, but need to follow a chain of links to get the object of interest. TerminusDB gives us path queries which allow us to succinctly express this.

We can find a path in GraphQL by using the _path_to_CLASS query, where CLASS is the name of one of our classes. One path should be populated for each of the available classes.

To find everyone who was in a film with Chewbacca, we can write:

query{
   People(filter:{label:{eq:"Chewbacca"}}){
     label
     _path_to_People(path:"film,<film"){
       label
    }
  }
}

The film is the current film which the Chewbacca object points at. Then <film means follow backwards to people on the film field.

This process can be repeated to find second order connections, as follows:

query{
   People(filter:{label:{eq:"Chewbacca"}}){
     label
     _path_to_People(path:"(film,<film){1,2}"){
       label
    }
  }
}

This says that we should repeat the process one or two times before terminating.

More complex patterns can be built using the full path query syntax described in our documentation.