class_docstr: A Chart for feature grammars.
  :see: ``Chart`` for more information.
class_docstr_tok: ["A","Chart","for","feature","grammars",".",":","see",":","``","Chart","``","for","more","information","."]
docstr: Helper function which returns the ``TYPE`` feature of the ``item``,
  if it exists, otherwise it returns the ``item`` itself
docstr_tok: ["Helper","function","which","returns","the","``","TYPE","``","feature","of","the","``","item","``",",","if","it","exists",",","otherwise","it","returns","the","``","item","``","itself"]
code: def _get_type_if_possible(self, item):
      """
      Helper function which returns the ``TYPE`` feature of the ``item``,
      if it exists, otherwise it returns the ``item`` itself
      """
      if isinstance(item, dict) and TYPE in item:
          return item[TYPE]
      else:
          return item
  
imports: from time import perf_counter
  from nltk.featstruct import TYPE, FeatStruct, find_variables, unify
  from nltk.grammar import CFG, FeatStructNonterminal, Nonterminal, Production, is_nonterminal, is_terminal
  from nltk.parse.chart import BottomUpPredictCombineRule, BottomUpPredictRule, CachedTopDownPredictRule, Chart, ChartParser, EdgeI, EmptyPredictRule, FundamentalRule, LeafInitRule, SingleEdgeFundamentalRule, TopDownInitRule, TreeEdge
  from nltk.sem import logic
  from nltk.tree import Tree
label_desc: Use image node_id 4 for calling the FeatureChart obj's underlying member method code with example usage: obj._get_type_if_possible(item) and returns: item, item