code: def rule_4(dep_rel, relation_list, text):
      """Extract term if rule 4 applies.
  
      Args:
          dep_rel (DepRelation): Dependency relation.
          relation_list (list of DepRelation): Generic relations between all tokens.
          relation between tokens
          text (str): Sentence text.
      """
      candidate = None
      for curr_rt in relation_list:
          if (
              curr_rt.gov == dep_rel.gov
              and curr_rt.dep != dep_rel.dep
              and curr_rt.dep.norm_pos == POS.NN
              and is_subj_obj_or_mod(curr_rt)
              and is_subj_obj_or_mod(dep_rel)
          ):
              aspect = expand_aspect(curr_rt.dep, relation_list)
              candidate = CandidateTerm(
                  aspect, dep_rel.dep, text, Polarity.UNK
              )
      return candidate
  
file_path: nlp-architect/nlp_architect/models/absa/train/rules.py
imports: from nlp_architect.models.absa.inference.data_types import Polarity
  from nlp_architect.models.absa.train.data_types import CandidateTerm, RelCategory, DepRelationTerm, POS
label_desc: Use image node_id 4 for calling a global function with example usage: rule_4(dep_rel, relation_list, text) and returns: candidate