コード例 #1
0
    def setUp(self):
        self.disc = Discrimination()
        self.verbalizer = Verbalizer()

        try:
            #ResourcePool().ontology_server.reset()

            ResourcePool().ontology_server.add([
                "raquel rdf:type Human", "Gamebox rdfs:subClassOf Box",
                "Gamebox rdfs:label \"game box\"",
                "BLUE_BOTTLE rdf:type Bottle", "BLUE_BOTTLE hasColor blue",
                "ORANGE_BOTTLE rdf:type Bottle",
                "ORANGE_BOTTLE hasColor orange",
                "ORANGE_BOTTLE isOn ACCESSKIT",
                "YELLOW_BOTTLE rdf:type Bottle",
                "YELLOW_BOTTLE hasColor yellow", 'ACCESSKIT rdf:type Gamebox',
                'ACCESSKIT hasColor white', 'ACCESSKIT hasSize big',
                'ACCESSKIT isOn table1', 'ORANGEBOX rdf:type Gamebox',
                'ORANGEBOX hasColor orange', 'ORANGEBOX hasSize big',
                'ORANGEBOX isOn ACCESSKIT', 'SPACENAVBOX rdf:type Gamebox',
                'SPACENAVBOX hasColor white', 'SPACENAVBOX hasSize big',
                'SPACENAVBOX isOn ACCESSKIT'
            ])

            ResourcePool().ontology_server.addForAgent(
                ResourcePool().get_model_mapping("raquel"),
                ["BLUE_BOTTLE isVisible true", "ORANGE_BOTTLE isVisible true"])

        except AttributeError:  #the ontology server is not started of doesn't know the method
            raise (DialogError("The ontology server is not started!"))
コード例 #2
0
    def noun_phrases_resolution(self, sentence, current_speaker, uie_object,
                                uie_object_with_more_info):

        logger.info(colored_print("-> Resolving noun phrases", 'green'))

        #Skipping processing of sentences that are neither questions nor statements nor imperatives
        if not sentence.data_type in [
                W_QUESTION, YES_NO_QUESTION, STATEMENT, IMPERATIVE
        ]:
            return sentence

        #Nominal group replacement possibly after uie_object and uie_object_with_more_info are sent from Dialog to resolve missing content
        if uie_object and uie_object_with_more_info:
            sentence = self._noun_phrases_replace_with_ui_exception(
                sentence, uie_object, uie_object_with_more_info)

            #No uie_objects needed after replacement
            uie_object = None
            uie_object_with_more_info = None

        #Record of current sentence
        self._current_sentence = sentence

        #NominalGroupStatementBuilder
        builder = NominalGroupStatementBuilder(None, current_speaker)

        #Discrimination
        discriminator = Discrimination()

        #sentence.sn nominal groups nouns phrase resolution
        if sentence.sn:
            sentence.sn = self._resolve_groups_nouns(sentence.sn,
                                                     current_speaker,
                                                     discriminator, builder)
            #sentence.sv nominal groups nouns phrase resolution
        if sentence.sv:
            sentence.sv = self.verbal_phrases_noun_resolution(
                sentence.sv, current_speaker, discriminator, builder)

        return sentence