def findRelationTokenChains(query, maxDepth=None, filter=None, targetQuery=
    None, targetFilter=None, queryFactory=None):
    """find tuples of relation tokens for searchTerms.
        - query is a dictionary of {indexName: token}
        - maxDepth is None or a positive integer that specifies maximum depth
          for transitive results.  None means that the transitiveMap will be
          followed until a cycle is detected.  It is a ValueError to provide a
          non-None depth if queryFactory is None and
          index.defaultTransitiveQueriesFactory is None.
        - filter is a an optional callable providing IFilter that determines
          whether relations will be traversed at all.
        - targetQuery is an optional query that specifies that only paths with
          final relations that match the targetQuery should be returned.
          It represents a useful subset of the jobs that can be done with the
          targetFilter.
        - targetFilter is an optional callable providing IFilter that
          determines whether a given path will be included in results (it will
          still be traversed)
        - optional queryFactory takes the place of the index's
          matching registered queryFactory, if any.
        """
