Load a single AgentML file
        :param file_path: Path to the file
        :type  file_path: str

def load_file(self, file_path):
        """
        Load a single AgentML file
        :param file_path: Path to the file
        :type  file_path: str
        """
        self._log.info('Loading file: ' + file_path)
        agentml = etree.parse(file_path)

        # Validate the file for proper AgentML syntax
        self._schema.assertValid(agentml)

        # Get our root element and parse all elements inside of it
        root = etree.parse(file_path).getroot()
        defaults = {}

        def parse_element(element):
            for child in element:
                # Initialization
                if child.tag == 'init':
                    Init(self, child, file_path)

                # Set the group
                if child.tag == 'group':
                    self._log.info('Setting Trigger group: {group}'.format(group=child.get('name')))
                    defaults['groups'] = {child.get('name')}  # TODO
                    parse_element(child)
                    del defaults['groups']
                    continue

                # Set the topic
                if child.tag == 'topic':
                    self._log.info('Setting Trigger topic: {topic}'.format(topic=child.get('name')))
                    defaults['topic'] = child.get('name')
                    parse_element(child)
                    del defaults['topic']
                    continue

                # Set the emotion
                if child.tag == 'emotion':
                    self._log.info('Setting Trigger emotion: {emotion}'.format(emotion=child.get('name')))
                    defaults['emotion'] = child.get('name')
                    parse_element(child)
                    del defaults['emotion']
                    continue

                # Parse a standard Trigger element
                if child.tag == 'trigger':
                    try:
                        self.add_trigger(Trigger(self, child, file_path, **defaults))
                    except AgentMLError:
                        self._log.warn('Skipping Trigger due to an error', exc_info=True)

        # Begin element iteration by parsing the root element
        parse_element(root)