def __init__(self, args):
        """
        Load ontology and database, Ludwig nlu model, and create the static
        iob tag lists, punctuation, and patterns.

        :param args:
        """
        super(CamRestNLU, self).__init__(args)

        self.ontology = None
        self.database = None

        if 'ontology' not in args:
            raise AttributeError('camrest_nlu: Please provide an ontology!')

        ontology = args['ontology']

        if isinstance(ontology, Ontology):
            self.ontology = ontology
        elif isinstance(ontology, str):
            self.ontology = Ontology(ontology)
        else:
            raise ValueError('Unacceptable ontology type %s ' % ontology)

        self.iob_tag_list = []
        self.dontcare_pattern = []

        self.punctuation_remover = str.maketrans('', '', string.punctuation)

        self.TRAIN_ONLINE = False
        if 'train_online' in args:
            self.TRAIN_ONLINE = bool(args['train_online'])

        self.iob_tag_list = \
            ['B-inform-' +
             slot for slot in self.ontology.ontology['requestable']] + \
            ['I-inform-' +
             slot for slot in self.ontology.ontology['requestable']]

        self.dontcare_pattern = ['anything', 'any', 'i do not care',
                                 'i dont care', 'dont care', 'dontcare',
                                 'it does not matter', 'it doesnt matter',
                                 'does not matter', 'doesnt matter']

        Load ontology and database, Ludwig nlu model, and create the static
        iob tag lists, punctuation, and patterns.

        :param args:
        
applications/cambridge_restaurants/camrest_nlu.py