Example #1
0
 def isLinked(self, source=None, target=None, relation=_marker,
              state=_marker, context=_marker, maxDepth=1, minDepth=None,
              filter=None, transitivity=None):
     tokenize = self.relationIndex.tokenizeQuery
     query = {}
     _update_query(query, relation, state, context)
     if source is not None:
         query['source'] = source
         if target is not None:
             targetQuery = tokenize({'target': target})
         else:
             targetQuery = None
         return self.relationIndex.isLinked(
             tokenize(query),
             maxDepth, filter and ResolvingFilter(filter, self),
             targetQuery,
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
     elif target is not None:
         query['target'] = target
         return self.relationIndex.isLinked(
             tokenize(query),
             maxDepth, filter and ResolvingFilter(filter, self),
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
     else:
         raise ValueError(
             'at least one of `source` and `target` must be provided')
Example #2
0
 def findRelationshipTokens(self,
                            source=None,
                            target=None,
                            relation=_marker,
                            state=_marker,
                            context=_marker,
                            maxDepth=1,
                            minDepth=None,
                            filter=None,
                            transitivity=None):
     tokenize = self.relationIndex.tokenizeQuery
     query = {}
     _update_query(query, relation, state, context)
     if source is not None:
         query['source'] = source
         if target is not None:
             targetQuery = tokenize({'target': target})
         else:
             targetQuery = None
         res = self.relationIndex.findRelationshipTokenChains(
             tokenize(query),
             maxDepth,
             filter and ResolvingFilter(filter, self),
             targetQuery,
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
         return self._forward(res)
     elif target is not None:
         query['target'] = target
         res = self.relationIndex.findRelationshipTokenChains(
             tokenize(query),
             maxDepth,
             filter and ResolvingFilter(filter, self),
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
         return self._reverse(res)
     elif relation is not _marker or context is not _marker:
         res = self.relationIndex.findRelationshipTokenChains(
             tokenize(query),
             maxDepth,
             filter and ResolvingFilter(filter, self),
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
         return self._reverse(res)
     else:
         raise ValueError(
             'at least one of `source`, `target`, `relation`, or `context` '
             'must be provided')
Example #3
0
 def findSourceTokens(self, target, relation=_marker, state=_marker,
                      context=_marker, maxDepth=1, minDepth=None,
                      filter=None, transitivity=None):
     query = {'target': target}
     _update_query(query, relation, state, context)
     return self.relationIndex.findValueTokens(
         'source', self.relationIndex.tokenizeQuery(query),
         maxDepth, filter and ResolvingFilter(filter, self),
         targetFilter=minDepthFilter(minDepth),
         transitiveQueriesFactory=transitivity)
Example #4
0
 def findRelationshipTokens(self, source=None, target=None, relation=_marker,
                            state=_marker, context=_marker, maxDepth=1,
                            minDepth=None, filter=None, transitivity=None):
     tokenize = self.relationIndex.tokenizeQuery
     query = {}
     _update_query(query, relation, state, context)
     if source is not None:
         query['source'] = source
         if target is not None:
             targetQuery = tokenize({'target': target})
         else:
             targetQuery = None
         res = self.relationIndex.findRelationshipTokenChains(
             tokenize(query),
             maxDepth, filter and ResolvingFilter(filter, self),
             targetQuery,
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
         return self._forward(res)
     elif target is not None:
         query['target'] = target
         res = self.relationIndex.findRelationshipTokenChains(
             tokenize(query),
             maxDepth, filter and ResolvingFilter(filter, self),
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
         return self._reverse(res)
     elif relation is not _marker or context is not _marker:
         res = self.relationIndex.findRelationshipTokenChains(
             tokenize(query),
             maxDepth, filter and ResolvingFilter(filter, self),
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
         return self._reverse(res)
     else:
         raise ValueError(
             'at least one of `source`, `target`, `relation`, or `context` '
             'must be provided')
Example #5
0
 def isLinked(self,
              source=None,
              target=None,
              relation=_marker,
              state=_marker,
              context=_marker,
              maxDepth=1,
              minDepth=None,
              filter=None,
              transitivity=None):
     tokenize = self.relationIndex.tokenizeQuery
     query = {}
     _update_query(query, relation, state, context)
     if source is not None:
         query['source'] = source
         if target is not None:
             targetQuery = tokenize({'target': target})
         else:
             targetQuery = None
         return self.relationIndex.isLinked(
             tokenize(query),
             maxDepth,
             filter and ResolvingFilter(filter, self),
             targetQuery,
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
     elif target is not None:
         query['target'] = target
         return self.relationIndex.isLinked(
             tokenize(query),
             maxDepth,
             filter and ResolvingFilter(filter, self),
             targetFilter=minDepthFilter(minDepth),
             transitiveQueriesFactory=transitivity)
     else:
         raise ValueError(
             'at least one of `source` and `target` must be provided')
Example #6
0
 def findSourceTokens(self,
                      target,
                      relation=_marker,
                      state=_marker,
                      context=_marker,
                      maxDepth=1,
                      minDepth=None,
                      filter=None,
                      transitivity=None):
     query = {'target': target}
     _update_query(query, relation, state, context)
     return self.relationIndex.findValueTokens(
         'source',
         self.relationIndex.tokenizeQuery(query),
         maxDepth,
         filter and ResolvingFilter(filter, self),
         targetFilter=minDepthFilter(minDepth),
         transitiveQueriesFactory=transitivity)