Esempio n. 1
0
    def test_nested(self):
        alice = Knowledge('alice ')
        bob = Knowledge()

        @bob.simple("about time")
        async def touch(message: str):
            assert message == 'about time'
            return 'time is nothing'

        alice.prefix('ask bob ', bob)  # make nested knowledge

        reply = asyncio.get_event_loop().run_until_complete(alice('alice ask bob about time'))
        print("reply", reply)
        assert reply == 'time is nothing', 'nested knowledge'
Esempio n. 2
0
 def home_page(self):
     self.GUI()
     knowledge = Knowledge()
     '''Location and time for home'''
     time_json, str_time, str_day = knowledge.time_knowledge()
     clock = tk.Label(self.window,
                      text=str_day,
                      font=('Arial', 17),
                      fg='white',
                      bg='black')
     clock.place(relx=0.1, rely=0.1, anchor="center")
     clock = tk.Label(self.window,
                      text=str_time,
                      font=('Arial', 30),
                      fg='white',
                      bg='black')
     clock.place(relx=0.1, rely=0.05, anchor="center")
     '''weather for home'''
     weather_json = knowledge.weather_knowledge()
     temp = weather_json['main']['temp']
     print(temp)
     #temp = float(5/9)*(float(temp)-32 )
     temp = int(temp) - 273
     print(temp)
     self.display()
Esempio n. 3
0
    def learn_from_file(self):
        ''' It search for knowledge in directory, if exists it is loaded - Procura conhecimentos no diretório, se existir são carregados'''
        log("charging knowledge from files")
        import glob
        files = glob.glob("./know/*")
        for file in files:
            data = open(file, "r")
            data = data.readlines()

            nome = data[1].replace("#", "").replace("\n", "")
            print nome
            topicos = data[2].replace("#", "").replace("\n", "")
            descricao = data[3].replace("#", "").replace("\n", "")
            modelo = data[4].replace("#", "").replace("\n", "")
            endereco = file
            atributos = data[6].replace("#", "").replace("\n", "").split()
            dependencias = data[7].replace("#",
                                           "").replace("\n",
                                                       "").replace(",",
                                                                   "").split()
            for dep in dependencias:
                dep = dep.replace(",", "").replace(" ", "")
            tipoDeTarefa = data[8].replace("#", "").replace("\n", "").split()
            if len(tipoDeTarefa) > 0:
                tipoDeTarefa = tipoDeTarefa.pop()
            else:
                tipoDeTarefa = "passive"
            #print (type (tipoDeTarefa))
            know = Knowledge(nome, topicos, descricao, modelo, endereco,
                             atributos, dependencias, tipoDeTarefa)
            self.knowledge.append(know)
Esempio n. 4
0
    def __init__(self, verbose):
        self._verbose = verbose

        self.knowledge = Knowledge()
        self.knowledge.add_to_memory(CS4635Context())

        self.invalid_list = list()
Esempio n. 5
0
    def __init__(self, parent=None):

        QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.knowledge = Knowledge()

        self.file = None
        self.goal = None
        self.log = None

        self.setWindowTitle('Экспертная система')

        self.ui.actionNew.triggered.connect(self.showDialogNew)
        self.ui.actionOpen.triggered.connect(self.showDialogOpen)
        self.ui.actionSaveAs.triggered.connect(self.showDialogSaveAs)
        self.ui.actionSave.triggered.connect(self.saveKnowledge)
        
        self.ui.actionDomains.triggered.connect(self.showDialogDomains)
        self.ui.actionVariables.triggered.connect(self.showDialogVariables)
        self.ui.actionViewOntology.triggered.connect(self.showDialogOntologyView)
        self.ui.actionFacts.triggered.connect(self.showDialogFacts)

        self.ui.actionStart.triggered.connect(self.showDialogRecommendation)
        self.ui.action.triggered.connect(self.showDialogGoal)

        self.ui.actionSolution.triggered.connect(self.showDialogSolution)

        self.ui.buttonAdd.clicked.connect(self.showDialogAddRule)
        self.ui.buttonEdit.clicked.connect(self.showDialogEditRule)
        self.ui.buttonDelete.clicked.connect(self.click_buttonDelete)

        self.ui.Rules.setDragDropMode(QAbstractItemView.InternalMove)
        self.ui.Rules.itemSelectionChanged.connect(self.RefreshBoxes)
Esempio n. 6
0
    def receive_knowledge(self, knowledge):
        ''' Callback: It receives knowledges from topic and save it in files - Recebe conhecimento e o salva em arquivos'''
        data = str(knowledge.data).split("\n")
        if self.has(data[1].replace("#", "").replace("\n", "")):
            #log ("I already have this knowledge: " + str(data[1]))
            return
        nome = data[1].replace("#", "").replace("\n", "")
        topicos = data[2].replace("#", "").replace("\n", "")
        descricao = data[3].replace("#", "").replace("\n", "")
        modelo = data[4].replace("#", "").replace("\n", "")
        endereco = data[5].replace("#", "").replace("\n", "")
        atributos = data[6].replace("#", "").replace("\n", "").split()
        dependencias = data[7].replace("#",
                                       "").replace("\n",
                                                   "").replace(",",
                                                               "").split()
        for dep in dependencias:
            dep = dep.replace(",", "").replace(" ", "")
        tipoDeTarefa = data[8].replace("#", "").replace("\n", "").split()
        if len(tipoDeTarefa) > 0:
            tipoDeTarefa = tipoDeTarefa.pop()
        else:
            tipoDeTarefa = "passive"

        know = Knowledge(nome, topicos, descricao, modelo, endereco, atributos,
                         dependencias, tipoDeTarefa)

        file = open(data[5].replace("#", "").replace("\n", ""), "wb")
        for i in data:
            file.write(i + "\n")
        self.knowledge.append(know)
        file.close()
        print('\033[94m' + "I learn!" + str(data[1]))
        self.addInLog("Learn " + str(data[1]))
Esempio n. 7
0
 def showDialogNew(self):
     qm = QMessageBox()
     qm.setWindowTitle('Создать новую базу знаний')
     ret = qm.question(self,'', "Вы уверены?", qm.Yes | qm.No)
     if ret == qm.Yes:
         self.knowledge = Knowledge()
         self.setWindowTitle('Экспертная система - БезНазвания' )
     else:
         pass
Esempio n. 8
0
def create_rdf():
    """
    Create SoftEng RDF file
    """

    graph = Graph()
    Knowledge(graph)
    AcademicDomain(graph)
    graph.serialize("ontology/RDF/softeng.rdf")
Esempio n. 9
0
    def initialize(self, id, num_players, k, board, deck_type, my_hand, hands,
                   discard_pile, deck_size):
        """
        To be called once before the beginning.
        """
        self.id = id
        self.num_players = num_players
        self.k = k  # number of cards per hand
        self.board = board
        self.deck_type = deck_type

        # store a copy of the full deck
        self.full_deck = get_appearance(DECKS[deck_type]())
        self.full_deck_composition = Counter(self.full_deck)

        # hands
        self.my_hand = my_hand  # says in which positions there is actually a card
        self.hands = hands

        # discard pile
        self.discard_pile = discard_pile
        self.discard_pile_composition = Counter(discard_pile)

        # deck size
        self.deck_size = deck_size

        # personal knowledge
        self.personal_knowledge = Knowledge(self, Knowledge.PERSONAL, id)

        # public knowledge
        self.public_knowledge = [
            Knowledge(self, Knowledge.PUBLIC, i) for i in range(num_players)
        ]

        # all knowledge
        self.all_knowledge = self.public_knowledge + [self.personal_knowledge]

        # remove cards of other players from possibilities
        self.update_knowledge()

        # create hints manager
        self.hints_manager = HintsManager(self)
Esempio n. 10
0
 def __init__(self, name=None, speech_input=False, facebook_input=False):
     self.phrases = Phrases()
     self.speech = Speech()
     self.knowledge = Knowledge(weather_api_token=weather_api_token)
     self.name = name
     self.facebook_input = facebook_input
     if self.facebook_input:
         self.facebook_response = list()
     self.speech_input = speech_input
     self.witai = Wit("S73IKQDWJ22OJMOSD6AOT4CSJOWXIPX6")
     self.fs = Fatsecret("90fe184a283449ed8a83e35790c04d65", "054e80b2be154337af191be2c9e11c28")
     self.translator = Translator()
Esempio n. 11
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.knowledge = Knowledge()

        self.ui.Domains.currentTextChanged.connect(self.refreshDomainValues)
        self.ui.VarCategory.currentTextChanged.connect(self.refreshBlock)
        self.ui.textQuestion.setReadOnly(True)

        self.ui.buttonEdit.clicked.connect(self.click_buttonEdit)
Esempio n. 12
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_dialog()
        self.ui.setupUi(self)

        self.ui.domainName.setPlaceholderText('Имя домена')

        self.knowledge = Knowledge()

        self.ui.buttonAdd.clicked.connect(self.click_buttonAdd)
        self.ui.buttonEdit.clicked.connect(self.click_buttonEdit)
        self.ui.buttonDelete.clicked.connect(self.click_buttonDelete)
        self.ui.domainName.setFocus()
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.knowledge = Knowledge()
        self.edit = None

        self.ui.buttonAdd.clicked.connect(self.click_buttonAdd)
        self.ui.buttonEdit.clicked.connect(self.click_buttonEdit)
        self.ui.buttonDelete.clicked.connect(self.click_buttonDelete)

        self.ui.Facts.view().setFixedWidth(300)
Esempio n. 14
0
def update_temp():
    global temp1
    global temp_
    knowledge = Knowledge()
    weather_json = knowledge.weather_knowledge()
    location_json = knowledge.location_knowledge()
    temp_ = weather_json['main']['temp']
    location_temp = location_json['state_prov']
    if temp1 != temp_:
        temp1 = temp_
        text = int(temp1 - 273)
        temp.config(text=location_temp + "City\n%d oC" % text)
    temp.after(50000, update_greeting)
Esempio n. 15
0
    def test_rule_4(self):
        g = make_graph(4, [(0, 1), (1, 0), (0, 2), (2, 0), (0, 3), (3, 0),
                           (1, 2), (2, 3)])
        k = Knowledge()
        k.set_forbidden(1, 3)

        meek = MeekRules(undirect_unforced_edges=False, knowledge=k)
        meek.orient_implied_subset(g, [0])

        assert len(g.edges()) == 7
        assert has_dir_edge(g, 1, 2)
        assert has_dir_edge(g, 2, 3)
        assert has_dir_edge(g, 0, 3)
        assert has_undir_edge(g, 0, 1)
        assert has_undir_edge(g, 0, 2)
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.knowledge = Knowledge()

        self.ui.buttonAdd.clicked.connect(self.click_buttonAdd)
        self.ui.buttonEdit.clicked.connect(self.click_buttonEdit)
        self.ui.buttonDelete.clicked.connect(self.click_buttonDelete)

        self.ui.tableWidget.setColumnWidth(0, 120)
        self.ui.tableWidget.setColumnWidth(1, 280)
        self.ui.tableWidget.setSelectionBehavior(
            self.ui.tableWidget.SelectRows)
        self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
Esempio n. 17
0
    def test_annotations(self):
        brain = Knowledge('alice ', 'bob ')

        @brain.simple('what time is it now?')
        async def current_time(message: str):
            return 'no time - no problem'

        @brain.regexp(r'I am (?P<name>\w+)')
        async def greet(message: str, name: str):
            return f"Hello, {name}!"

        @brain.simple("raise an error")
        async def broken(message: str):
            raise RuntimeError("test error")

        @brain.simple("skip none")
        async def skip_none(message: str):
            return None

        @brain.simple('multi')
        @brain.simple('another')
        @brain.regexp('.*?nano.*')
        async def multi(message: str):
            return 'ok'

        @brain.default()
        async def unknown(message: str):
            return "WTF?"

        @brain.simple('pass element')
        async def params(message: str, custom_value=None):
            assert custom_value is not None
            return message

        async def main():
            assert await brain('bob what time is it now?') == 'no time - no problem', 'simple match'
            assert await brain('alice I am Brayan!') == 'Hello, Brayan!', 'regexp named match'
            assert await brain('nick I am Alice') is None, 'no trigger'
            assert await brain('alice raise an error') == 'WTF?', 'suppress exception'
            assert await brain('alice skip none') == 'WTF?', 'skip none result'
            assert await brain('bob who are you?') == 'WTF?', 'default trigger'
            assert await brain('alice multi') == 'ok', 'multi triggers over first simple'
            assert await brain('alice another') == 'ok', 'multi triggers over second simple'
            assert await brain('alice super nano multi') == 'ok', 'multi triggers over regexp'
            assert await brain('alice pass element', custom_value=123) == 'pass element', 'pass element'

        asyncio.get_event_loop().run_until_complete(main())
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.knowledge = Knowledge()

        self.ui.tableWidget.setColumnWidth(0, 135)
        self.ui.tableWidget.setColumnWidth(1, 60)
        self.ui.tableWidget.setColumnWidth(2, 135)
        self.ui.tableWidget.setSelectionBehavior(
            self.ui.tableWidget.SelectRows)
        self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)

        self.ui.variables.currentTextChanged.connect(self.RefreshValues)
        self.ui.buttonAdd.clicked.connect(self.click_buttonAdd)
        self.ui.buttonEdit.clicked.connect(self.click_buttonEdit)
        self.ui.buttonDelete.clicked.connect(self.click_buttonDelete)
Esempio n. 19
0
    def __init__(self):
        self.nlg = NLG(user_name=my_name)
        self.nlg_vn = NLG(user_name=my_name_vn, language='vi')
        self.speech = Speech(launch_phrase=launch_phrase,
                             debugger_enabled=debugger_enabled)
        self.wit_client_vn = Wit(wit_ai_token_vn)
        self.wit_client_en = Wit(wit_ai_token)
        self.knowledge = Knowledge(weather_api_token,
                                   google_cloud_api_key=google_cloud_api_key)
        #self.vision = Vision(camera=camera)
        self.bot_vn = 'ty'

        subprocess.Popen([
            "aplay", "/home/pi/AI-Smart-Mirror/sample-audio-files/Startup.wav"
        ],
                         stdin=subprocess.PIPE,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE)
        time.sleep(4)
Esempio n. 20
0
def initialize_objs_vars():
    '''
    Initializing all game objects (and some important vars) at the start of the run, namely:
    Objects: Player, entities, god, game_map,
    Important VARS: game_state, fov_map, key, mouse
    '''
    # OBJECTS
    actor_comp = Actor(mental=pstats['mental'],
                       physical=pstats['physical'],
                       spiritual=pstats['spiritual'])
    inventory_comp = Inventory(5)
    knowledge_comp = Knowledge()
    player = Entity(0,
                    0,
                    '@',
                    colors['player'],
                    'Hero',
                    blocks=True,
                    render_order=RenderOrder.ACTOR,
                    actor=actor_comp,
                    inventory=inventory_comp,
                    knowledge=knowledge_comp)
    entities = [player]
    god = God()
    game_map = GameMap(const.get('map_width'), const.get('map_height'))
    game_map.make_map(player, entities)

    #Important vars
    game_state = GameStates.PLAYERS_TURN
    prev_game_state = game_state
    fov_map = initialize_fov(game_map)
    key = tcod.Key()
    mouse = tcod.Mouse()

    targeting_item = None

    targeting_skill = None

    #Message related stuff, in a near future, separate into combat, qests, chat, etc
    msg_log = MessageLog(const['message_x'], const['message_width'],
                         const['message_height'])

    return player, entities, god, game_map, game_state, prev_game_state, fov_map, msg_log, key, mouse, targeting_item, targeting_skill
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.knowledge = Knowledge()

        self.ui.tableWidget.setColumnWidth(0, 120)
        self.ui.tableWidget.setColumnWidth(1, 120)
        self.ui.tableWidget.setColumnWidth(2, 190)
        self.ui.tableWidget.setSelectionBehavior(
            self.ui.tableWidget.SelectRows)
        self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)

        self.ui.buttonAdd.clicked.connect(self.showDialogVariableAdd)
        self.ui.buttonDelete.clicked.connect(self.click_buttonDelete)
        self.ui.buttonEdit.clicked.connect(self.click_buttonEdit)

        self.ui.tableWidget.itemSelectionChanged.connect(
            self.RefreshQuestionDomainBoxes)
Esempio n. 22
0
    def __init__(self, db_conn, db_name):
        from pymongo import Connection

        print "Opening MongoDB connection"
        self.conn = Connection(host=db_conn)
        self.db = self.conn[db_name]

        # Open subcollections
        self.knowledge = Knowledge(self)
        self.frames = Frames(self)
        #self.map = Map(self)
        self.geo = Geo(self)

        # Logging
        from wifistalker import Log
        header = 'DB'
        self.log = Log(self, use_stdout=True, header=header)

        # Log collection
        self._log = self['log']
        self._log.ensure_index('stamp_utc', expireAfterSeconds=60*60)
Esempio n. 23
0
 def transform(self):
     """
     Convert original crash dump information into the target data format.
     Returns:
         Documents to be stored.
     """
     documents = []
     hash_value = set()
     result = self.extract_qdb()
     count, total = 0, len(result)
     for row in result:
         count += 1
         test_id, time_stamp, url, bug_id = row
         print(f"{test_id}, {count}/{total}")
         try:
             if requests.get(url, verify=False).status_code == 200:
                 dump = requests.get(url, verify=False).content.decode("utf-8")
                 processed = Process(dump).pre_process()
             else:
                 dump = self.extract_cdb(test_id)
                 processed = Process(dump).internal_process()
         except (IndexError, UnicodeDecodeError):
             continue
         cpnt_order, func_block = Knowledge(processed).add_knowledge()
         if not cpnt_order or not func_block:
             continue
         data = dict()
         data["test_id"] = test_id
         data["time_stamp"] = int(datetime.timestamp(time_stamp))
         data["cpnt_order"] = cpnt_order
         data["func_block"] = func_block
         data["bug_id"] = bug_id
         data["md5sum"] = hashlib.md5("".join("".join(i) for i in func_block).encode("utf-8")).hexdigest()
         # deduplication via set
         if data["md5sum"] in hash_value:
             continue
         hash_value.add(data["md5sum"])
         documents.append(data)
     return documents
Esempio n. 24
0
 def detect_sim(self):
     """
     Detect crash dump similarity and output the comparison result.
     """
     message = []
     order_pair, block_pair = [], []
     for param in self.params:
         # parameter is test_id
         if re.match(r"^\d{9,}$", param):
             dump = ETL().extract_cdb(param)
             processed = Process(dump).internal_process()
         # parameter is dump_path
         else:
             with open(param, "r", encoding="utf-8") as fp:
                 dump = fp.read()
             processed = Process(dump).pre_process()
         cpnt_order, func_block = Knowledge(processed).add_knowledge()
         message.extend([cpnt_order, func_block])
         order_pair.append(cpnt_order)
         block_pair.append(func_block)
     # output dump comparison
     Log().dump_print(message)
     Calculate(order_pair, block_pair).calculate_sim(debug=True)
Esempio n. 25
0
    def __init__(self, game, x, y):
        self.groups = game.all_sprites
        pg.sprite.Sprite.__init__(self, self.groups)
        self.game = game
        self.images = {'normal': pg.image.load(path.join(game.img_folder, "apple_64px.png")).convert_alpha(), \
                       'blink': pg.image.load(path.join(game.img_folder, "apple_64px_blink.png")).convert_alpha(), \
                       'wink': pg.image.load(path.join(game.img_folder, "apple_64px_wink.png")).convert_alpha()}
        self.blinks = False
        self.blink_time = .25
        self.staring_time = 3
        self.start_time = time.time()
        self.image = self.images['normal']
        self.rect = self.image.get_rect()
        self.rect.center = (x, y)
        self.hit_rect = self.rect
        self.hit_rect.center = self.rect.center
        self.vel = vec(0, 0)
        self.position = vec(x, y)
        self.dest = vec_dest(x, y)
        self.previous_pos = vec_prev(x, y)
        self.instruction = ""
        self.orientation = "front" # left, right, front, back
        self.name = "Young Apple"
        self.silence_responses = ["can you please say that again?", "oops, I missed that. say again?", "I heard *silence*", "repeat again, please?", "could you say again?", "I didn't hear that, try again?", "I heard *silence*"]
        self.knowledge = Knowledge(self)
        self.transcript = Transcript()

        # Working memory properties
        self.recognized = []
        self.actions = [] # current, complete list of action sequences e.g. [[1],[[0],[2]]]
        self.input_to_actions = []
        self.action_queue = [] # remaining actions to be completed
        self.current_action = []
        self.key_used = ""
        #self.responses = []
        self.response = ""
Esempio n. 26
0
 def __init__(self):
     self.nlg = NLG(user_name=my_name)
     self.speech = Speech(launch_phrase=launch_phrase, debugger_enabled=debugger_enabled)
     self.knowledge = Knowledge(weather_api_token)
     self.vision = Vision(camera=camera)
Esempio n. 27
0
from knowledge import Knowledge

root = Knowledge('сая ')
Esempio n. 28
0
 def __init__(self, **kwargs):
     self.knowledge = Knowledge(**kwargs)
     self.encoder = Encoder()
     self.decoder = Decoder()
Esempio n. 29
0
 def rewrite(self):
     return Negation(
         lhs=Knowledge(agent=self.agent, lhs=Negation(lhs=self.lhs)))
Esempio n. 30
0
        default=False,
        help='If notify is defined, then errors will be sent by email',
        required=False)
    flags = parser.parse_args()
    args = vars(flags)
except ImportError:
    flags = None

sheet = args['sheet_id'] or None
notify = args['notify'] or False
logging_level = args['logging_level'] or 'ERROR'
logger = logger_builder.initLogger(logging_level)

config = Config()
spreadsheet_api = Spreadsheet(flags)
knowledge = Knowledge(config)
project = Project(config)
gmail = GMail(flags)


def load_knowledge_map(sheet=None, notify=False):
    """Load data from spreadsheet api and save on knowledge database."""
    # authenticate and get service API for spreadsheet
    service = spreadsheet_api.get_service_spreadsheets()
    spreadsheets = project.find_by_sheet_id(sheet)

    total_hits = spreadsheets['hits']['total']
    logger.info('total %s sheets' % total_hits)
    total_errs = 0

    for item in spreadsheets['hits']['hits']: