• Nenhum resultado encontrado

Utilização de agentes com ontologias remotas para a produção de conteúdo significante a partir de informações disponíveis na Web Semântica

N/A
N/A
Protected

Academic year: 2021

Share "Utilização de agentes com ontologias remotas para a produção de conteúdo significante a partir de informações disponíveis na Web Semântica"

Copied!
85
0
0

Texto

(1)

Felipe Demarchi

UTILIZAÇÃO DE AGENTES COM ONTOLOGIAS REMOTAS PARA A PRODUÇÃO DE CONTEÚDO SIGNIFICANTE A

PARTIR DE INFORMAÇÕES DISPONÍVEIS NA WEB SEMÂNTICA

Dissertação submetida ao Programa de Pós-Graduação em Ciência da Computação da Universidade Federal de Santa Catarina para a obtenção do Grau de Mestre em Ciência da Computação.

Orientador: Prof. Dr. Ricardo Azambuja Silveira

Coorientador: Prof. Dr. Elder Rizzon Santos

Florianópolis 2018

(2)

Ficha de identificação da obra elaborada pelo autor,

através do Programa de Geração Automática da Biblioteca Universitária da UFSC.

Demarchi, Felipe

UTILIZAÇÃO DE AGENTES COM ONTOLOGIAS REMOTAS PARA A PRODUÇÃO DE CONTEÚDO SIGNIFICANTE A PARTIR DE INFORMAÇÕES DISPONÍVEIS NA WEB SEMÂNTICA / Felipe Demarchi ; orientador, Ricardo Azambuja Silveira, coorientador, Elder Rizzon Santos, 2018.

85 p.

Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós Graduação em Ciência da Computação, Florianópolis, 2018.

Inclui referências.

1. Ciência da Computação. 2. Web Semântica. 3. Agentes Inteligentes. 4. Ontologias. I. Silveira, Ricardo Azambuja. II. Santos, Elder Rizzon. III. Universidade Federal de Santa Catarina. Programa de Pós-Graduação em Ciência da Computação. IV. Título.

(3)
(4)
(5)

Este trabalho é dedicado aos meus amores Marie e Anna e aos meus pais Aleixo e Laci.

(6)
(7)

AGRADECIMENTOS

Agradeço a minha família, amigos e professores que de alguma forma contribuíram com o caminho até aqui. Em especial a minha pequena Marie por cada sorriso que serviu de alimento à alma e a minha esposa Anna por acreditar em mim e nunca me deixar desistir.

(8)
(9)

“Nenhum computador tem consciência do que faz. Mas, na maior parte do tempo, nós também não.” (Marvin Minsky)

(10)
(11)

RESUMO

A Web Semântica oferece uma estrutura de conteúdos significantes para as páginas da Web, definindo a sua representação de conhecimento a partir de ontologias, que passaram recentemente a coexistir na Web. Com isso, surgem pesquisas para permitir que sociedades de agentes naveguem por estas bases de conhecimento, em busca de respostas para consultas realizadas. Este trabalho propõe um modelo de aquisição de conhecimentos em agentes belief-desire-intention (BDI), utilizando uma arquitetura de agentes conceituada, representada pela ferramenta Jason, a fim de possibilitar o acesso desses agentes a ontologias disponíveis na Web. Neste contexto, diversos esforços vêm sendo realizados para permitir a integração de agentes com ontologias, permitindo em sua maioria que o conhecimento do agente tenha como base uma ontologia local, criada especificamente para o agente. Porém, a possibilidade de aplicar a capacidade de utilizar dados ligados disponíveis na Web a uma estrutura de agentes BDI consolidada é um assunto que demanda novas pesquisas. Portanto, esta pesquisa propõe o acesso de agentes a dados ligados disponíveis na Web, a fim de realizar a atualização da sua base de crenças de acordo com conteúdos significantes. Como validação, é apresentado um estudo de caso de um quiz educacional com tópicos em geografia e história que utilize destas informações para a elaboração das perguntas, validação das respostas obtidas e atualização da base de crenças do agente.

(12)
(13)

ABSTRACT

The Semantic Web offers a structure of significant content for Web pages, defining its knowledge representation from ontologies, which have recently come to coexist on the Web. There are studies to allow agents to navigate through these knowledge bases in search of answers to queries. This work proposes a knowledge acquisition model in belief-desire-intention (BDI) agents, using a well-known agent structure, represented by Jason, in order to allow the agent access to ontologies available on the Web. In this context, efforts have been made to perform the integration of agents with ontologies, most of which allow the knowledge of the agent to be based on a local ontology created specifically for the agent. However, applying the ability to use linked data available on the Web to a consolidated BDI agent structure in a subject that requires new research. Therefore, this work proposes the access of agents to linked data available on the Web, in order to actualize its belief base based on significant content. As validation, a case study of an educational quiz with topics in geography and history is presented that uses this information to formulate the questions, validate the answers obtained and update the agent’s belief base.

(14)
(15)

LISTA DE FIGURAS

Figura 1 – Arquitetura em camadas para a Web Semântica ... 28 Figura 2 – Processo de planejamento de um agente BDI ... 30 Figura 3 – Sistema de raciocínio procedural ... 31 Figura 4 – Exemplo de termos e relacionamento entre termos de uma ontologia ... 34 Figura 5 – Exemplo de execução do Ontology Agent no modelo CooL-AgentSpeak ... 41 Figura 6 – Ciclo de execução de um agente com acesso a Web

Semântica ... 48 Figura 7 – Modelo da classe SparqlObject ... 51 Figura 8 – Implementação do método toString() realizada na classe SparqlObject ... 52 Figura 9 – Modelo da classe SparqlResult ... 52 Figura 10 – Código referente a criação da query SPARQL na classe SparqlSearch ... 53 Figura 11 – Parte do código referente a construção da query no evento interno searchdbpedia ... 55 Figura 12 – Parte do código referente a realização da consulta e retorno do resultado do evento interno searchdbpedia ... 56 Figura 13 – Parte do código referente a construção dos objetos

necessários para a realização da consulta. ... 58 Figura 14 – Parte do código que verifica se uma resposta está correta quando o resultado da consulta for um recurso ... 58 Figura 15 – Parte do código que verifica se uma resposta está correta quando o resultado da consulta for um Literal. ... 59 Figura 16 – Construção da consulta SPARQL para definir o feedback ao estudante. ... 60 Figura 17 – Código referente ao evento interno checkuri ... 62 Figura 18 – Ciclo de execução do estudo de caso ... 66 Figura 19 – Propriedades relacionadas a URI que referencia

Florianópolis ... 68 Figura 20 – Definição da ação make_question executada no environment ... 70 Figura 21 – Tela referente a uma pergunta realizada ao aluno ... 70 Figura 22 – Mensagem de fecilitação para caso de o aluno acertar a resposta ... 73 Figura 23 – Feedback apresentado ao aluno no caso de uma resposta incorreta... 73 Figura 24 – Definição da ação show_result executada no environment 74

(16)

Figura 25 – Propriedades relacionadas a URI que referencia o Brasil .. 75

(17)

LISTA DE TABELAS

Tabela 1 – Comparação entre o modelo proposto e os trabalhos

relacionados ... 44 Tabela 2 – Relação entre o tipo de questão e os predicados para o contexto do quiz ... 67

(18)
(19)

LISTA DE ABREVIATURAS E SIGLAS

BDI – Belief-Desire-Intention

FIPA – Foundation for Intelligent Physical Agents JASDL – Jason AgentSpeak-DescriptionLogic OWL – Ontology Web Language

RDF – Resource Description Framework

SPARQL – SPARQL Protocol and RDF Query Language URI – Uniform Resource Identifier

W3C – World Wide Web Consortium XML – eXtensible Markup Language

(20)
(21)

SUMÁRIO INTRODUÇÃO ... 23 1.1 OBJETIVOS ... 24 1.1.1 Objetivo Geral ... 24 1.1.2 Objetivos Específicos ... 24 2 REFERENCIAL TEÓRICO ... 27 2.1 WEB SEMÂTICA ... 27 2.2 AGENTES ... 28 2.3 AGENTES BDI ... 29 2.4 JASON ... 31 2.5 ONTOLOGIAS... 33 3 TRABALHOS RELACIONADOS ... 37 3.1 SEAGENT ... 37 3.2 AGENTSPEAK-DL ... 38 3.3 JASDL ... 39 3.4 COOL-AGENTSPEAK ... 40 3.5 PYSA ... 41

3.6 INTEGRAÇÃO UTILIZANDO CARTAGO ... 42

3.7 ANÁLISE DOS TRABALHOS RELACIONADOS ... 43

4 MODELO PROPOSTO ... 47

4.1 CONSULTAS SPARQL ... 50

4.2 AÇÕES INTERNAS PARA ACESSO A WEB SEMÂNTICA ... 54

4.2.1 Evento Interno Searchdbpedia ... 54

4.2.2 Evento Interno Checkanswer ... 56

4.2.3 Evento Interno Checkuri ... 61

5 ESTUDO DE CASO ... 65

6 CONCLUSÃO ... 77

REFERÊNCIAS ... 79

Anexo A: Ciclo de raciocínio de um Agente Jason ... 83

(22)
(23)

23

INTRODUÇÃO

A Web Semântica propõe que informações sejam dispostas com base em uma estrutura de dados composta por relações semânticas, representada pela linked data, utilizando-se de ontologias para a definição das bases de conhecimento. O surgimento deste conceito despertou um grande interesse por pesquisas que auxiliem neste contexto, principalmente referente a área de inteligência artificial, que possui o acesso de agentes a estas informações para auxiliar no seu processamento como um dos principais desafios para que a Web Semântica possa ser constituída.

Segundo Berners-lee, Hendler e Lassila (2001), a Web Semântica trará uma estrutura para o conteúdo significativo de páginas da Web, permitindo que agentes possam transitar entre estas páginas realizando tarefas específicas para os usuários. Para tanto, os autores propõem a utilização de representação de conhecimento a partir de ontologias presentes na Web, e que o grande poder apresentado pela Web Semântica será concretizado quando agentes conseguirem coletar estas informações presentes nas diversas bases de representação de conhecimento, processa-las e compartilhar os resultados com outros agentes.

Neste contexto, muitos trabalhos vêm sendo desenvolvidos com o intuito de permitir que agentes utilizem ontologias como base de conhecimento. (DIKENELLI; ERDUR; GUMUS, 2005), (MOREIRA et al., 2006), (KLAPISCAK; BORDINI, 2009), (MASCARDI et al., 2011), (CAMPOS, 2014), (FREITAS et al., 2015) são propostas que permitem a integração entre agentes e ontologias como bases de conhecimentos. Contudo, nenhum dos trabalhos utiliza uma estrutura de agentes consolidada para permitir o acesso de um agente a uma ontologia remota disponibilizada na Web. A exceção é o trabalho de Campos (2014), o qual apresenta uma proposta que permite a utilização de URIs (Uniform Resource Identifier) que apontam para bases remotas como as crenças dos agentes, porém, utiliza uma implementação adhoc de modelo de agente BDI.

Este trabalho propõe a integração de agentes a Web Semântica, utilizando a proposta de Campos (2014), o qual define a utilização de URIs como crenças do agente, junto a eventos internos, os quais são responsáveis por permitir que um agente perceba e atue com base em dados ligados disponível de forma remota na Web Semântica. São propostas modificações no interpretador Jason, o qual implementa uma arquitetura de agentes consolidada, para permitir que um agente seja capaz de acessar ontologias disponíveis na Web. Teve-se o cuidado de não

(24)

24

modificar o ciclo de raciocínio de um agente Jason apresentado por Bordini, Hübner e Wooldridge (2007), mas sim permitir que este acesso seja realizado por intermédio de eventos internos adicionados ao interpretador, os quais são capazes de utilizar as implementações realizadas para permitir a realização de consultas SPARQL a ontologias remotas, neste caso, a DBPedia.

Este trabalho propõe contribuições para as pesquisas referentes a integração de agentes com a Web Semântica, permitindo que um agente consulte informações disponíveis em bases de representação de conhecimento semântico disponíveis na Web. Será adicionado ao agente a capacidade de realizar consultas SPARQL a base DBPedia, permitindo que a partir de uma lista de termos de consulta, sejam retornadas todas as informações relevantes.

A fim de validar o modelo proposto, será apresentado um quiz com tópicos em geografia e história, o qual formula suas perguntas com base em consultas realizadas a ontologia remota DBPedia, e utiliza o resultado desta consulta para atualizar a base de crenças deste agente com conteúdo significante para o contexto. O intuito deste quiz é utilizar todas as capacidades incluídas ao agente para demonstrar a aplicabilidade deste modelo proposto.

1.1 OBJETIVOS

1.1.1 Objetivo Geral

Este trabalho tem como objetivo propor um modelo que suporte a atualização de crenças de agentes BDI com conhecimentos representados por informações semânticas obtidas a partir de bases remotas existentes na Web.

1.1.2 Objetivos Específicos

Para atingir o objetivo geral, são definidos os seguintes objetivos específicos:

• Analisar o estado da arte da utilização de ontologias como base de fonte de conhecimento de agentes.

• Compreender a arquitetura de agentes BDI através da ferramenta Jason, como estudo de caso, o ciclo de vida de um agente e a sua estrutura.

(25)

25

• Propor extensões na ferramenta para permitir que os agentes acessem informações obtidas a partir de ontologias disponíveis na Web Semântica.

• Apresentar um estudo de caso utilizando as alterações propostas para realizar a validação da proposta.

(26)
(27)

27

2 REFERENCIAL TEÓRICO

2.1 WEB SEMÂTICA

A Web Semântica trará uma estrutura para o conteúdo significativo de páginas da Web, priorizando a definição de conceitos que não serão compreendidos apenas por humanos, como acontece hoje, mas permitindo também que agentes percorram estas páginas compreendendo o seu conteúdo semântico e realizando tarefas sofisticadas para os usuários (BERNERS-LEE; HENDLER; LASSILA, 2001).

Para tanto, Berners-lee, Hendler e Lassila (2001) definem que é preciso que a Web possua uma coleção estruturada de informação e conjuntos de regras de inferência que os agentes possam utilizar para realizar um raciocínio automatizado. Define-se que esta representação de dados semânticos pode ser realizada utilizando ontologias, permitindo que termos diferentes, porém com mesmo significado, sejam encontrados a partir das relações existentes entre as entidades presentes em uma ontologia, assim como, todas as relações e derivações existentes a partir deste termo.

Segundo Antonious e Van Harmelen (2008) foram desenvolvidas algumas linguagens ontológicas para Web, as mais significativas são definidas a seguir:

• RDF (Resource Description Framework) é um modelo de dados para objetos Web e relacionamentos entre eles, com uma semântica simples e pode ser representado em uma sintaxe XML (eXtensible Markup Language).

• RDF Schema é uma linguagem que descreve propriedades e classes de recursos RDF.

• OWL (Ontology Web Language) é uma linguagem de descrição de vocabulário mais rica para descrever propriedades e classes, como o relacionamento entre as classes, cardinalidade, igualdade, tipos de propriedades, características de propriedades e classes enumeradas. Hendler (2001) acredita que a Web Semântica não será composta por poucas ontologias grandes e complexas que um grande número de usuários irá compartilhar, mas sim por um grande número de pequenas ontologias que irão apontar para as informações umas das outras.

Um importante conceito para o funcionamento da Web Semântica é a utilização de lógica, a qual oferece uma linguagem formal para expressar conhecimento, uma boa compreensão semântica, e permite que raciocinadores automatizados possam inferir conclusões a partir de

(28)

28

determinado conhecimento. Com isso, seria possível obter explicações a partir das conclusões (ANTONIOUS; VAN HARMELEN, 2008).

O grande poder da Web Semântica está relacionado à possibilidade de utilização de agentes para coletar conteúdo da Web a partir de diferentes fontes, processar estas informações, realizar a comunicação com outros agentes e fornecer respostas ao usuário. Para que isso seja possível, é extremamente necessária a representação de dados semânticos na Web, de modo que os agentes consigam encontrar informações relevantes a partir das páginas da Web (BERNERS-LEE; HENDLER; LASSILA, 2001).

Com o grande crescimento de pesquisas voltadas para a Web Semântica, foi desenvolvida uma arquitetura para padronizar e guiar as pesquisas referentes a este assunto, conforme apresentado na Figura 1. Esta abordagem foi realizada em forma de camadas, onde as camadas superiores dependem diretamente das camadas inferiores, e utilizam os conceitos referentes a lógica e ontologia que serão aplicados pelos agentes.

Figura 1 – Arquitetura em camadas para a Web Semântica

Fonte: ANTONIOUS; VAN HARMELEN (2008). 2.2 AGENTES

Segundo Wooldridge e Jennings (1995), uma notação simples de agente consiste em um sistema que está situado em algum ambiente, capaz de realizar ações autônomas no ambiente para atingir os seus objetivos. Para tanto,definem que um agente possui quatro propriedades:

(29)

29

• Autonomia: os agentes podem operar sobre o ambiente sem uma intervenção direta de humanos, possuindo algum tipo de controle sobre as suas ações.

• Habilidade Social: os agentes podem interagir entre si. • Reatividade: os agentes podem perceber o seu ambiente

e responder de forma que altere este ambiente.

• Pró-atividade: os agentes não simplesmente respondem ao seu ambiente, eles também podem tomar a iniciativa sobre ele para atingir os seus objetivos.

Uma notação mais completa referente a agentes consiste nas propriedades apresentadas como notação simples, somadas a uma implementação utilizando conceitos que normalmente são aplicados em humanos. Estes conceitos consistem em conhecimento, crenças, intenções, obrigações e emoções (WOOLDRIDGE; JENNINGS, 1995).

Uma definição formal de agente é apresentada de forma abstrata por Wooldridge (2002) que define que o estado do ambiente do agente pode ser caracterizado como um conjunto S = {s1, s2, ...}, e as ações que o agente é capaz de executar são representadas como um conjunto A = {a1, a2, ...}. Com isso, um agente pode ser visto como uma função action : S* → A, que realiza o mapeamento de sequências de estados do ambiente para ações.

2.3 AGENTES BDI

O modelo BDI possui como base o comportamento humano e foi desenvolvido por filósofos, a partir da teoria de raciocínio prático humano, com foco principalmente na atuação e influência de intenções no raciocínio prático, desenvolvido por Michael Bratman (Bratman, 1987).

Os sistemas multiagentes baseados em arquiteturas BDI consistem no processo de decidir, momento a momento, qual ação executar para buscar um determinado objetivo (WOOLDRIGE, 2002). Estes programas de computadores possuem uma computação análoga a crenças, desejos e intenções (BORDINI; HÜBNER; WOOLDRIGE, 2007).

De acordo com Bordini, Hübner e Wooldrige (2007), as crenças representam as informações que o agente possui sobre o mundo, os desejos são todos os possíveis estados que o agente pode querer atingir e as intenções consistem nos estados que o agente decidiu trabalhar.

As intenções possuem um papel importantíssimo no processo de raciocínio prático de um agente BDI, pois tende a influenciar as ações que serão executadas pelo agente. Ao definir uma intenção, é preciso que o

(30)

30

agente persista nesta, permitindo assim que um agente atinja o seu objetivo. Porém, é preciso permitir que um agente perceba quando não será possível atingir esta intenção ou quando a mesma não fizer mais sentido para o contexto, devendo-se neste caso abandona-la (WOOLDRIGE, 2002), (BORDINI; HÜBNER, WOOLDRIGE, 2007).

Um modelo de decisão que possui como base o raciocínio prático humano possui o seu raciocínio voltado para ações, o qual consiste em duas atividades distintas. O primeiro define que estado queremos alcançar, o qual é conhecido como deliberação. O segundo representa como queremos alcançar este estado, chamado de raciocínio meio e fim. (WOOLDRIDGE, 2002)

O raciocínio meio e fim definido por Wooldridge (2002), também conhecido como planejamento, é utilizado para decidir como um agente irá atingir uma intenção utilizando as ações que podem ser utilizadas no ambiente. Para isto, é necessária uma representação de entrada de um objetivo ou intenção, que consistem em algo que o agente quer atingir, as crenças atuais do agente em relação ao estado do ambiente, e as ações disponíveis para o agente. Com isso, a saída será um plano, que consiste em um conjunto de ações para atingir uma determinada intenção. A Figura 2 ilustra este processo de planejamento realizado por um agente BDI.

Figura 2: Processo de planejamento de um agente BDI.

Fonte: WOOLDRIDGE (2002).

O sistema de raciocínio procedural, demonstrado na Figura 3, é considerado a primeira arquitetura de agentes que utiliza o paradigma BDI. Neste sistema, um agente é equipado com uma biblioteca de planos pré-compilados, os quais são construídos manualmente pelo programador do agente. Neste sistema, um plano possui como componentes um

(31)

31

objetivo, considerado uma pós-condição, um contexto que consiste na pré-condição e um corpo, que representa a sequência de ações para a realização do plano (WOOLDRIDGE, 2002).

Figura 3: Sistema de raciocínio procedural.

Fonte: WOOLDRIDGE (2002). 2.4 JASON

O Jason, proposto por Bordini, Hübner e Wooldridge (2007), consiste em um ambiente de execução e uma linguagem de programação orientada a agentes, considerada uma extensão da linguagem AgentSpeak(L), definida por Rao (1996), que utiliza como base a arquitetura de agentes BDI. O interpretador Jason foi desenvolvido utilizando a linguagem de programação Java e tem como objetivo proporcionar o desenvolvimento de agentes que percebam um determinado ambiente e atualizem as suas crenças com base nestas percepções para determinar a execução de planos com a finalidade de resolver suas intenções. Os objetivos dos agentes são considerados um conceito de grande importância para o interpretador Jason, os quais devem ser atingidos por intermédio da execução de planos (BORDINI; HÜBNER; WOOLDRIDGE, 2007).

Toda a sua implementação tem como base a utilização de crenças, para tanto, é definida uma base destas para os agentes. No interpretador Jason, esta base de crenças é vista como uma coleção de literais e são

(32)

32

obtidas a partir da percepção do ambiente ou pela comunicação com outros agentes (BORDINI; HÜBNER; WOOLDRIDGE, 2007).

Bordini, Hübner e Wooldrige (2007) definem também outros dois conceitos como cruciais para a execução de um agente, os quais são objetivos e planos. Os objetivos são situações para as quais um agente irá trabalhar até acreditar que o tenha atingido. Porém, para realizar a execução de um objetivo serão necessários planos, os quais são disparados a partir dos objetivos. Todo plano ou objetivo consistem em uma mesma estrutura, a qual é definido da seguinte forma:

triggering_event : context <- body .

Neste caso, o triggering_event pode ser a inclusão ou exclusão de um novo plano ou objetivo. O contexto é o responsável por decidir pela execução ou não de um determinado plano, pois podem existir vários planos para atingir um determinado objetivo, mas depende das análises realizadas no contexto para conseguir decidir quais dos planos são considerados aplicáveis e executáveis. Nesta etapa, é comum realizar a unificação de variáveis com valores obtidos por intermédio de eventos internos. Por fim, o body define a execução do plano, e após analisado e selecionado, serão executados todos os comandos definidos nesta etapa (BORDINI; HÜBNER; WOOLDRIDGE, 2007).

Uma funcionalidade relevante existente no interpretador Jason são as suas ações internas. O interpretador traz um conjunto destas ações integrados a sua biblioteca, as quais são consideradas ações internas padrões, que atendem a muitas necessidades para o desenvolvimento de agentes BDI. Uma ação interna padrão distribuída junto ao interpretador Jason e que é muito utilizada é a ação .send, a qual é responsável por realizar a troca de mensagens entre os agentes. Também é disponibilizada uma interface Java para auxiliar no desenvolvimento de novas ações internas para situações específicas, as quais podem ser implementadas no contexto de um projeto Jason (BORDINI; HÜBNER; WOOLDRIGE, 2007).

Bordini, Hübner e Wooldrige (2007) apontam como um ponto de grande importância dentro do interpretador Jason a clara definição do ciclo de raciocínio de um agente. Todo agente trabalha com base em uma mesma estrutura de ciclo de raciocínio, que possui dez passos, de forma que, os quatro primeiros passos correspondem a atualização da base de crenças do agente e os passos seguintes definem a seleção e execução de uma intenção. No Anexo A é apresentado este ciclo de raciocínio por

(33)

33

intermédio de uma imagem disponibilizada por Bordini, Hübner e Wooldridge (2007).

Um agente inicia a execução do seu ciclo de raciocínio realizando a percepção do ambiente e atualizando a sua base de crenças. Além disso, também é possível que um agente receba a comunicação de outros agentes por intermédio da troca de mensagens. Para tanto, um passo é definido exclusivamente com a finalidade de realizar a seleção das mensagens que são consideradas socialmente aceitáveis pelo agente (BORDINI; HÜBNER; WOOLDRIDGE, 2007).

Após esta fase de atualização de crenças, o agente realiza a seleção de um evento para execução, e com base neste evento recupera todos os planos considerados relevantes para conseguir atende-lo. Na sequência, são selecionados os planos aplicáveis dentre aqueles selecionados como relevantes e um dos quais é selecionado para execução. A implementação padrão do interpretador Jason consiste em selecionar o primeiro plano aplicável disponível. Porém, esta implementação pode ser alterada para as necessidades de um projeto. Com base no plano selecionado, obtém-se as intenções definidas por ele e, a seguir, é executado um passo desta intenção. Na sequência, um novo ciclo de raciocínio se inicia (BORDINI; HÜBNER; WOOLDRIDGE, 2007).

Desta forma acontece a execução padrão de um agente que utiliza o interpretador Jason para a sua implementação. Todos os ciclos de raciocínio seguem o mesmo padrão e, a cada ciclo, apenas uma intenção é executada. As intenções são obtidas a partir dos planos definidos para o agente, os quais são executados, tendo como base os objetivos que o agente deseja atingir (BORDINI; HÜBNER; WOOLDRIDGE, 2007). 2.5 ONTOLOGIAS

Uma ontologia é definida por Gruber (1995) como uma especificação explícita de uma conceptualização. Compreende-se que uma conceptualização é uma visão simplificada e abstrata do mundo que se pretende representar para algum propósito. O termo ontologia originou-se na filosofia e significa os tipos de existência. Para a Inteligência Artificial, o que existe é aquilo que pode ser representado (GRUBER, 1995).

Uma ontologia consiste em uma lista finita de termos, e no relacionamento entre eles, que definem conceitos importantes domínio, representados por classes de objetos. Estes relacionamentos geralmente consistem em hierarquia de classes, de forma que, uma classe C é uma subclasse de C’ se todos os objetos em C também estão inclusos em C’.

(34)

34

Além da hierarquia, outras informações podem ser inclusas como propriedades, restrições de valores, declarações de disjunção e especificação de relacionamentos lógicos entre objetos (ANTONIOUS; VAN HARMELEN, 2008). Fensel (2001) define que para a engenharia do conhecimento, a regra consiste em uma ontologia facilitar a construção de um modelo de domínio. Para tanto, providencia um vocabulário de termos e relacionamento com o propósito de modelar um domínio.

Antonious e Van Harmelen (2008) exemplificam os termos de uma ontologia e as relações entre estes termos com base na Figura 4, a qual define o contexto de uma universidade. Alguns conceitos importantes, os quais são definidos como termos na ontologia, são os funcionários, estudantes, cursos, professores e disciplinas.

Figura 4: Exemplo de termos e relacionamento entre termos de uma ontologia.

Fonte: ANTONIOUS; VAN HAMELEN, 2008.

Também com base no exemplo apresentado na Figura 4 é possível observar os relacionamentos que surgem a partir da hierarquia entre as classes. Um exemplo refere-se a funcionários e estudantes que são considerados subclasses de pessoas. Também é possível observar os termos estudante de graduação e estudante de pós-graduação que derivam do termo estudante. Outro exemplo consiste nos termos professores, equipe administrativa e equipe de suporte técnico que se relacionam com o termo equipe acadêmica. Nestes exemplos é possível observar as hierarquias de classes assim como os subconjuntos que se formam com base em um determinado termo.

(35)

35

Em inteligência artificial, ontologias foram desenvolvidas para facilitar o compartilhamento e a reutilização de conhecimento. Neste contexto, as ontologias são desenvolvidas a fim de fornecer um processamento de máquina semântico de informações que podem ser comunicadas entre diferentes agentes, os quais podem ser softwares ou humanos. (FENSEL, 2001)

Antonious e Van Harmelen (2008) definem algumas linguagens ontológicas desenvolvidas para a Web Semântica, como RDF/RDF Schema e OWL. O RDF é um modelo de dados com base em triplas formadas por um recurso, uma propriedade e um valor, com a sua sintaxe tendo como base o XML.

Um recurso, que também pode ser considerado um objeto, pode ser visto como algo sobre o que se deseja falar, sendo que todos os recursos possuem uma URI que os identificam.

Uma propriedade descreve a relação entre os recursos, e também é representada a partir de URIs, que nos permite obter um esquema de nomenclatura global exclusivo.

Por fim, um valor pode ser representado por um recurso ou por um literal, de forma que, o literal é representado através de uma string.

O RDF não faz suposições sobre qualquer domínio de aplicação particular, nem define a semântica de qualquer domínio. Para isto, pode ser utilizada a linguagem RDF Schema. Com RDF Schema não ficamos limitados apenas a utilização dos recursos, podemos definir classes que definem tipos de objetos. Com isso, é possível definir um relacionamento entre estas classes de forma hierárquica, assim como, também é possível representar hierarquias entre propriedades (ANTONIOUS; VAN HAMELEN, 2008).

O RDF Schema possui algumas limitações como o escopo local das propriedades, disjunção de classes, combinação booleana de classes, restrições de cardinalidade e propriedades de caracteres especiais. Para solucionar estas limitações é necessária uma linguagem ontológica que ofereça mais recursos. Para tanto, surgiu a linguagem OWL, que consiste em uma extensão do RDF Schema, utilizando o significado de classes e propriedades do RDF adicionando primitivas para suportar novos recursos (ANTONIOUS; VAN HAMELEN, 2008).

(36)
(37)

37

3 TRABALHOS RELACIONADOS

Neste capítulo são apresentados os principais trabalhos que realizam a utilização de agentes com ontologias, buscando permitir o acesso de agentes à Web Semântica.

Foram realizadas buscas com base em palavras-chave como ontologias, multiagentes e web semântica, com o propósito de encontrar artigos relacionados a estes temas. Desta forma, realizando a leitura referente aos resumos dos artigos e analisando as palavras-chave destes, foram elencados os artigos para leitura completa e, por fim, selecionadas as pesquisas relacionados na sequência.

3.1 SEAGENT

Dikenelli, Erdur e Gumus (2005) propõem o SEAGENT, uma arquitetura proposta especificamente para o desenvolvimento de sistemas multiagentes voltados para a Web Semântica, tendo duas camadas principais.

A primeira refere-se à infraestrutura de comunicação, para a qual são utilizadas as especificações definidas pela FIPA (Foundation for Intelligente Physical Agents) e utilizando FIPA RDF como a linguagem de conteúdo. Deste modo, é mantida a interoperabilidade entre vários agentes em um sistema multiagentes voltados para a Web Semântica.

A segunda camada refere-se ao funcionamento principal dos agentes, a qual é composta por um conjunto de pacotes. Estes pacotes especificam as funcionalidades de um agente, definindo as suas ações referentes a seleção de objetivos, definição, execução e monitoramento de planos. Para esta camada, as definições de agentes foram modificadas, a fim de permitir que os agentes tenham os seus conhecimentos baseados em ontologias. Para tanto, também foram adicionados dois pacotes para auxiliar na conexão com serviços Web ontológicos e na consulta a estas ontologias, além de um pacote que permite a realização de casamento entre ontologias de diferentes agentes, a fim de identificar as correspondências entre as ontologias heterogêneas, permitindo assim a comunicação entre eles.

Os agentes possuem apenas uma ontologia como conhecimento interno, e a capacidade de realizar a comunicação com outros agentes utilizando as especificações definidas pela FIPA. Para tanto, é possível realizar o casamento entre as ontologias existentes em dois agentes, permitindo assim, que agentes com ontologias heterogêneas possam comunicar-se entre si.

(38)

38

Apesar da utilização de ontologias como a base interna de conhecimento dos agentes, não é descrito no trabalho a possibilidade de acesso a ontologias remotas.

3.2 AGENTSPEAK-DL

Moreira et al. (2006) apresentam a linguagem de programação orientada a agentes BDI denominada AgentSpeak-DL. uma extensão utilizando lógica descritiva e ontologias da linguagem AgentSpeak, que utiliza lógica de predicados. Esta proposta, que é apresentada de forma teórica, incorpora raciocínio ontológico ao agente, apresentando as alterações necessárias na semântica da linguagem para a utilização deste.

A primeira alteração apresentada diz respeito á recuperação e seleção de planos, que são executadas nos passos referentes a recuperação de todos os planos relevantes, verificação referente a qual dos planos recuperados são relevantes e seleção de um plano em particular entre os verificados.

Ao adicionar um raciocínio ontológico a etapa de recuperação de planos relevantes, este será considerado relevante quando for escrito especificamente para lidar com um evento, e também quando o plano possuir uma relevância mais generalizada, estando contida no referido evento.

Para a verificar qual dos planos recuperados são considerados aplicáveis, define-se que um plano é aplicável se este for relevante e se o seu contexto pode ser inferido da ontologia que forma a sua base de crenças.

Para a seleção de um plano em particular entre os verificados, por conta das alterações realizadas nas duas etapas anteriores, é possível que sejam considerados aplicáveis planos específicos ou mais generalizados. Com isso, caso um plano mais específico não possa ser selecionado por não ser aplicável ao evento, ao invés do agente não agir por falta de planos aplicáveis, um plano mais generalizado pode ser utilizado.

A segunda alteração apresentada refere-se à consulta na base de crenças, que é executada na etapa referente a execução da intenção selecionada. Neste ponto, a execução das ações e dos objetivos não é afetada pela introdução de raciocínio ontológico. Porém, as realizações de testes referentes aos objetivos são mais expressivas. Isto acontece porque agora é permitido aos agentes inferir conhecimentos que são implícitos na ontologia.

A terceira e última alteração é referente a atualização de crenças, a qual também é executada na fase de execução da intenção selecionada.

(39)

39

Esta etapa permite a adição de crenças que venham a surgir a partir da execução de planos, sendo utilizadas estas crenças como notas mentais do agente, para auxiliar em seu processamento. Para tanto, foi preciso realizar alterações a fim de observar que, uma propriedade referente a um indivíduo apenas poderá ser adicionada caso a ontologia resultante desta adição preservar a consistência.

Por ser um trabalho extremamente teórico, não determina a possibilidade de acesso a ontologias remotas, porém, esta abordagem é apresentada como trabalho futuro.

3.3 JASDL

O trabalho apresentado por Klapiscak e Bordini (2009) descreve o JASDL (Jason AgentSpeak-DescriptionLogic), que utiliza o framework Jason para implementar a proposta teórica apresentada pelo AgentSpeak-DL. São demonstradas as alterações realizadas para permitir que o Jason possa utilizar de raciocínios ontológicos para atualizar a sua base de crenças e recuperar planos relevantes, conforme apresentado de forma teórica por Moreira et al. (2006) no AgentSpeak-DL.

Para tanto, a implementação permite que a base de crenças do agente possua além de uma lista de literais e as regras de Prolog, um conjunto de ontologias seguindo o padrão OWL. A fim de permitir este raciocínio ontológico, seguindo as principais definições do AgentSpeak-DL, foram sobrescritas algumas operações existentes no framework JASON.

Para tanto, o JASDL permite a recuperação e seleção de planos utilizando raciocínio ontológico, implementa a garantia de consistência para as ontologias presentes na base de conhecimento do agente e possui uma flexibilidade na recuperação de planos, que de forma simplificada, verifica o quão específico é a correspondência do recurso com a ontologia. Ou seja, quanto mais específico for um plano para lidar com um evento, maior será a sua pontuação para uma possível seleção, enquanto que, quanto mais generalizado for este plano, menor será esta pontuação.

Alguns dos recursos definidos apresentam uma implementação inicial. Porém, definem também a necessidade de trabalhos futuros. Entre estes recursos estão a definição de classes em tempo de execução, que pode interferir na garantia de consistência das ontologias e a comunicação semântica entre os agentes, indicando a necessidade de analisar um alinhamento entre as ontologias a fim de permitir a comunicação entre os agentes, mesmo quando possuem ontologias diferentes.

(40)

40

Para tanto, é possível verificar que esta abordagem realiza uma implementação inicial da utilização de ontologias locais como base de conhecimento de agentes, de forma que, os próprios autores apresentam diversas possibilidades de trabalhos futuros.

3.4 COOL-AGENTSPEAK

Mascardi et al. (2011) apresentam o CooL-AgentSpeak, uma extensão da linguagem AgentSpeak-DL, possibilitando a cooperação entre os agentes, a fim de permitir a realização do alinhamento entre ontologias heterogêneas presentes em diferentes agentes.

As modificações realizadas perante a linguagem orientada a agentes AgentSpeak-DL, consistem em realizar alterações nos mesmos pontos descritos no trabalho apresentando por Klapiscak e Bordini (2009), o JASDL. Porém, no contexto do CooL-AgentSpeak, é possível integrar a estes pontos o casamento entre as ontologias heterogêneas de diferentes agentes.

Para tanto, a etapa referente a coleta de planos relevantes e a definição de planos aplicáveis, consiste em ter como base planos específicos e mais generalizados, conforme descrito no AgentSpeak-DL. Porém, também é possível inferir um plano com base na realização de um casamento entre duas ontologias heterogêneas referente a diferentes agentes.

A função referente a consulta a base de crenças também sofre alterações, adicionando uma operação de união entre especificação proposta para o AgentSpeak-DL e o casamento de ontologias proposto pelo CooL-AgentSpeak.

A última função a ser atualizada refere-se a atualização de crenças, porém, como já apontado na proposta de Klapiscak e Bordini (2009), esta é a etapa mais complexa, pois a atualização das crenças precisa preservar a consistência em relação aos termos da ontologia. No CooL-AgentSpeak, este processo se torna ainda mais complicado, pois neste contexto, é necessário preservar a consistência entre todas as ontologias para as quais foram realizadas o casamento entre elas. Esta etapa é relacionada como uma proposta de trabalho futuro.

A implementação do CooL-AgentSpeak é proposta como uma extensão da linguagem orientada a agentes Jason, porém, a implementação em si não chegou a ser realizada. A fim de manter uma especificação definida pela FIPA, e pelo fato dos autores considerarem que seria desnecessário que todos os agentes possuam a habilidade de realizar o casamento entre ontologias, é proposta a criação de um

(41)

41

Ontology Agent, o qual será o agente responsável por realizar o alinhamento entre as ontologias heterogêneas. Na Figura 5 é possível observar uma exemplificação referente a atuação deste agente.

Figura 5: Exemplo de execução do Ontology Agent no modelo CooL-AgentSpeak.

Fonte: Mascardi et al. (2011)

Neste exemplo apresentado por Mascardi et al. (2011), o DomesticRobot (DR) e o SuperMarket (SM) são agentes Jason, enquanto o Ontology Agent (OA) é o responsável por realizar o casamento entre as ontologias. Para tanto, o DomesticRobot deseja comprar Chips do SuperMarket, porém, o SuperMarket não conhece a conceito Chips, e pede para o Ontology Agent combinar este conceito com algum conceito da sua ontologia. Após realizar o casamento entre as ontologias, o Ontology Agent informa o SuperMarket que o conceito Crisp em sua ontologia e o conceito Chips referente a ontologia do DomesticRobot correspondem com um bom nível de confiança. Desta forma, o SuperMarket informa ao DomesticRobot que pode vender Crisp, o qual pode ser correspondente ao que deseja comprar.

Esta proposta permite o acesso de agentes apenas a ontologias locais e realiza o casamento entre as ontologias de diferentes agentes. Porém, não descreve a possibilidade de o agente conseguir utilizar ontologias remotas disponíveis na web.

3.5 PYSA

Campos (2014) apresenta PySA, uma implementação realizada em Python onde as crenças dos agentes são representadas por conhecimentos ontológicos em bases de dados online presentes na Web Semântica.

Esta implementação permite que o agente armazene URIs a sua base de crenças, que referenciam triplestores remotas como a DBPedia. Para tanto, o autor define um agente Ag e um conjunto Ts da seguinte forma:

(42)

42

Ag = {Sit, Act, Dat, f Ag, f’Ag }

Ts = {RDF} | RDF = (Sbj, Prd, Obj)

Neste contexto, um agente Ag segue uma definição tradicional, de forma que, Dat é um conjunto Dat=(Blf, Dsr, Int), que representa as bases de dados do agente composta por Crenças, Desejos e Intenções, Act é a base de planos e fAg é a função de deliberação lógica do agente. Junto a

esta definição, é realizada a inclusão de uma função f’ Ag, que representa a base de crenças do agente tendo como referência uma triplestore.

Além disto, outra contribuição importante que este trabalho propõe é a resolução do problema de ambiguidade, pois ao armazenar as URIs destas triplestores, as informações referentes a esta crença sempre serão buscadas nestas bases remotas. Além disso, outra vantagem é que ao referenciar uma simples informação referente a uma ontologia remota, também estamos obtendo todas as informações relacionadas a esta URI, obtendo uma enorme quantidade de informações relevantes a este conceito.

Este projeto é a principal base para o desenvolvimento desta proposta, de forma que se utiliza o conceito de buscar as crenças dos agentes com base em triplestores disponíveis na Web. Porém, a proposta apresentada por Campos (2014) utiliza uma implementação de um modelo de agentes BDI desenvolvida de forma adhoc, portanto não é aplicada a um modelo de agentes consolidado. Além disso, o estudo de caso apresentado realiza uma consulta com base em um termo específico, não alimentando a base de crenças do agente com base nas novas URIs encontradas.

3.6 INTEGRAÇÃO UTILIZANDO CARTAGO

Freitas et al. (2015) propõe uma abordagem que permite a interação de agentes e ontologias a partir de uma camada codificada utilizando o artefato CArtAgO. Este artefato fornece abstração computacional e providencia serviços que os agentes podem explorar para dar suporte as suas atividades.

Para tanto, esta proposta é colocada como uma alternativa onde o conhecimento dos agentes é representado e manipulado por meios de

Dat = (Blf, Dsr, Int) f’ Ag : Blf -> Ts

(43)

43

ontologias, ao invés de utilizar um mecanismo específico, relacionado a plataforma, como a base de crenças. Porém, a implementação permite a utilização das ontologias junto a base de crenças.

A fim de viabilizar a utilização de ontologias pelos agentes, este acesso é realizado por intermédio do artefato CArtAgO, que torna estas funcionalidades disponíveis para os agentes por meio de um conjunto de operações e propriedades.

A vantagem desta abordagem é que qualquer linguagem orientada a agentes que possui suporte para a utilização do artefato CArtAgO pode utilizar esta implementação para permitir que um agente realize o acesso a ontologias, além disso, também permite que um agente possa ter acesso a mais de uma ontologia, o que até o momento, não havia sido apresentado por nenhum dos trabalhos anteriores.

Para validar o artefato desenvolvido, os autores executaram experimentos utilizando o framework Jason, uma das abordagens testadas utiliza o artefato CArtAgO para realizar consultas a ontologias, e a outra abordagem utiliza apenas a base de crenças do agente. Para ambas as abordagens, foi analisado o tempo de execução para que o agente retorne à informação. Com isso, é possível observar que ao utilizar a abordagem com o artefato CArtAgO, é obtida uma melhor performance junto ao framework Jason.

Esta proposta utiliza de uma camada implementada em CArtAgO para realizar a integração entre ontologias e agentes, permitindo que um agente tenha acesso a mais de uma ontologia. Porém, apenas define a utilização de ontologias locais, não apresentando a possibilidade de o agente acessar bases de conhecimento remotas disponíveis na web. 3.7 ANÁLISE DOS TRABALHOS RELACIONADOS

Analisando todos os trabalhos mencionados, é possível identificar que muitos esforços estão sendo aplicados em pesquisas referentes a integração entre agentes e ontologias, com o intuito de contribuir com as pesquisas referentes a Web Semântica. A Tabela 1 apresenta as principais diferenças entre o modelo proposto e os trabalhos relacionados.

De forma cronológica, conseguimos observar o avanço que vem acontecendo nas pesquisas referentes a este contexto. Inicialmente, Dikenelli, Erdur e Gumus (2005) propuseram o SEAGENT, uma abordagem que permite a utilização de ontologias e comunicação entre os agentes, incluindo também o casamento entre as ontologias. Posteriormente, Moreira et al. (2006) apresentam a abordagem teórica AgentSpeak-DL, que demonstra a inclusão de acesso a bases de

(44)

44

conhecimento à linguagem AgentSpeak, utilizando lógica descritiva. Esta proposta deu origem a outras pesquisas como o JASDL, apresentado por Klapiscak e Bordini (2009), que implementou a abordagem descrita no AgentSpeak-DL no interpretador Jason, junto a outras funcionalidades. O CooL-AgentSpeak, demonstrado por Mascardi et al. (2011), que tendo como base o AgentSpeak-DL permite a cooperação entre os agentes. E, a integração de agentes com o artefato CArtAgO, desenvolvido por Freitas et al. (2015), que utiliza o artefato CArtAgO para permitir aos agentes a funcionalidade de utilizar ontologias como base de conhecimento. Além disso, Campos (2014) apresentouo PySA, o qual foi é a única proposta que permite o acesso de um agente a ontologias remotas.

Tabela 1: Comparação entre o modelo proposto e os trabalhos relacionados

A ces sa uma o ntol ogi a A ces sa ontol ogi a rem ot a Possui im pl em ent ação U ti liza um a es tr utura de age nte s B D I consol idada par a im pl em ent ação

Seagent (DIKENELI; ERDUR;

GUMUS, 2005) X X

AgentSpeak-DL (MOREIRA et al.,

2006) X

JASDL (KLAPISCAK; BORDINI,

2009) X X X

CooL-AgentSpeak (MARCARDI et

al., 2011) X X X

PySA (CAMPOS, 2014) X X X

CArtAgO (FREITAS et al., 2015) X X X

Esta proposta X X X X

Fonte: Elaborado pelo autor.

Mesmo que muitos trabalhos permitam a utilização de ontologias como base de conhecimento dos agentes e, em alguns casos, permitam a comunicação entre os agentes presentes em um sistema multiagentes, nenhum dos trabalhos aplica o conceito de permitir o acesso de um agente

(45)

45

desenvolvido com base em um modelo consolidado a bases de dados remotas disponíveis na Web.

(46)
(47)

47

4 MODELO PROPOSTO

Para adicionar a um agente BDI a capacidade de produzir conteúdo significante, ou seja, que o agente consiga navegar por uma base de conhecimento a fim de realizar a produção deste conteúdo, é proposta a integração deste com os dados disponíveis na Web Semântica. Dados estes, que são representados por ontologias e podem ser acessados por intermédio de consultas SPARQL. A vantagem desta abordagem é que as ontologias são compostas por dados ligados, e a sua definição é feita com base em relações entre conteúdos significantes, o que permite que a partir de um dado termo, um agente consiga expandir o seu conhecimento navegando entre estes relacionamentos, os quais representam conexões semânticas.

Por exemplo, ao consultar por um termo denominado Automóvel, é possível obter diversas informações sobre este conceito, como os seus inventores e as montadoras. Algumas destas informações podem nos levar a novos conhecimentos, como no caso dos nomes dos inventores, é possível além do nome, obter informações como data e local de nascimento, local onde estudou, entre diversas outras informações. Este exemplo demonstra o conceito de dados ligados, os quais sustentam a ideia de produzir conteúdo significante, pois a partir de um termo inicial, obtém-se diversas outras informações relevantes.

A fim de realizar o acesso de um agente BDI, implementado utilizando o interpretador Jason, a dados da Web Semântica, seguiu-se a abordagem apresentada por Campos (2014), o qual definiu que as crenças do agente podem ser representadas por URIs, as quais apontam para ontologias remotas disponíveis na Web.

Desta forma, com base em uma crença, terá à disposição uma grande quantidade de informações disponíveis a partir da URI, além dos conceitos disponíveis a partir dos relacionamentos realizados a partir dos dados ligados.

A realização do acesso de um agente aos dados ligados disponibilizados remotamente é proposta a partir de eventos internos. Estes podem ser utilizados na definição dos contextos dos planos de um agente para decidir referente a qual será executado com base nas respostas obtidas a partir das consultas SPARQL. Além disso, também pode utilizar o resultado obtido a partir da consulta para adicionar as crenças do agente. Para a implementação de um protótipo deste modelo, é definida a utilização do interpretador Jason para trabalhar com agentes BDI, de forma que, são propostas alterações no código-fonte deste interpretador para inserir a capacidade de utilizar consultas SPARQL a fim de permitir

(48)

48

que os agentes possam acessar a base de conhecimento da DBPedia. Permitindo assim que todos os agentes de um ambiente possuam um conhecimento de senso comum, que neste caso é a base de conhecimento DBPedia, desta forma, todos terão acesso ao mesmo conjunto de informações.

Optou-se pela utilização do interpretador Jason por este ser uma estrutura de agentes BDI bastante consolidada na comunidade, e que apresenta uma estrutura de ciclo de raciocínio validada por diversas pesquisas. Por conta disso, um dos principais cuidados desta proposta consiste em não modificar o ciclo de raciocínio do agente, pois caso isto aconteça, perde-se um dos principais aspectos desta proposta, que é a utilização de um modelo de agentes consolidado. Portanto, toda a implementação que permitirá que um agente realize a utilização de bases de conhecimento remotas será feita por intermédio de eventos internos a serem incluídos no código-fonte do interpretador. A Figura 6 apresenta o ciclo de execução de um agente capaz de realizar o acesso a bases de conhecimentos remotas.

Figura 6: Ciclo de execução de um agente com acesso a Web Semântica

(49)

49

Com base na imagem referente ao ciclo de execução do agente, é possível observar que as crenças deste agente podem direcionar para URIs que apontam para conhecimentos externos existentes em bases de conhecimentos remotas, que nesta proposta se limita a DBPedia. Na sequência, o agente utilizará da sua lista de planos, definidos para agir com a utilização das URIs que ele possui como crenças. Para tanto, é fundamental que esta lista de planos definida para o agente, faça o uso das ações internas criadas para gerenciar o acesso do agente à Web Semântica. Por intermédio destas ações internas, o agente é capaz de realizar consultas SPARQL e agir sobre o seu ambiente com base nos resultados obtidos. Por fim, acontece a atualização das crenças do agente de acordo com as percepções referentes as etapas anteriores.

A estrutura proposta segue a definição de agente BDI apresentada por Bordini, Hübner e Wooldrige (2007), de forma que, as crenças representam as informações que o agente possui sobre o mundo, neste caso, estas informações serão representadas por URIs e a partir de uma crença o agente terá a sua disposição um conjunto de informações acessíveis por intermédio de consultas SPARQL. Os desejos, que são definidos como todos os possíveis estados que o agente pode querer atingir, neste caso são definidos por planos que utilizam os eventos internos criados para acesso a DBPedia para decidir pela sua execução ou não. Por fim, as intenções que consistem nos estados que o agente decidiu trabalhar, são representadas pelas ações a serem executadas após a seleção de um plano, o qual utilizou de Web Semântica para a sua definição.

O ciclo de execução aqui definido consiste nos dez passos do ciclo de raciocínio do agente, utilizando dos resultados obtidos a partir das ações internas para realizar a atualização das crenças sempre no início do ciclo de execução do agente.

Estes eventos internos são definidos a fim de garantir a aplicação do modelo proposto para diferentes contextos, que não apenas o apresentado como estudo de caso nesta pesquisa. Para tanto, estes eventos são responsáveis por definir a construção de uma consulta SPARQL, executar a pesquisa com base na consulta construída e obter os resultados referente a sua execução.

Para inserir a capacidade de acesso de agentes Jason a bases de conhecimentos disponíveis na Web Semântica, o primeiro passo é realizar a inserção de um pacote denominado semanticWeb ao código-fonte do interpretador Jason, o qual contará com três classes:

a) SparqlObject: responsável por manter informações referentes as triplas Sujeito, Predicado e Objeto;

(50)

50

b) SparqlResult: responsável por manter as informações obtidas após a consulta, as quais podem ser um Literal ou um Resource;

c) SparqlSearch: classe que construirá e executará a consulta, para obter o resultado.

Para a realização do acesso a estas classes, deverão ser definidas ações internas ao agente, responsáveis por definir os parâmetros a serem utilizadas na query e construir as informações necessárias para chamar a classe SparqlSearch, a fim de realizar a consulta. Uma destas ações internas foi adicionada ao código-fonte do Jason, a qual é responsável por realizar uma consulta SPARQL a DBPedia e unificar o label referente a URI com um termo recebido por parâmetro. As demais ações internas deverão ser criadas diretamente no projeto Jason.

Por fim, o agente deverá fazer a chamada às ações internas especificadas, passando os termos necessários para a construção da consulta e a obtenção da resposta.

Para apresentar as alterações realizadas no interpretador Jason a fim de permitir o acesso de agentes a dados ligados disponíveis na Web Semântica, este capítulo está dividido da seguinte forma: A sessão 4.1 apresentará os conceitos utilizados para a realização de consultas SPARQL e na sessão 4.2 será apresentada a estrutura utilizada para o desenvolvimento de ações internas no interpretador Jason utilizando as consultas SPARQL.

4.1 CONSULTAS SPARQL

A principal contribuição desta proposta consiste em permitir o acesso de agentes Jason a informações disponíveis na Web Semântica. Com isso, um agente poderá fazer o uso de conhecimentos obtidos a partir de ontologias remotas, de forma que, toda alteração realizada em uma ontologia passará a estar disponível como conhecimento deste agente.

Neste contexto, um agente terá a sua disposição uma grande quantidade de informações compostas por dados ligados, sobre as quais poderá fazer o uso para as suas deliberações. Para tanto, adicionou-se à implementação do Interpretador Jason a capacidade de acesso à base de conhecimento DBPedia por intermédio de consultas SPARQL.

Para adicionar esta funcionalidade, foi definida uma estrutura de três classes, as quais foram inseridas em um pacote específico para o gerenciamento de acesso à Web Semântica. Estas classes são denominadas SparqlObject, SparqlResult e SparqlSearch.

(51)

51

Iniciando pela classe SparqlObject, esta é responsável por gerenciar os objetos a serem manipulados pela consulta SPARQL e está representada na Figura 7, a qual apresenta cinco atributos: uri, predicate, object, optional e filter. O objetivo desta classe é que cada instância represente uma tripla a ser utilizada na consulta, a qual é representada pelos três primeiros atributos apresentados e geralmente um dos atributos será representado por uma variável, o qual deverá iniciar com um símbolo de interrogação seguido do seu identificador, conforme definido pela especificação apresentada pela World Wide Web Consortium (W3C). O atributo optional é utilizado para definir se a consulta referente a uma tripla é obrigatória ou não, e o atributo filter define filtros de restrição para a tripla, como por exemplo, o idioma para o qual deverá buscar a informação.

Figura 7 – Modelo da classe SparqlObject

Fonte: Elaborado pelo autor.

Referente aos métodos definidos para esta classe, o método toString() é sobrescrito e implementado de forma que retorne uma String contendo a tripla com as suas respectivas restrições a ser utilizada na consulta SPARQL. A Figura 8 apresenta a implementação do método toString(), como é possível observar, de acordo com os valores definidos para os atributos a tripla de consulta é construída. Se o valor referente à variável optional for verdadeiro, então a tripla será envolvida por este comando, assim como se um valor for definido para o atributo filter, este será adicionado ao final da tripla. Também foram definidos três métodos responsáveis por verificar quais dos atributos correspondem a variáveis

(52)

52

da consulta SPARQL, para tanto, verifica-se se o seu conteúdo inicia com uma interrogação.

Figura 8 – Implementação do método toString() realizada na classe SparqlObject

Fonte: Elaborado pelo autor.

A classe SparqlResult, representada pela Figura 9, é a responsável por armazenar os resultados obtidos a partir de uma consulta realizada. O resultado obtido pode ser do tipo resource, quando o valor corresponde a um recurso/uri existente na DBPedia ou do tipo Literal, o qual corresponde a valores de tipos específicos como String, Integer e Date. Figura 9 – Modelo da classe SparqlResult

Fonte: Elaborado pelo autor.

Esta classe conta com três atributos que são utilizados para retornar o resultado: o resourceResult receberá o valor do retorno quando este for do tipo resource, o literalResult receberá o valor do retorno quando este for do tipo literal e o atributo variable, que armazena o nome da variável que foi estabelecida para a consulta. Neste contexto, apenas um dos dois atributos com o valor de retorno necessita ter o valor atribuído, ou o resourceResult ou o literalResult, já que não é possível que um resultado seja literal e resource ao mesmo tempo.

A última classe neste conjunto consiste no SparqlSearch, a qual fará uso de objetos do tipo SparqlObject para construir a query SPARQL e de objetos do tipo SparqlResult para devolver o resultado da consulta.

(53)

53

Esta implementação consiste apenas no acesso a DBPedia, porém, é possível alterar a base de conhecimento de acesso apenas modificando os parâmetros da classe. Para esta classe, são definidas algumas constantes, contendo todos os prefixos necessários para auxiliar no acesso à DBPedia, o service a ser utilizado e um método denominado searchDbpedia, o qual recebe uma lista de SparqlObjects por parâmetro e retorna uma lista de objetos do tipo SparqlResult. A codificação completa desta classe pode ser visualizada no Anexo B.

O método searchDbpedia, apresentado na Figura 10, inicia a sua execução realizando a construção da query SPARQL, para tanto, obtém todos os objetos do tipo SparqlObject enviados por parâmetro, e para cada objeto executa o método toString() para obter a formatação da tripla e adicionar a query, assim como verifica quais informações são variáveis para concatenar aos resultados que serão retornados a partir da consulta. Figura 10: Código referente a criação da query SPARQL na classe SparqlSearch.

Fonte: Elaborado pelo autor.

Após esta etapa, é possível compor a query com os prefixos definidos como constantes, as variáveis que receberão os resultados, o service a ser utilizado, neste caso referente a DBPedia e as triplas que compõem esta consulta. Ao término, a consulta é realizada e, com base no retorno obtido, realiza-se uma iteração para obter o resultado com base nas variáveis definidas e criar objetos do tipo SparqlResult, os quais irão compor a lista de retorno deste método.

(54)

54

4.2 AÇÕES INTERNAS PARA ACESSO A WEB SEMÂNTICA Nesta seção serão apresentadas as ações internas adicionadas ao interpretador Jason, a primeira é denominada searchdbpedia, e foi inserida junto a implementação do Jason como um padrão de acesso a dados da Web Semântica, os outros dois eventos internos consistem em implementações específicas para o estudo de caso que será apresentado.

Mesmo apresentando exemplos específicos para o estudo de caso referente ao quiz educacional, é importante a percepção de que é possível fazer uso da implementação de acesso à Web Semântica, introduzido ao interpretador Jason, para outras situações, como por exemplo em sistemas de recomendação, pois buscou-se definir a estrutura referente a consulta SPARQL a fim de permitir que seja construída de acordo com a necessidade da aplicação, sendo necessário projetar os eventos internos para que realizem as consultas e obtenha-se as respostas necessárias.

4.2.1 Evento Interno Searchdbpedia

Para permitir que um agente Jason verifique a validade de um predicado e uma URI ou Objeto, foi adicionado ao interpretador Jason a implementação de um evento interno denominado searchdbpedia.

Este evento recebe três termos como argumentos para verificar se consiste em uma consulta válida ou não. Para tanto, utiliza os dois primeiros termos para construir um SparqlObject e realizar a consulta, enquanto o terceiro termo é unificado com um literal, o qual é obtido a partir do predicado rdfs:label, para que, assim, o agente possa realizar o uso desta informação. Com isso, este evento interno pode ser utilizado como um validador de uma consulta SPARQL. Caso não sejam enviadas informações o suficiente para a construção da consulta, o seu retorno será falso, indicando que não foi possível realizar a consulta. Como exemplo, apresenta-se abaixo a definição de contextos utilizando este evento interno.

+!search : .searchdbpedia(

“<http://dbpedia.org/resource/Brazil>”, “dbo:country”, X) <- …

+!search : not .searchdbpedia(

“<http://dbpedia.org/resource/Brazil>”, “dbo:country”, X) <- …

(55)

55

Caso o evento interno searchdbpedia retorne algum resultado da consulta SPARQL utilizando a URI referente ao recurso Brazil junto ao predicado dbo:country, então o primeiro evento será selecionado para execução, caso contrário, será o segundo.

A implementação do método execute deste evento interno obtém os dois primeiros termos passados como argumentos, no caso a URI e o predicado, converte para o tipo String e utiliza-os para construir um objeto SparqlObject para adicionar à lista que será enviada como parâmetro para a construção e realização da consulta. Além disso, também adiciona um segundo SparqlObject com a URI recebida como argumento e o predicado rdfs:label, para obter uma descrição referente a URI e unificar com o terceiro termo. A Figura 11 apresenta a parte do código referente a esta etapa.

Figura 11: Parte do código referente a construção da query no evento interno searchdbpedia.

Fonte: Elaborado pelo autor.

Após a definição dos objetos que construirão a consulta, é executado o método searchDbpedia, o qual foi incluído na implementação do interpretador Jason, e obtido como retorno uma lista de SparqlResult. Por fim, busca o objeto que possui como variável o valor correspondente ao label, obtém a String correspondente e unifica com o terceiro termo enviado por parâmetro para o evento interno. Esta parte do código é apresentada na Figura 12.

Referências

Documentos relacionados

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

3.3 o Município tem caminhão da coleta seletiva, sendo orientado a providenciar a contratação direta da associação para o recolhimento dos resíduos recicláveis,

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Após a colheita, normalmente é necessário aguar- dar alguns dias, cerca de 10 a 15 dias dependendo da cultivar e das condições meteorológicas, para que a pele dos tubérculos continue

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

A tem á tica dos jornais mudou com o progresso social e é cada vez maior a variação de assuntos con- sumidos pelo homem, o que conduz também à especialização dos jor- nais,

2 - OBJETIVOS O objetivo geral deste trabalho é avaliar o tratamento biológico anaeróbio de substrato sintético contendo feno!, sob condições mesofilicas, em um Reator