code: def visit_boolean_query(self, node):
          
          left = node.left.accept(self)
          right = node.right.accept(self)
  
          is_journal_keyword_op = isinstance(left, KeywordOp) and left.left == Keyword('journal')
  
          if is_journal_keyword_op:
              journal_and_volume_conjunction = _restructure_if_volume_follows_journal(left, right)
  
              if journal_and_volume_conjunction:
                  return journal_and_volume_conjunction
  
          return AndOp(left, right) if isinstance(node.bool_op, And) else OrOp(left, right)
docs: Convert BooleanRule into AndOp or OrOp nodes.