class_docstr: Random walking strategy which extracts walks from a root node using the
  Depth First Search (DFS) algorithm if a maximum number of walks is
  specified, otherwise the Breadth First Search (BFS) algorithm is used.
  
  Attributes:
      _is_support_remote: True if the walking strategy can be used with a
          remote Knowledge Graph, False Otherwise
          Defaults to True.
      kg: The global KG used later on for the worker process.
          Defaults to None.
      max_depth: The maximum depth of one walk.
      max_walks: The maximum number of walks per entity.
          Defaults to None.
      md5_bytes: The number of bytes to keep after hashing objects in
          MD5. Hasher allows to reduce the memory occupied by a long
          text. If md5_bytes is None, no hash is applied.
          Defaults to 8.
      random_state: The random state to use to keep random determinism with
          the walking strategy.
          Defaults to None.
      sampler: The sampling strategy.
          Defaults to UniformSampler.
      with_reverse: True to extracts parents and children hops from an
          entity, creating (max_walks * max_walks) walks of 2 * depth,
          allowing also to centralize this entity in the walks. False
          otherwise.
          Defaults to False.
class_docstr_tok: ["Random","walking","strategy","which","extracts","walks","from","a","root","node","using","the","Depth","First","Search","(","DFS",")","algorithm","if","a","maximum","number","of","walks","is","specified",",","otherwise","the","Breadth","First","Search","(","BFS",")","algorithm","is","used",".","Attributes",":","_is_support_remote",":","True","if","the","walking","strategy","can","be","used","with","a","remote","Knowledge","Graph",",","False","Otherwise","Defaults","to","True",".","kg",":","The","global","KG","used","later","on","for","the","worker","process",".","Defaults","to","None",".","max_depth",":","The","maximum","depth","of","one","walk",".","max_walks",":","The","maximum","number","of","walks","per","entity",".","Defaults","to","None",".","md5_bytes",":","The","number","of","bytes","to","keep","after","hashing","objects","in","MD5",".","Hasher","allows","to","reduce","the","memory","occupied","by","a","long","text",".","If","md5_bytes","is","None",",","no","hash","is","applied",".","Defaults","to","8.","random_state",":","The","random","state","to","use","to","keep","random","determinism","with","the","walking","strategy",".","Defaults","to","None",".","sampler",":","The","sampling","strategy",".","Defaults","to","UniformSampler",".","with_reverse",":","True","to","extracts","parents","and","children","hops","from","an","entity",",","creating","(","max_walks","*","max_walks",")","walks","of","2","*","depth",",","allowing","also","to","centralize","this","entity","in","the","walks",".","False","otherwise",".","Defaults","to","False","."]
docstr: Extracts random walks for an entity based on Knowledge Graph using
  the Depth First Search (DFS) algorithm.
  
  Args:
      kg: The Knowledge Graph.
      entity: The root node to extract walks.
      is_reverse: True to get the parent neighbors instead of the child
          neighbors, False otherwise.
          Defaults to False.
  
  Returns:
      The list of unique walks for the provided entity.
docstr_tok: ["Extracts","random","walks","for","an","entity","based","on","Knowledge","Graph","using","the","Depth","First","Search","(","DFS",")","algorithm",".","Args",":","kg",":","The","Knowledge","Graph",".","entity",":","The","root","node","to","extract","walks",".","is_reverse",":","True","to","get","the","parent","neighbors","instead","of","the","child","neighbors",",","False","otherwise",".","Defaults","to","False",".","Returns",":","The","list","of","unique","walks","for","the","provided","entity","."]
code: def _dfs(
      self, kg: KG, entity: Vertex, is_reverse: bool = False
  ) -> List[Walk]:
      """Extracts random walks for an entity based on Knowledge Graph using
      the Depth First Search (DFS) algorithm.
  
      Args:
          kg: The Knowledge Graph.
          entity: The root node to extract walks.
          is_reverse: True to get the parent neighbors instead of the child
              neighbors, False otherwise.
              Defaults to False.
  
      Returns:
          The list of unique walks for the provided entity.
  
      """
      self.sampler.visited = set()
      walks: List[Walk] = []
      assert self.max_walks is not None
      while len(walks) < self.max_walks:
          sub_walk: Walk = (entity,)
          d = 1
          while d // 2 < self.max_depth:
              pred_obj = self.sampler.sample_hop(
                  kg, sub_walk, d // 2 == self.max_depth - 1, is_reverse
              )
              if pred_obj is None:
                  break
              if is_reverse:
                  sub_walk = (pred_obj[1], pred_obj[0]) + sub_walk
              else:
                  sub_walk += (pred_obj[0], pred_obj[1])
              d = len(sub_walk) - 1
          walks.append(sub_walk)
      return list(walks)
  
file_path: pyRDF2Vec/pyrdf2vec/walkers/random.py
imports: from hashlib import md5
  from typing import List, Optional, Set
  import attr
  from pyrdf2vec.graphs import KG, Vertex
  from pyrdf2vec.typings import EntityWalks, SWalk, Walk
  from pyrdf2vec.walkers import Walker
label_desc: Use image node_id 2 for calling the RandomWalker obj's underlying member method code with example usage: obj._dfs(kg, entity, is_reverse) and returns: list