code: def _traverse_children(
      tag: Span, _is_root: bool = True, _root: Optional[Span] = None
  ) -> List[Span]:
      """Traverse children except for `para` dependency.
  
      Args:
          tag: tag to be traversed
          _is_root: internally used parameter. Should not be changed outside this function.
          _root: internally used parameter. Should not be changed outside this function.
      """
      _root = _root or tag
      if (
          not _is_root
          and tag._.get(KNP_USER_KEYS.tag.element).dpndtype == "P"
          and tag._.get(KNP_USER_KEYS.tag.parent) == _root
      ):
          return []
      result = []
      for c in tag._.get(KNP_USER_KEYS.tag.children):
          result.extend(_traverse_children(c, False, _root))
      result.append(tag)
      return result
  
file_path: camphr/packages/camphr_knp/camphr_knp/noun_chunker.py
imports: from typing import Iterable, List, Optional, Tuple
  import spacy
  from spacy.tokens import Doc, Span, Token
  from .consts import KNP_USER_KEYS
label_desc: Use image node_id 11 for calling a global function with example usage: _traverse_children(tag, _is_root, _root) and returns: result, list