UNIVERSIDADE ESTADUAL PAULISTA FACULDADE DE FILOSOFIA E CIÊNCIAS - CAMPUS DE MARÍLIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA INFORMAÇÃO ANTONIO MARIN NETO ONTOLOGIAS NA REPRESENTAÇÃO DO CONHECIMENTO: UMA FERRAMENTA SEMÂNTICA PARA A CIÊNCIA DA INFORMAÇÃO MARÍLIA - SP 2018 UNIVERSIDADE ESTADUAL PAULISTA FACULDADE DE FILOSOFIA E CIÊNCIAS - CAMPUS DE MARÍLIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA INFORMAÇÃO ANTONIO MARIN NETO ONTOLOGIAS NA REPRESENTAÇÃO DO CONHECIMENTO: UMA FERRAMENTA SEMÂNTICA PARA A CIÊNCIA DA INFORMAÇÃO Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Informação da Faculdade de Filosofia e Ciências - Universidade Estadual Paulista “Júlio de Mesquita Filho” – UNESP, campus de Marília, como requisito parcial para obtenção do título de Mestre em Ciência da Informação. ÁREA DE CONCENTRAÇÃO: Informação, Tecnologia e Conhecimento. LINHA DE PESQUISA: Informação e Tecnologia. ORIENTADOR: PROF. DR. EDBERTO FERNEDA MARÍLIA – SP 2018 ANTONIO MARIN NETO ONTOLOGIAS NA REPRESENTAÇÃO DO CONHECIMENTO: UMA FERRAMENTA SEMÂNTICA PARA A CIÊNCIA DA INFORMAÇÃO Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Informação da Faculdade de Filosofia e Ciências - Universidade Estadual Paulista “Júlio de Mesquita Filho” – UNESP, campus de Marília, como requisito parcial para obtenção do título de Mestre em Ciência da Informação. ÁREA DE CONCENTRAÇÃO: Informação, Tecnologia e Conhecimento. LINHA DE PESQUISA: Informação e Tecnologia. ORIENTADOR: PROF. DR. EDBERTO FERNEDA __________________________________________________ Dr. Edberto Ferneda (orientador) Faculdade de Filosofia e Ciências, UNESP-Marília __________________________________________________ Dr. Fernando de Assis Rodrigues Faculdade de Filosofia e Ciências, UNESP-Marília __________________________________________________ Dr. Rogério Aparecido Sá Ramalho Departamento de Ciência da Informação, UFSCar Marília, agosto de 2018. À minha esposa e companheira, sem a qual esse trabalho não existiria. Agradecimentos Primeiramente gostaria de agradecer a todos os professores, funcionários e colegas da UNESP Marília com os quais tive prazer de conviver nesse tempo de pesquisa, e que de alguma forma me ajudaram em todo esse processo de aprendizado e adaptação ao “mundo acadêmico”. Em especial alguns amigos da minha primeira tentativa como aluno especial nos idos de 2010, como Fernando Assis e Zaira Zafalon, além dos novos amigos nessa nova jornada, em especial o parceiro de orientador e de vários almoços, Jorge Zanaite. Gostaria de agradecer ao meu orientador, Prof. Dr. Edberto Ferneda, pela paciência com a minha falta de responsividade em alguns momentos e pelas diversas mudanças e reflexões ao longo do caminho. Muito obrigado por me manter “no foco”, mas ao mesmo tempo me ajudar em algumas “viagens” a respeito da dissertação. As ontologias entraram na minha vida em uma conversa despretensiosa durante uma tarde em Marília, e acabaram se tornando uma “paixão” acadêmica na minha vida. Também não poderia deixar de agradecer a Prof. Dra. Silvana Vidotti, que foi uma das incentivadoras quando tentei o mestrado pela primeira vez, e mais recentemente pelas conversas nas aulas, juntamente com o Prof. Vechiato, e claro, pelo divertido e excelente churrasco de fechamento da disciplina. A conclusão desse mestrado para mim também é um momento de retribuir aos meus pais, que sempre me deram a melhor educação possível com esforços imensuráveis, mas que infelizmente não puderam ver a minha colação de grau na graduação. Sinto que agora, a possibilidade de os ter presenciando esse momento, é uma forma de pagar essa dívida de gratidão que carregava. Obrigado mãe e pai, amo vocês. Devo especiais agradecimentos aos meus amigos de Marília, Sandra e Carlos. À Sandra pelas nossas excelentes (e quase intermináveis) conversas, que me ajudavam a relaxar depois de horas de viagem, além da paciência em ouvir sobre a minha pesquisa durante horas, e que me ajudavam a refletir enquanto explicava. E o Carlos, o irmão que não tive, mas que a vida me deu, que além de “pouso” me proporcionava momentos de risada, conversas sérias e claro, cerveja e ótima comida. Vocês são incríveis, obrigado. Com um misto de agradecimento e um pouco de culpa, agradeço as minhas filhas por mesmo sem saberem, serem grandes responsáveis pela força de vontade em levar esse mestrado até o final. Infelizmente perdemos horas e dias de convivência entre viagens, momentos de dedicação, e etc., mas sempre era recompensado com um abraço carinhoso ou uma gargalhada gostosa quando estávamos aproveitando nossos momentos. Como eu prometi, agora o papai vai ter bastante tempo pra brincar com vocês, obrigado minhas pequenas pela paciência e compreensão, mesmo que sem saber. E por fim, gostaria de agradecer a minha grande incentivadora e inspiração nessa jornada acadêmica, minha esposa Carolina. Foi através dela que conheci a área da Ciência da Informação, foi com ela que desenvolvi a minha vontade de me tornar um pesquisador e dedicar parte do meu tempo a ciência. Mas acima de tudo, foi ela quem, além de me incentivar, proporcionou a condição para que eu levasse esse mestrado até o fim. Nunca conseguirei expressar o meu amor e agradecimento a você. “Qualquer novo conhecimento provoca dissoluções e novas integrações.” (Hugo von Hofmannsthal) Resumo As ontologias surgiram a partir de discussões na Filosofia com o objetivo de discutir a essência das coisas, nos estudos da metafísica por Aristóteles, que dentre os diferentes ramos de investigação filosófica, tratava do conhecimento da essência de toda a realidade. A ontologia trata do estudo do “Ser” enquanto ser. O termo foi posteriormente utilizado em diferentes áreas como a Ciência da Computação (CC), Psicologia, Ciência da Informação (CI), entre outros. Nesse texto é apresentado um levantamento da utilização das ontologias na representação do conhecimento, identificando e destacando a forma de utilização da ontologia como ferramenta na CC e CI. Para tal, o trabalho inicial com uma contextualização do termo ontologia, desde a sua origem na Filosofia até a sua utilização em algumas das áreas do conhecimento. Em seguida é apresentado um levantamento sobre a representação do conhecimento, a destacar a CC e CI, bem como sobre a utilização da ontologia nesse contexto informacional. Afim de evidenciar a importância das ontologias para representação do conhecimento, também são listadas as principais metodologias de criação de ontologia, aprendizado de ontologia, bem como as ferramentas utilizadas para essas tarefas, além do gerenciamento e engenharia de ontologias. E por fim são apresentadas as considerações finais acerca da utilização das ontologias como ferramentas semânticas na CI e como as futuruas pesquisas podem se beneficiar desse trabalho como uma base para o entendimento das ontologias como ferramenta semântica na CI. Palavras-chave: Ontologia, representação do conhecimento, aprendizado de ontologia, criação de ontologia. Abstract Ontologies come from discussions in Philosophy to debate the essence of things in Aristotle's studies of metaphysics, which among the different branches of philosophical inquiry dealt with the knowledge of the essence of all reality. Ontology deals with the study of "Being" as being. The term was later used in different areas such as Computer Science (CC), Psychology, Information Science (IS), andothers. This thesis presents a survey of the use of ontologies in knowledge representation, identifying and highlighting how ontology is used as a semantic tool in CC and IS. For this, is presented a contextualization of the term ontology, from its origin in Philosophy to its use in some of the areas of knowledge. Next, a survey is presented on the representation of knowledge, highlighting the CC and IS, as well as on the use of the ontology in this informational context. In order to demonstrate the importance of ontologies for knowledge representation, the main methodologies for ontology creation, ontology learning, as well as the tools used for these tasks, as well as the management and engineering of ontologies are also listed. Finally, it's present the final considerations about the use of ontologies as semantic tools in IS and how future researches can benefit from this work as a basis for the understanding of ontologies as a semantic tool in IS. Keywords: Ontology, knowledge representation, ontology learning, ontology construction. Lista de Figuras Figura 1 – Tipos de Ontologias ................................................................................................ 20 Figura 2 - Exemplo de definição de classe usando OWL......................................................... 24 Figura 3 - Algumas definições de IA organizada em 4 categorias ........................................... 26 Figura 4 - Cenários para a construção de ontologias e redes de ontologias ............................. 51 Figura 5 - Atividades da Engenharia de Ontologias ................................................................. 57 Figura 6 - Arquitetura conceitual do aprendizado de ontologia ............................................... 59 Lista de Tabelas Tabela 1 - Categorias genéricas de Aristóteles ........................................................................... 8 Tabela 2 - Tabela de julgamentos e de categorias ...................................................................... 9 Tabela 3 - Primitivas da RDFS ................................................................................................. 23 Tabela 4 - Periodos históricos da IA segundo Russel e Norvig (2010) .................................... 27 Sumário 1 INTRODUÇÃO ................................................................................................................. 1 1.1 Objetivos ...................................................................................................................... 3 1.2 Metodologia.................................................................................................................. 3 1.3 Estrutura da pesquisa .................................................................................................... 5 2 ONTOLOGIAS .................................................................................................................. 7 2.1 A Ontologia e os sistemas de categorização na Filosofia ............................................ 7 2.2 Ontologias para além da Filosofia .............................................................................. 10 3 ONTOLOGIAS E A REPRESENTAÇÃO DO CONHECIMENTO ......................... 17 3.1 Formalização das ontologias ...................................................................................... 19 3.2 Representação do conhecimento na Inteligência Artificial ........................................ 24 3.3 Representação do conhecimento na Ciência da Informação ...................................... 34 4 CONSTRUÇÃO DE ONTOLOGIAS ............................................................................ 40 4.1 Metodologias de construção de ontologias ................................................................ 40 4.2 Ferramentas para construção de ontologias................................................................ 52 4.3 Engenharia Ontológica ............................................................................................... 56 4.4 Aprendizado de Ontologia .......................................................................................... 58 5 APRENDIZADO DE ONTOLOGIA A PARTIR DE TEXTOS ................................. 62 5.1 Abordagens de aprendizado de ontologia .................................................................. 62 5.1.1 Abordagens de aprendizado baseadas em técnicas linguísticas .......................... 63 5.1.2 Abordagens de aprendizado baseadas em técnicas estatísticas ........................... 65 5.1.3 Abordagens de aprendizado baseadas em aprendizado de máquina ................... 67 5.2 Ferramentas para aprendizado de ontologias ............................................................. 69 6 CONSIDERAÇÕES FINAIS .......................................................................................... 75 6.1 Trabalhos futuros ........................................................................................................ 77 REFERÊNCIAS ..................................................................................................................... 78 1 1 Introdução A origem do termo ontologia remonta os estudos da metafísica por Aristóteles, que dentre os diferentes ramos de investigação filosófica, tratava do conhecimento da realidade de todos os seres, ou da essência de toda a realidade. A ontologia trata do estudo do “Ser” enquanto ser (CHAUI, 2013). Posteriormente ao estabelecimento do estudo das Ontologias pela Filosofia, esse conceito passou a ser utilizado em diferentes áreas como a Ciência da Computação (CC), Engenharia de Software (ES), Sistemas de Informação (SI) e Ciência da Informação (CI). A CC utiliza então o conhecimento representado pelas ontologias em diferentes aplicações, que de acordo com Gruber (1993), Vickery (1997) e Chandrasekaran, Josephson e Benjamins (1999), se destacam os sistemas de recuperação de informação, compartilhamento e reutilização de informação e processamento de linguagem natural. Russell e Norvig (2010) apontam também a utilização das ontologias nos processos de aprendizagem, tomada de decisão e comunicação dos agentes inteligentes, já que esses dependem de estruturas claras e definidas para poder utilizar e enriquecer o conhecimento a eles oferecido. As ontologias também são utilizadas na ES, que faz uso de abordagens sistemáticas, disciplinadas e quantificadas no ciclo de vida do software: análise e design, implementação, implantação, operação e manutenção. Na área da CI, o termo ontologia passa a ser utilizado na literatura no final da década de 1990, principalmente por pesquisadores da área de Organização do Conhecimento (FERNEDA, 2013). Também é possível estabelecer uma relação entre ontologias e outros elementos comuns na CI: taxonomias e tesauros. Além disso, segundo Vickery (1997) projetos de ES utilizando 2 ontologias demonstram paralelos com teorias da CI, como classificação facetada, vocabulários controlados e lexicografia. A utilização das ontologias na CI não está restrita somente a elementos similares ou paralelo entre teorias de outras áreas, segundo Almeida (2013) os princípios ontológicos são um assunto relevante na CI, pois diversos estudos já vêm sendo conduzidos na área, em diversos campos com diferentes conotações. Pela própria natureza das ontologias, elas são comumente associadas a representação do conhecimento, algo que é tão antigo quanto a própria civilização humana, conforme demonstram estudos arqueológicos sobre a linguística, o primeiro alfabeto base da linguagem ocidental vem do Egito, datado aproximadamente em 4.000 AC. Para a Filosofia, segundo Mora (1996, apud CAIXETA; SOUZA, 2008), a representação refere-se aos “[...] diversos tipos de apreensão intencional de um objeto”. Diferentes técnicas de representação do conhecimento foram desenvolvidas em diversas áreas, em geral essas variações são resultantes das necessidades de manipulação de cada área, mas há algumas convergências entre as técnicas, e segundo Vickery (1986) aparentemente cada área pode aprender alguma coisa com as demais. Na CC, para o campo da Inteligência Artificial (IA) a representação do conhecimento é uma das principais preocupações, pois grande parte dos programas de IA envolvem o processamento de informação simbólica, ou seja, que os programas manipulam símbolos que de alguma forma representam pedaços de informação sobre o mundo, com o propósito que executar uma tarefa que normalmente requer inteligência. Para a CI, a representação do conhecimento é algo que faz parte do processo de modelagem do conhecimento, que visa a construção de representações que são feitas através de diferentes tipos de Sistemas de Organização do Conhecimento (SOC), sistemas conceituais que representam determinado domínio através da sistematização dos conceitos e das relações semânticas entre si. Dentre as diversas maneiras de se realizar essas tarefas, a pesquisa trata da utilização das ontologias como ferramentas semânticas na CI, propondo uma investigação através de um levantamento bibliográfico das relações com a CC, principalmente no campo da IA, conforme comentado anteriormente, mas também apresentando as metodologias de criação e aprendizado de ontologia. 3 Para que então, conhecendo-se a representação do conhecimento através da ontologia, e entendendo o processo de criação das ontologias, permita entender o seu potencial na área da CI, de forma transdisciplinar, propondo uma integração primeiramente dentro da própria CI, onde tecnologia e organização do conhecimento caminham juntas na busca de novas ferramentas e aprimoramento das aplicações, bem como com a CC, com o intuito de desenvolver colaborações no sentido do desenvolvimento de novas técnicas, tecnologias e soluções semânticas para ambas as áreas. 1.1 Objetivos Baseando-se na utilização das ontologias pelas áreas da Filosofia, CC e CI, apresenta- se como objetivo geral da pesquisa o levantamento da utilização das ontologias na CI, afim da identificação das ontologias como ferramenta semântica na CI, para a utilização em diferentes aplicações da área, no que tange a representação do conhecimento visando identificação de mais aplicações possíveis. Para o desenvolvimento da pesquisa, buscando alcançar o objetivo geral, foram definidos objetivos específicos, com as ações necessárias com o intuito de direcionar a realização de diferentes fases da pesquisa, obtendo uma maior coesão e coerência entre as etapas de desenvolvimento, conforme listados a seguir: • Resgatar a origem do termo ontologia na Filosofia e esclarecer como as áreas da CC e CI passaram a usar o termo, citando as principais aplicações em cada área. • Contextualizar a aplicação das ontologias na representação do conhecimento, estabelecendo aproximações dos conceitos de informação e conhecimento nas áreas da CC e CI, através do detalhamento da representação do conhecimento em cada área. • Identificar o uso das ontologias como ferramentas semânticas na CC e na CI, fazendo uma relação entre as áreas e listando as potenciais futuras aplicações de estudos na área da CI. 1.2 Metodologia Para alcançar os objetivos estabelecidos, essa pesquisa foi feita de forma exploratória, visando estabelecer uma maior familiaridade com o tema ontologias e representação do 4 conhecimento, para um posterior aprofundamento nos assuntos mais relevantes para o alcance dos objetivos. A abordagem metodológica escolhida foi a de levantamento bibliográfico interdisciplinar, envolvendo as áreas da Filosofia, CC e CI, divido em 4 etapas de pesquisa (por assunto) afim de possibilitar um maior entendimento da pesquisa e um aprofundamento nos assuntos a cada nova etapa. No primeiro momento foram feitas buscas simples pelo termo “ontologia” na base Scielo, visando publicações da Ciência da Informação e Filosofia e nas bases da ACM (Association for Computing Machinery), IEEE (Institute of Electrical and Electronics Engineers Standards Association) e o Google Scholar para textos e publicações em geral. Essas buscas visavam estabelecer um parâmetro de volume de informação disponível, onde o critério para ordenação dos resultados foi a relevância (oferecida por cada base de dados), assim como o número de citações. Para compreender melhor o processo de criação das ontologias, foram utilizadas as mesmas bases para buscas pelos termos “ontology learning”, “ontology engineering”, “ontology construction”, “construção ontologias”, “aprendizado ontologia” e “engenharia ontologia”. Esses termos foram definidos com base na pesquisa realizada na primeira etapa, onde esses termos foram citados por autores ao se referirem ao processo de criação de ontologias. Na etapa seguinte, já com um foco em representação do conhecimento, as mesmas bases foram utilizadas, mas os termos buscados foram: • ontology + knowledge representation • ontology + knowledge • ontology + information representation • ontologia + representação • ontologia + representação conhecimento • ontologia + representação informação Dos resultados obtidos, novamente usando as ordenações de relevância e número de citações, os que no resumo tratavam de como a ontologia era utilizada na representação de informação ou conhecimento, foram inicialmente selecionados. Posteriormente, a partir dos textos selecionados os autores mais citados ou textos relacionados que não haviam sido ainda 5 obtidos na pesquisa eram buscados manualmente. E caso fossem relevantes, eram adicionados a pesquisa. Além dessa busca, para poder contextualizar melhor a pesquisa no campo da IA, foram procurados os principais cursos da área no Brasil (Unicamp e USP) além do MIT e Stanford nos Estados Unidos. E baseado nas bibliografias desses cursos, foram escolhidos três livros como base para a pesquisa sobre IA, além dos textos encontrados. E por fim, durante o desenvolvimento do trabalho, novos textos seguiram sendo incorporados ao corpus da pesquisa conforme eram citados pelos artigos que estavam sendo utilizados para elaboração do texto. Isso permitiu um aprofundamento em assuntos mais clássicos, como a documentação, organização do conhecimento e IA, além de levar a pesquisa a chegar em autores renomados da área sem a necessidade de citações indiretas. 1.3 Estrutura da pesquisa A pesquisa foi estruturada com a intenção de apresentar o assunto de forma sequência e estrutura, para demonstrar a relação entre os tópicos de forma evolutiva. Dito isso, o capítulo 2 visa introduzir o conceito das ontologias, resgatando a origem do termo na Filosofia e sua relação com a categorização introduzida por Aristóteles. O capítulo apresenta também a utilização das ontologias nas áreas da CC (e áreas correlatas, como ES e SI) e na CI. O capítulo 3 discute a representação do conhecimento através das ontologias, para isso inicia-se com uma introdução geral do que se trata a representação do conhecimento, e assim como no capítulo 2, faz um aprofundamento para as áreas da CC e CI. Já no capítulo 4, são abordadas as diferentes metodologias de criação de ontologias com o intuito de mostrar o processo de evolução desde as primeiras ontologias documentadas até os dias de hoje, com metodologias mais estruturadas e ferramentas computacionais disponíveis. No capítulo 5 o assunto da criação de ontologia é aprofundado pela pesquisa sobre o aprendizado de ontologia a partir de texto, que consiste na automação de todo ou parte do processo de criação de ontologias utilizando textos não estruturados para a representação do conhecimento. Buscamos assim mostrar que a representação do conhecimento expresso em documentos pode ser uma maneira de utilização das ontologias como ferramenta semântica para representação do conhecimento humano. 6 Por fim, no capítulo 6 são apresentadas as considerações finais, incluindo uma reflexão sobre as ontologias como ferramentas semânticas e trabalhos futuros na CI para o empoderamento da área frente a nova era da informação digital. 7 2 Ontologias A origem do termo ontologia remonta os estudos da metafísica por Aristóteles, que dentre os diferentes ramos de investigação filosófica, se tratava do conhecimento da realidade de todos os seres, ou da essência de toda a realidade. A ontologia se trata do estudo do “Ser” enquanto ser. Em grego, o termo onto significa “Ser”, enquanto logia, estudo ou conhecimento (CHAUI, 2013). Nesse contexto, a Ontologia diz respeito aos tipos de coisas que existem e sua descrição, e foi Aristóteles o primeiro a utilizar a palavra grega kategoria como um termo técnico para predicação, sendo que a teoria das categorias elaborada pelo filósofo se tornou um dos mais importantes tópicos do estuda das ontologias (ALMEIDA, 2014). Ademais, a análise de como a filosofia estuda a teoria das categorias é importante para a CI, por ser a base de diversos estudos e ferramentas da área, conforme será visto mais a frente nesse texto. Além do sistema aristotélico de categorias, segundo Almeida (2014) outros dois também devem ser analisados. Os três então seriam: o aristotélico, o kantiano e o husserliano. 2.1 A Ontologia e os sistemas de categorização na Filosofia O sistema proposto por Aristóteles, que se tornou o mais conhecido, conta com uma lista de tipos de mais alto nível, que são conhecidos como categorias. Para os que estudam o sistema aristotélico, um sistema de categorias deve ser capaz de fornecer um inventário das coisas que existem, sendo assim, cada entidade possui uma característica fundamental chamada essência real. Assim, a categoria na qual uma entidade vai ser classificada depende da essência que possui, e essa entidade deve compartilhar um conjunto de propriedades suficientes com as 8 outras entidades da mesma categoria. Na Figura 1 podemos ver as 10 categorias, ou níveis, criados por Aristóteles: Tabela 1 - Categorias genéricas de Aristóteles Termo Aristotélico Significado Moderno Exemplo Ti esti, ousia Substância Homem Poson Quantidade Cinco metros Poion Qualidade Branco Pros ti Relação Metade Pou Local No mercado Pote Data Ontem Keisthein Postura Sentado Echein Estado Vestido Poitein Ação Queimar Paschein Sentimento Ser queimado Fonte: (ALMEIDA, 2014) Kent posteriormente questionou a maneira não sistemática que foi adotada pela teoria aristotélica para a definição das categorias, e propôs então um novo sistema partindo do conceito de julgamento na forma proposicional do sistema lógico aristotélico, sujeito-cópula- predicado, utilizando quatro aspectos pra classificar os julgamentos: quantidade, qualidade, relação e modalidade. Para o aspecto quantidade, o sujeito pode ser universal, particular ou singular. Para o aspecto qualidade o predicado pode ser afirmativo, negativo ou infinito. No aspecto modalidade três tipos de verbos de ligação são propostos para conectar o sujeito e os predicados: problemática, assertória e apodítica. Para o quarto e último aspecto, a relação, julgamentos são combinados em inferências silogísticas, como em lógica, resultando em categórica, hipotética ou disjuntiva. A seguir a tabela de julgamentos e categorias de Kent (ALMEIDA, 2014): 9 Tabela 2 - Tabela de julgamentos e de categorias Aspecto considerado Julgamentos Categorias I Quantidade de julgamentos Universal Unidade Particular Pluralidade Singular Totalidade II Qualidade Afirmativo Realidade Negativo Negação Infinito Limitação III Relação Categórico Inferência e Subsistência Hipotético Causalidade e Dependência Disjuntivo Reciprocidade IV Modalidade Problemático Possibilidade Assertório Existência Apodítico Necessidade Fonte: (ALMEIDA, 2014) O terceiro estudo sobre categorias na Filosofia listado por Almeida (2014) é a fenomenologia desenvolvida por Hursserl, que se propõe a estudar os fenômenos, ou quais são as formas nas quais as coisas aparecem para nós em diferentes formas de experiências conscientes. Hursserl utiliza o termo categoria de uma forma particular, como uma entidade do reino das essências formais, dentro da Ontologia proposta por ele, que se organiza em reino dos fatos, retino das essências e o reino dos significados ou sentidos. No reino dos fatos estão as entidades concretas, que são indivíduos empíricos concretos, estados de coisas empíricos concretos e eventos empíricos concretos. O reino das essências é composto das entidades ideais, ou aquelas não-reais, que não existem no espaço e tempo. E o reino do significado, ou sentido, contém os significados como as pessoas pensam os objetos, e são o conteúdo de experiências intencionais, as formas nas quais objetos são apresentados na consciência humana (ALMEIDA, 2014). Os três estudos sobre categorias na Filosofia apresentados por Almeida (2014) fortalecem a ideia trazida por Vickery (1997, tradução nossa) de que “filosoficamente falando, Ontologia é o estudo do que existe e do que nós temos que assumir que existe para alcançar uma descrição convincente da realidade”. Outras áreas acabaram se interessando pelo estudo das ontologias que era desenvolvido pela Filosofia, e partindo da abordagem filosófica transplantaram o termo para diferentes aplicações, como IA e Representação do Conhecimento (RC), tendo como um dos conceitos 10 mais amplamente aceitos, o apresentado por Gruber (1993, tradução nossa) de que “uma ontologia é uma especificação explícita de uma conceitualização”, sendo que no mesmo parágrafo, Gruber (1993) deixa claro a origem filosófica do termo e diz que “para sistemas baseados em conhecimento, o que existe é exatamente aquilo que pode ser representado”. Na seção seguinte iremos apresentar os principais conceitos segundo autores das áreas, quais são as principais aplicações de ontologias no campo da IA e na área da CI, fazendo um paralelo entre as aplicações e definições. 2.2 Ontologias para além da Filosofia Posteriormente ao estabelecimento do estudo das Ontologias pela Filosofia, esse conceito passou a ser utilizado em diferentes áreas como a CC, ES, SI e CI. Na análise bibliométrica realizada por Yin, Lee e Yang (2009) sobre a utilização do termo “ontologia”, utilizando o Social Sciences Citation Index (SSCI) da Web of Science, resultou em 1.996 índices na literatura onde os títulos traziam a palavra ontologia de 1956 a 2008, mostrando um aumento significativo e constante desde 1995. Segundo os autores da pesquisa, o estudo das ontologias vem se tornando popular e está em um momento de alta maturidade nos últimos 15 anos, por exemplo, com 1000 citações em 2005 e chegando a 2000 em 2008 em diferentes áreas do conhecimento, como mostrado no Gráfico 1 com a distribuição do índice para os 20 principais assuntos no período entre 1956 e 2008. Apesar da pesquisar ter sido realizada há 8 anos atrás, ela mostra uma progressão constante ao longo de mais de 50 anos, evidenciando assim o crescimento do interesse no assunto. 11 Gráfico 1 - Distribuição do índice de publicação para os 20 assuntos principais Fonte: Adaptado de Yin, Lee e Yang (2009) Nos estudos sobre ontologias na CC, e especificamente no campo da IA, um conceito sobre ontologia constantemente utilizado é o apresentado por Gruber (1993), em que a “ontologia é uma especificação explícita de uma conceitualização”. O autor parte da origem do termo na Filosofia, onde segundo ele “uma Ontologia é a explicação sistemática da existência”, e estabelece uma relação com sistemas baseados em conhecimento, pois para esses sistemas o que existe é exatamente o que se pode ser representado. Poucos anos após o trabalho de Gruber (1993) ser publicado, Guarino e Giaretta (1995) publicaram um outro estudo sobre ontologias, onde escreveram sobre a terminologia. Segundo Guarino e Giaretta (1995), o termo ontologia é usado de diferentes maneiras na representação e compartilhamento do conhecimento, e se baseiam em tão diferentes definições que o assunto deveria ser melhor esclarecido. Ainda naquela época, com o estudo de ontologias se tornando mais evidente, os autores identificaram 7 diferentes interpretações de ontologia: 1. Ontologia como uma disciplina filosófica. 52 53 58 64 65 71 75 77 77 79 84 95 114 122 151 153 172 173 185 280 0 50 100 150 200 250 300 ESTUDOS DO AMBIENTE CIÊNCIA POLÍTICA PSICOLOGIA EXPERIMENTAL ANTROPOLOGIA INFORMÁTICA MÉDICA ECONÔMIA CIÊNCIA DA COMPUTAÇÃO INTERDISCIPLINAR CIBERNÉTICA ERGONÔMIA EDUCAÇÃO E PESQUISA EM EDUCAÇÃO GEOGRAFIA GERENCIAMENTO CIÊNCIAS SOCIAIS (INTERDISCIPLINAR) SOCIOLOGIA ÉTICA HISTÓRIA E FILOSOFIA DA CIÊNCIA PSICOLOGIA CIÊNCIA DA COMPUTAÇÃO E SISTEMAS DE INFORMAÇÃO CIÊNCIA DA INFORMAÇÃO E BIBLIOTECONOMIA FILOSOFIA Publicações 12 2. Ontologia como um sistema conceitual informal. 3. Ontologia como uma conta formal semântica. 4. Ontologia como especificação de uma conceitualização. 5. Ontologia como a representação de um sistema conceitual via teoria lógica. a. Caracterizada por propriedades formais específicas. b. Caracterizada apenas pelo seu propósito específico. 6. Ontologia como o vocabulário usado por uma teoria lógica. 7. Ontologia como uma (meta) especificação de uma teoria lógica. Das 7 interpretações apresentadas acima, a primeira é a que se diferencia mais das demais, por remeter a área original do estudo das ontologias. Guarino e Giaretta (1995) estabelecem que quando utilizam um artigo indefinido antes do termo ontologia (exemplo: uma ontologia) com “o” minúsculo, refere-se então a um determinado objeto em particular (que sua natureza pode variar), enquanto quando utilizado com “O” maiúsculo, se trata da Ontologia como a disciplina filosófica, que já foi introduzida anteriormente nessa seção. As interpretações 2 e 3 trazem as ontologias como uma entidade semântica conceitual, formal ou informal, enquanto as interpretações 5 e 7 trazem as ontologias como um objeto sintático. Já na intepretação 6, ontologia se trata apenas de uma “ferramenta”, o vocabulário que será utilizado pela teoria lógica. Para a interpretação 4, oriunda do trabalho apresentado por Gruber (1993), Guarino e Giaretta (1995), consideram que ela pode ser mal interpretada e acabar sendo utilizada de forma incorreta, por se basear em um espectro extenso de conceitualização (GUARINO; GIARETTA, 1995). Guarino e Giaretta (1995) restringem então a utilização do termo ontologia em 3 sensos técnicos. No senso (a) uma ontologia é um sinônimo para “teoria ontológica”, que difere da teoria lógica pela sua semântica, já que seus axiomas devem ser verdade em todas os cenários possíveis da conceitualização utilizada. No senso (b) ontologia é sinônimo da especificação de um compromentimento ontológico1. Por fim, no senso (c) ontologia é sinônimo de conceitualização, mas diferentemente do apresentado por Gruber (1993) nesse caso se trata de conceitualização mais estrita e com as relações claramento definidas. Posteriormente a esse esclarecimento de terminologia proposto por Guarino e Giaretta (1995), Chandrasekaran, Josephson e Benjamins (1999) também se preocuparam em falar sobre 1 Comprometimento ontológico é a descrição semântica da conceituação pretendida de uma teoria lógica (GUARINO; GIARETTA, 1995). 13 a utilização das ontologias na IA no texto: “O que são ontologias e porque precisamos delas?”. Os autores começam o trabalho fazendo um posicionamento claro de sua proposta sobre uso de ontologias na IA: Teorias em IA caem em duas grandes categorias: teorias de mecanismos e teorias de conteúdo. Ontologias são teorias de conteúdo sobre os tipos de objetos e as relações entre objetos que são possíveis em um domínio específico de conhecimento. Elas fornecem potenciais termos para descrever o conhecimento sobre o domínio. A classificação das ontologias dentro da categoria de teoria de conteúdo é justificada por Chandrasekaran, Josephson e Benjamins (1999), afirmando que uma das principais contribuições das ontologias é identificar classes e objetos específicos, e as relações existentes em um determinado domínio. De forma mais aprofundada, analogamente ao senso de Guarino e Giaretta (1995), Chandrasekaran, Josephson e Benjamins (1999) apresentam que ontologia é sinônimo da especificação de um comprometimento ontológico, estabelecendo uma relação com a origem do termo na Filosofia, é possível afirmar que ontologia é então uma representação de vocabulário, em geral especializado em um domínio ou assunto específico, ou também a representação de um corpo de conhecimento. A diferença é que o vocabulário fornece um conjunto de termos que descrevem os fatos de um domínio, enquanto um corpo de conhecimento usa um vocabulário para descrever todo o conhecimento do domínio. Conforme demonstrado pelas definições apresentadas, apesar de não haver uma definição única sobre o que são as ontologias, dentro da IA há um consenso de que uma das principais funções desempenhadas pelas ontologias é a representação do conhecimento. Essa aplicação é embasada por diversos autores como Gruber (1993), Guarino e Giaretta (1995), Vickery (1997), Chandrasekaran, Josephson e Benjamins (1999), Almeida (2014) e Russell e Norvig (2010). A CC utiliza então o conhecimento representado pelas ontologias em diferentes aplicações, que de acordo com Gruber (1993), Vickery (1997) e Chandrasekaran, Josephson e Benjamins (1999), se destacam os sistemas de recuperação de informação, compartilhamento e reutilização de informação e processamento de linguagem natural. Russell e Norvig (2010) apontam também a utilização das ontologias nos processos de aprendizagem, tomada de decisão e comunicação dos agentes inteligentes, já que esses dependem de estruturas claras e definidas para poderem utilizar e enriquecer o conhecimento a eles oferecido. O detalhamento sobre as 14 formas de representação do conhecimento e como a CC, e especificamente o campo da IA, se beneficia disso serão discutidos no capítulo a seguir. As ontologias também são utilizadas na ES, que faz uso de abordagens sistemáticas, disciplinadas e quantificadas no ciclo de vida do software: análise e design, implementação, implantação, operação e manutenção. Happel e Seedorf (2006) apresentaram uma categorização das ontologias no processo de ES que torna mais fácil a compreensão da utilização das ontologias. Essas categorias são: • Desenvolvimento orientado a ontologias (ODD): Considera o uso das ontologias durante o desenvolvimento, e que descrevem o domínio do problema. Exemplo dessa abordagem é a integração com softwares de modelagem de linguagens, uma vez que por permitirem inferências e outros tipos operações lógicas na ontologia do domínio, essas irão auxiliar na criação de modelos de dados, validações lógicas e criação de vocabulários. Para esse cenário, também é considerado a utilização das ontologias no processo de Engenharia de requisitos, na elaboração de documentos de especificação de requisitos, e para a representação formal do conhecimento acerca dos requisitos, possibilitando validação automática de consistência, já que oferecem um formalismo ao modelo. • Desenvolvimento habilitado por ontologias (OED): Também durante a etapa de desenvolvimento do software, mas dessa vez como um acessório na validação e controle para as estruturas de dados, tipos de variáveis utilizadas na programação e busca de componentes quer possam ser reutilizados. • Arquiteturas baseadas em ontologia (OBA): Utilização da ontologia como artefato primário durante a operação do sistema, como parte central da lógica da aplicação. Regras de negócio podem ser um exemplo do que é representado na ontologia. • Arquiteturas habilitadas por ontologias (OEA): Utilização das ontologias para fornecer suporte à infraestrutura no tempo de execução de um sistema de software. Um exemplo são os serviços semânticos da Web, onde ontologias adicionam uma camada semântica sobre as descrições de serviço da Web existentes, adicionando funcionalidade para a descoberta, correspondência e composição automáticas de fluxos de trabalho baseados em serviço. 15 Na CI o termo ontologia passa a ser utilizado na literatura no final da década de 1990, principalmente por pesquisadores da área de Organização do Conhecimento. E foi a partir da fundação da International Society for Knowledge Organization (ISKO), em 1989, que a área da Organização do Conhecimento passou a se consolidar (FERNEDA, 2013). Também é possível estabelecer uma relação entre ontologias e outros elementos comuns na CI: taxonomias e tesauros. Nesses casos, a similaridade é pela possibilidade de restringir a linguagem natural, como um vocabulário controlado (ALMEIDA, 2014). Além disso, segundo Vickery (1997) projetos de ES utilizando ontologias demonstram paralelos com teorias da CI, como classificação facetada, vocabulários controlados e lexicografia. A utilização das ontologias na CI não está restrita somente a elementos similares ou paralelo entre teorias de outras áreas, segundo Almeida (2013) os princípios ontológicos são um assunto relevante na CI, pois diversos estudos já vêm sendo conduzidos na área, em diversos campos com diferentes conotações. Isso pode ser ilustrado por uma reflexão em Almeida (2014): Ao que parece, os autores de Ciência da Informação nem sempre mencionam explicitamente o termo “ontologia”, mesmo que princípios ontológicos aparecem claramente na literatura daquele campo de pesquisa. Na tese “Ontoforinfoscience: Metodologia Para Construção De Ontologias Pelos Cientistas Da Informação”, Mendonça (2015) propõe a utilização das ontologias na CI de uma forma mais ampla: [...] a ontologia como um instrumento para a organização e representação da informação, capaz de capturar, mapear e compartilhar o conhecimento de domínios diversos, de forma a “estabelecer a verdade sobre a realidade, encontrando respostas para a questão ‘o que existe’” (SMITH, 2004, p. 22). Nesse sentido, compreende-se ontologias muito além do que um simples artefato da engenharia de software. Em seguida, Mendonça (2015) lista algumas das aplicações das ontologias na CI: (i) suporte à extração de informação; (ii) tradução de linguagem natural; (iii) integração automática de um conjunto de vocabulários padronizados ou dicionários de dados relacionados a um domínio específico; (iv) fornecer informações sobre categorias (conceitos) existentes em um domínio; (v) integração de bancos de dados, softwares ou modelos de negócios; (vi) desenvolvimento de recursos para a Web Semântica. Considerando as aplicações de ontologias na CI levantadas por Mendonça (2015), somadas as relações estabelecidas entre elementos ontológicos da CI com as ontologias feitas 16 por Vickery (1997) e Almeida (2014), é possível observar o elevado potencial de contribuição das ontologias em diferentes campos da CI. No capítulo seguinte serão abordadas as questões básicas da representação do conhecimento, passando pelas diferentes formalizações de ontologias, aplicações diretas na CI e as vantagens obtidas pela área no estudo e utilização das ontologias. 17 3 Ontologias e a Representação do Conhecimento A representação do conhecimento é um fenômeno tão antigo quanto a própria civilização humana, conforme demonstram estudos arqueológicos sobre a linguística, o primeiro alfabeto base da linguagem ocidental vem do Egito, datado aproximadamente em 4.000 AC. A forma mais próxima do que usamos hoje como estrutura de comunicação escrita vem da Grécia, a partir do uso das primeiras letras alfa e beta, que revolucionaram o modo de informação ocidental, gerando um salto em sua representação (CAIXETA; SOUZA, 2008). Caixeta e Souza (2008) também apontam o desenvolvimento do conhecimento matemático como um importante impulso na representação dos fenômenos da natureza, pois segundo os autores: [...] a matemática foi fundamental para estabelecer leis da natureza baseadas em símbolos que representassem a contagem e a maioria das leis de causa e efeito e outras relações que regem elementos da natureza, passíveis de comprovação por uma lógica, científica e racional. Para a Filosofia, segundo Mora (1996, apud CAIXETA; SOUZA, 2008), a representação refere-se aos “[...] diversos tipos de apreensão intencional de um objeto” e alguns filósofos apresentaram suas visões sobre a representação de formas diferentes. Para Aristóteles, a representação é um fenômeno da fantasia (intelectual ou sensível); os estoicos a viam como impressão, Descartes como imaginação; Spinoza distinguia entre apresentação sensível e conceitual; e por fim, Schopenhauer definia como a forma do mundo dos objetos como manifestações de vontade. Para o autor, o termo é ambíguo especialmente quando se trata de 18 esclarecer a natureza e as formas do conhecimento do mundo pela epistemologia e a psicologia, e na relação entre as duas. Na psicologia a representação pode ser vista de 4 formas: (i) objeto efetivamente presente, equiparada a ideia de percepção; (ii) reprodução na consciência de percepções passadas, como memória ou recordações; (iii) como antecipação de acontecimentos futuros baseada em eventos passados, como a imaginação; (iv) união na consciência de várias percepções não atuais e nem passadas ou antecipatórias, que tanto pode levar a ideia de imaginação ou alucinação. Além dessas quatro formas, a psicologia também admite a representação baseada no predomínio de um dos sentidos humanos, como também representações conceituais, afetivas e volitivas (CAIXETA; SOUZA, 2008). Seguindo o paradigma da representação, Capurro (1991) traz em seu estudo a abordagem de que os seres humanos são conhecedores e observadores da realidade externa, e que o processo do conhecimento se dá através da assimilação das coisas através da representação na mente/cérebro do receptor. Uma vez tendo essas representações processadas e codificadas no cérebro, poderiam ser comunicadas a outras mentes e/ou armazenadas e processadas por computadores. Portanto, para Capurro (1991), as pessoas são processadores biológicos de informação, e essa informação é a codificação dupla da realidade. Os humanos usam as informações para fins racionais específicos, mas não há nada que vá contra a hipótese de que os computadores possam alcançar o mesmo nível de processamento e uso da informação. Conhecimento, crenças e opiniões são pessoais, subjetivos e conceituais. Mas para que seja possível comunicar esse conhecimento, é preciso que seja expresso, descrito ou representado de alguma maneira física (tangível), como um símbolo ou texto (BUCKLAND, 1991). De certa forma complementar ao conceito de “informação como coisa” apresentado por Buckland, Vickery (1986) afirma que o conhecimento pode ser representador por símbolos combinados de diversas maneiras, tendo como o mais conhecido a linguagem natural. Tal representação através de símbolos é relevante em diversas situações de diversas áreas, como documentos e índices, estruturas documentárias, estruturas de registros e arquivos em um banco de dados, estruturas de dados em programas de computador, estruturas sintáticas e semânticas em linguagens naturais, representação do conhecimento em IA, redes semânticas, modelos de memória humana, entre outros. O fator comum entre todas essas aplicações ou campos é a necessidade de definir como o conhecimento vai ser representado, para que essa representação possa ser manipulada (VICKERY, 1986). 19 Diferentes técnicas de representação do conhecimento foram desenvolvidas em diversas áreas, em geral essas variações são resultadas das necessidades de manipulação de cada área, mas há algumas convergências entre as técnicas e segundo Vickery (1986), aparentemente cada área pode aprender alguma coisa com as demais. Nas seções a seguir serão exploradas a formalização das ontologias como estruturas de representação do conhecimento para diferentes situações, as representações do conhecimento nas áreas da CC (principalmente no campo da IA) e CI, trazendo uma visão geral das aplicações e ferramentas. 3.1 Formalização das ontologias Guarino (1995) faz uma derivação do conceito introduzido por Gruber (1993), de que uma ontologia é uma “especificação de uma conceitualização”, conforme abordado no capítulo anterior. Nessa derivação, Guarino (1995) chega a hipótese de que ontologias correspondem a teorias lógicas, ou seja, uma caracterização axiomática do significado de um vocabulário lógico. Partindo dessa premissa, o autor explica que a diferença entre uma ontologia e uma base de conhecimento, se caracteriza pelo propósito da ontologia em si, que pode ser dada como uma base de dados particular a uma situação, onde todas as afirmações que descrevem os fatos são assumidas como verdadeiras para um grupo de usuários em virtude de um vocabulário de significado acordado entre todos. Sendo que uma base de conhecimento genérica também pode descrever fatos e afirmações relacionadas a um estado particular. As ontologias podem então ser classificadas de acordo com duas dimensões, nível de detalhe e nível de dependência. Para a primeira dimensão, uma ontologia se aproxima do significado desejado de um vocabulário (podendo ser utilizada para estabelecer um consenso sobre o vocabulário compartilhado ou uma base de conhecimento que utilize esse vocabulário), mas acabam dependendo de uma linguagem mais rica. Já uma ontologia com baixo nível de detalhamento, pode ser desenvolvida já partindo do pensamento em utilizar serviços de inferência, visando o compartilhamento entre usuários que já possuem um acordo (formalização) do vocabulário a ser empregado (GUARINO, 1995). Para a segunda dimensão de classificação, nível de dependência, Guarino (1995) enumera 4 tipos de ontologia (Figura 1 – ): 20 • Ontologias superior (top-level ontologies): Descreve conceitos gerais como espaço, tempo, ações e etc., que são independentes de situação ou um domínio em particular. Mais adequadas para unificação de ontologias para uma grande quantidade de usuários. • Ontologias de domínio e de tarefa (domain ontologies e task ontologies): Descrevem, respectivamente, vocabulários a um domínio genérico (medicina ou engenharia) ou uma tarefa genérica (como diagnosticar ou vender), através da especialização de termos da ontologia superior. • Ontologias de aplicação (application ontologies): Descrevem conceitos dependentes de tarefa e em um domínio em particular, sendo em geral especializações de ambas ontologias relacionadas. Esses conceitos normalmente correspondem a funções exercidas por entidades do domínio quando executam uma certa atividade. Figura 1 – Tipos de Ontologias Fonte: Guarino (1995) Outra forma de se classificar, ou diferenciar, ontologias é levando em consideração o nível de formalidade. Ontologias podem ser altamente informais se expressadas em linguagem natural; semi-informal se expressada em uma restrita e estruturada forma da linguagem natural; semiformal se expressa em uma linguagem artificial formalmente definida (OntoLingua, OWL, etc.); e fortemente formal se fornecer termos definidos meticulosamente com uma semântica Ontologia de Aplicação Ontologia de Domínio Ontologia de Tarefa Ontologia Superior 21 formal, teoremas e provas de suas propriedades (GÓMEZ-PÉREZ; FERNÁNDEZ-LÓPEZ; CORCHO, 2004). Gruber (1993) identificou cinco componentes das ontologias: classes, relações, funções, axiomas formais e instâncias. Esses mesmos componentes são apontados em outros trabalhos, com o manual de Noy e Mcguinness (2001) sobre como criar ontologias usando o Protégé, e apesar de completos, esses componentes possuem diversos aspectos técnicos, que estão mais relacionados a IA e representação utilizando lógica. Com o objetivo de facilitar o entendimento, omitindo alguns detalhes técnicos, Ramalho (2010) apresenta uma síntese dos componentes de uma ontologia: • Classes e Subclasses: As classes e subclasses de uma ontologia agrupam um conjunto de elementos, “coisas”, do “mundo real”, que são representadas e categorizadas de acordo com suas similaridades, levando-se em consideração um domínio concreto. Os elementos podem representar coisas físicas ou conceituais, desde objetos inanimados até teorias científicas ou correntes teóricas; • Propriedades Descritivas: Descrevem as características, adjetivos e/ou qualidades das classes; • Propriedades Relacionais: Trata-se dos relacionamentos entre classes pertencentes ou não a uma mesma hierarquia, descrevendo e rotulando os tipos de relações existentes no domínio representado; • Regras e Axiomas: Enunciados lógicos que possibilitam impor condições como tipos de valores aceitos, descrevendo formalmente as regras da ontologia e possibilitando a realização de inferências automáticas a partir de informações que não necessariamente foram explicitadas no domínio, mas que podem estar implícitas na estrutura da ontologia; • Instâncias: Indicam os valores das classes e subclasses, constituindo uma representação de objetos ou indivíduos pertencentes ao domínio modelado, de acordo com as características das classes, relacionamentos e restrições definidas; • Valores: Atribuem valores concretos às propriedades descritivas, indicando os formatos e tipos de valores aceitos em cada classe. O passo final na formalização da representação do conhecimento utilizando ontologias, se dá pela codificação dos elementos da ontologia em um formato que possa ser processado pelos computadores, sendo o objetivo da ontologia a utilização por alguma tecnologia. Na 22 literatura das áreas de CC, ES e SI as práticas mais comumente utilizadas são as diretamente relacionadas com a área, como por exemplo Unified Modeling Language (UML) e Modelo Entidade Relacionamento (MER). A utilização do UML pode ser utilizada para a modelagem de ontologias por possuir uma estrutura que prevê os elementos utilizados pelas ontologias, além de ser de fácil entendimento por pessoas externas à área da CC, e por haver diversas ferramentas CASE disponíveis para criação e manipulação dos diagramas UML, que são a base da representação dessa linguagem (GÓMEZ-PÉREZ; FERNÁNDEZ-LÓPEZ; CORCHO, 2003). Outro exemplo citado foi a utilização de técnicas de modelagem de bancos de dados, MER. Nesse caso também há a possibilidade de estabelecer uma relação entre os elementos de uma ontologia e os elementos da MER. O ponto positivo dessa representação é a possibilidade de geração de instâncias através de dados inseridos no banco de dados, e a facilidade de consulta com a linguagem SQL. Assim como é possível a utilização de índices e chaves entre os relacionamentos, permitindo a adequação dos axiomas e regras, mas ainda não é possível fazer a representação de ontologias mais complexas (GÓMEZ-PÉREZ; FERNÁNDEZ-LÓPEZ; CORCHO, 2003). Para a representação mais estruturada e de ontologias mais pesadas, uma alternativa é o formado RDF – Resource Description Framework – que foi criado para a descrição de meta- dados na Web. O modelo de dados RDF consiste em três elementos: • Recursos (resources): Qualquer tipo de dado descrito pelo RDF. Recursos são descritos com expressões RDF e remete a uma URI (Uniform Resource Identifiers) para mais elementos opcionais de ancoragem. • Propriedades ou predicados (properties ou predicates): Definem atributos ou relações que descrevem o recurso. • Afirmações (statements): Definem valor a uma propriedade de um determinado recurso. Os recursos não precisam ser necessariamente objetos, expressões RDF também podem ser um recurso RDF, como uma recursividade. Além disso, a notação RDF não presume nenhuma ordem na estrutura documento que contém as expressões RDF que representam uma ontologia (GÓMEZ-PÉREZ; FERNÁNDEZ-LÓPEZ; CORCHO, 2003). Como extensão ao RDF, a W3C publicou em 2004 a especificação final do RDF Vocabulary Description Language: RDF Schema, ou RDFS. Essa extensão adiciona 16 novas 23 primitivas que trazem uma maior carga semântica a representação utilizando esse esquema. Essas primitivas permitem, por exemplo, que sejam definidos relacionamentos entre propriedades e recursos, e limitar entre quais recursos é uma determinada relação, algo que não é possível com o RDF. Veja na tabela abaixo a estrutura das primitivas disponíveis na RDFS: Tabela 3 - Primitivas da RDFS Propriedade Domínio Alcance rdf:type rdfs:Resource rdfs:Class rdf:subject rdf:Statement rdfs:Resource rdf:predicate rdf:Statement rdf:Property rdf:object rdf:Statement rdfs:Resource rdf:value rdfs:Resource rdfs:Resource rdf:first rdf:List rdfs:Resource rdf:rest rdf:List rdf:List rdfs:subClassOf rdfs:Class rdfs:Class rdfs:subPropertyOf rdf:Property rdf:Property rdfs:comment rdfs:Resource rdfs:Literal rdfs:label rdfs:Resource rdfs:Literal rdfs:seeAlso rdfs:Resource rdfs:Resource rdfs:isDefinedBy rdfs:Resource rdfs:Resource rdfs:member rdfs:Resource rdfs:Resource rdfs:domain rdf:Property rdfs:Class rdfs:range rdf:Property rdfs:Class Fonte: W3C Para melhorar a capacidade de inferência utilizando raciocínio sobre o conhecimento representado pelas ontologias com RDFS, foi criado o OIL (Ontology Inference Layer) adicionando mais primitivas ao modelo do RDFS e evitando o mecanismo de reificação (transformar um conceito abstrato em algo concreto, uma coisa). O OIL foi construído na arquitetura de camadas e usa lógica descritiva para criar uma semântica mais clara para os primitivos modelados. Cada camada construída sobre a outra, adiciona uma nova funcionalidade e mais complexidade a camada anterior (GÓMEZ-PÉREZ; FERNÁNDEZ- LÓPEZ; CORCHO, 2003). Assim como o OIL, o DAML+OIL foi criado como uma extensão ao RDFS, porém essa linguagem não é dividida em diferentes camadas, ela provê extensões de lógica descritiva 24 diretamente ao RDFS, sendo uma linguagem estendida da família da SHIQ que prove tipos de dados e nominais. Mais recentemente, em 2003, o grupo de trabalho Web Ontology (WebOnto) da W3C criou o OWL, uma linguagem que deriva da DAML+OIL e é construída tendo como base a RDFS. Assim como a OIL, a OWL é dividida em camadas: OWL Lite que estende RDFS e reúne as funcionalidades mais comuns da OWL, e é indicada para usuários que desejam criar apenas taxonomias e constantes simples; OWL DL que inclui o vocabulário completo da OWL; e a OWL Full, que oferece mais flexibilidade na representação do que a OWL DL (GÓMEZ- PÉREZ; FERNÁNDEZ-LÓPEZ; CORCHO, 2003). A seguir um exemplo de como utilizar OWL para definir a classe Travel, que possui um único valor para o atributo flightNumber, cujo o tipo é integer, e utiliza um outro recurso para definir o atributo transportMeans: Figura 2 - Exemplo de definição de classe usando OWL Fonte: (GÓMEZ-PÉREZ; FERNÁNDEZ-LÓPEZ; CORCHO, 2003) A seguir, será discutido como a representação do conhecimento é tratada em diferentes áreas, dando foco principalmente para IA e CI. 3.2 Representação do conhecimento na Inteligência Artificial A IA é um dos campos mais novos na ciência e engenharia, tendo início logo após o final da Segunda Guerra Mundial, e teve o seu nome cunhado em 1956. A IA compreende uma grande variedade de subcampos, desde os mais genéricos como aprendizado e percepção, até os mais específicos como jogar xadrez, resolver teoremas matemáticos, carros autônomos ou 25 diagnóstico de doenças. IA é relevante a qualquer tarefa intelectual, sendo um campo verdadeiramente universal (RUSSELL; NORVIG, 2010). Segundo Russell e Norvig (2010) historicamente existem 4 abordagens que tem sido seguida por diferentes pessoas com diversos métodos, que podem ser brevemente descritas da seguinte forma: • Ações Humanizadas (abordagem do Teste de Turing): Abordagem onde o computador possui capacidades que são relacionadas a ações relacionadas a pessoas, como por exemplo processamento de linguagem natural, representação do conhecimento, raciocínio automatizado, aprendizado de máquina, visão computacional e robótica. • Pensamento Humanizado (abordagem de modelo cognitivo): Para ser possível determinar que um computador pensa como um humano, é preciso primeiro conhecer como o pensamento humano em si funciona. Para isso há 3 maneiras: (i) introspeção no pensamento humano; (ii) experimentos psicológicos; (iii) análise de imagens do cérebro. Uma forma clássica de fazer uma equivalência nessas áreas, seria analisar se as entradas e saídas de um programa são correspondentes a entradas e saídas de pessoas, estabelecendo que há então um bom modelo humano / computador e vice-versa, enquanto autores modernos separam esses dois 2 modelos. • Pensamento Racional (abordagem das leis do pensamento): Abordagem inspirada pelo filósofo grego Aristóteles, que foi um dos primeiros a tentar codificar o “pensamento correto” como um processo irrefutável de raciocínio. Seus silogismos forneceram estruturas de argumentação que sempre levam a resultados corretos quando partem de premissas corretas. Essas “leis dos pensamentos” seriam supostamente a forma de operar do pensamento humano, e seus estudos levaram ao desenvolvimento do campo chamado hoje de lógica. Programas de computador usando essa abordagem seriam, em teoria, capazes de resolver qualquer problema em notação lógica. Porém essa abordagem tem 2 obstáculos: (i) não é fácil transformar conhecimento informal para a forma de notação lógica, principalmente quando o conhecimento não conta com 100% de certeza; (ii) há uma grande diferença entre resolver um problema teórico e um problema na prática. • Ações Racionais (abordagem dos agentes racionais): Agente racional é um agente que atua para obter a melhor saída, ou quando há incerteza, para obter a melhor saída esperada. Dessa maneira, a abordagem de ação racional consiste no comportamento 26 onde o agente vai realizar ações como operar autonomamente, perceber o seu ambiente, existir durante uma quantidade de tempo maior possível / necessária, se adaptar as mudanças e criar e perseguir seus objetivos. Essa abordagem tem relação com o pensamento racional e as leis do pensamento, mas tem por necessidade um caráter mais generalista. A Figura 3 a seguir ilustra essas abordagens com algumas definições de IA de alguns autores de cada abordagem. Figura 3 - Algumas definições de IA organizada em 4 categorias Fonte: (RUSSELL; NORVIG, 2010) Além das 4 abordagens da IA, Russel e Norvig (2010) apresentam uma cronologia do desenvolvimento da IA (Erro! Fonte de referência não encontrada.) e dentre elas, uma revela c omo a representação do conhecimento viria se tornar uma disciplina chave no desenvolvimento Pensando Humanamente "O novo e excitante esforço para fazer os computadores pensarem... máquinas com mente, em todo o sentido literal." (Haugeland, 1985) "(A automação de) atividades que estão associadas ao pensamento humano, como tomada de decisões, soluções de problema, aprendizado ..." (Bellman, 1978) Pensando Racionalmente "O estudo das faculdades mentais através do uso de modelos computacionais." (Charniak; McDermott, 1985) "O estudo da computação que possibita a percepção, o raciocíonio e ação." (Winston, 1992) Agindo Humanamente "A arte de criar máquinas que realizam tarefas que requerem inteligência quando executadas por pessoas." (Rich; Knight, 1991) "O estudo de como fazer computadores serem melhores em coisas, que no momento, os humanos são melhores." (Rich; Knight, 1991) Agindo Racionalmente "Inteligência Computacional é o estudo da criação de agentes inteligentes." (Poole et al., 1998) "IA se preocupa com o comportamento inteligente em artefatos." (Nilsson, 1998) 27 do campo da IA, nomeada pelos autores como era dos “Sistemas baseado em conhecimento: A chave para o poder?”, que ocorreu entre os anos de 1969 e 1979. Essa fase surge em contraposição as tentativas anteriores de solução de problemas, que se baseavam em métodos generalistas de busca da melhor solução através de mecanismos lógicos usando passos elementares para achar a solução final. Essas abordagens foram chamadas de “métodos fracos” pois apesar de serem generalistas, eles não eram capazes de escalar ou resolver problemas mais complexos. Tabela 4 - Periodos históricos da IA segundo Russel e Norvig (2010) Nome Período Gestação da IA 1943 – 1955 Entusiasmo inicial, grandes expectativas 1952 – 1969 Uma dose de realidade 1966 – 1973 Sistemas baseados em conhecimento: Chave para o poder? 1969 – 1979 IA se torna uma indústria 1980 – Presente O retorno das redes neurais 1986 – Presente IA adota a metodologia científica 1987 – Presente A emersão dos agentes inteligentes 1995 – Presente Disponibilidade de bases de dados muito grandes 2001– Presente Fonte: (RUSSEL; NORVIG, 2010) A alternativa a esses métodos fracos era a utilização de modelos mais poderosos e baseados em conhecimento específico de domínio, que permitiam assim grandes passos de raciocínio que poderiam tratar mais facilmente casos típicos em uma área mais restrita do conhecimento. A importância do conhecimento sob o domínio se mostra importante também na área de processamento de linguagem natural, onde o conhecimento do domínio se torna efetivo para, por exemplo, resolução de ambiguidade e compreensão de referências a pronomes, já que é projetado especificamente para esse fim (RUSSELL; NORVIG, 2010). Com um crescimento dos programas computacionais para resolver problemas do mundo real com a esse tipo de abordagem, aumentou também a demanda por linguagens para a criação desses sistemas, como o Prolog, PLANNER e outros, além da necessidade de esquemas de representação do conhecimento, como por exemplo a adoção de métodos estruturados que faziam a combinação de fatos sobre um determinado objeto, tipos de eventos relacionados e propriedades em grandes taxonomias hierárquicas, análogas a taxonomias da área de biologia (RUSSELL; NORVIG, 2010). 28 No campo da IA, a representação do conhecimento é uma das principais preocupações, e que apesar das diferentes definições de IA, algo sobre o que quase todas as abordagens concordam é que programas de IA envolvem o processamento de informação simbólica, ou seja, que os programas manipulam símbolos que de alguma forma representam pedaços de informação sobre o mundo com o propósito que executar uma tarefa que normalmente requer inteligência. E justamente pela importância dessa representação pelos símbolos sobre o mundo, a busca por formalismos que possam ser usados com essa finalidade é essencial para qualquer trabalho na IA (REICHGELT, 1990). Segundo Sowa (1999) a representação do conhecimento se desenvolveu como um ramo da IA, mas passou a estar presente em diversos sistemas avançados que requerem inteligência humana para executar uma tarefa, tornando-se assim um assunto multidisciplinar, que aplica teorias e técnicas de diferentes campos como lógica, ontologias e computação. A lógica fornece a estrutura formal e regras para inferência; ontologias definem o tipo de coisas que existem no domínio da aplicação; e a computação suporta a aplicação que distingue a representação do conhecimento da filosofia pura. Sowa (1999) explica o relacionamento entre essas disciplinas: Sem a lógica, a representação do conhecimento é vaga e sem critério para terminar se uma afirmação é redundante ou contraditória. Sem ontologia, os termos e símbolos são mal definidos, confusos e prejudiciais. E sem modelos computacionais, a lógica e a ontologia não podem ser implementadas em programas de computador. Representação do conhecimento é a aplicação da lógica e ontologia na tarefa de construção de modelos computacionais para algum domínio. A visão de Sowa (1999) é complementar a hipótese da representação do conhecimento, apresentada por Brian Smith (1982) citado por Reichgelt (1990), que diz que qualquer processo inteligente possui ingredientes estruturais que observadores externos naturalmente utilizam para representar o conhecimento que aquele processo exibe. Além disso, esses ingredientes desempenham um papel essencial e causal em criar o comportamento que aquele conhecimento manifesta. Em outras palavras, se assume que qualquer sistema – seja humano ou um computador – que manifesta um comportamento inteligente, contém uma subestrutura chamada base de conhecimento, sendo essa base de conhecimento diretamente relacionada a codificação do conhecimento que o sistema tem disponível. A base de conhecimento é manipulada então por uma outra subestrutura, em geral chamada de motor de inferência, que processa os símbolos da base de conhecimento para gerar um comportamento inteligente (REICHGELT, 1990). 29 Segundo Reichgelt (1990), a filosofia utiliza o termo conhecimento no sentido de “crença verdadeira justificada”, mas que isso não se aplica exatamente na IA no contexto da representação do conhecimento, já que as linguagens de representação do conhecimento não se ocupam de afirmar que uma peça de conhecimento representado é verdadeiro ou justificado. Assim como, o fato de algum pedaço de informação estar representado usando linguagens de representação do conhecimento não torna essa informação verdadeira e nem a justifica. O autor inclusive argumenta que possivelmente seria melhor utilizar o termo linguagem de representação da informação ao invés de linguagem de representação do conhecimento. Quanto ao formalismo na representação do conhecimento na IA, Reichgelt (1990) faz uma distinção em 4 níveis para discussão: 1. Implementação: As linguagens de representação do conhecimento são destinadas a utilização na representação da informação em um computador, e portanto, é essencial que seja possível construir um programa de computador subjacente à linguagem de representação do conhecimento. Sob um ponto de vista de notação, esse nível se preocupa com as estruturas de dados utilizadas na representação do conhecimento, e sob o ponto de vista de inferência, a preocupação está na descoberta e implementação de algoritmos que cheguem as inferências desejadas. 2. Lógico: Nesse nível, a respeito das notações, a principal preocupação é com as propriedades lógicas da linguagem de representação do conhecimento, onde duas questões devem ser levadas em conta: (i) qual o nível de formalismo permitido pela linguagem em questão; (ii) qual o poder de expressão da linguagem. E em relação à inferência, a preocupação é em relação as propriedades lógicas da linguagem. 3. Epistemológico: Para esse nível, as principais preocupações são a respeito dos tipos de primitivas estruturais necessárias para a representação do conhecimento, e quais são as estratégias de inferências que devem estar disponíveis. 4. Conceitual: Enquanto o nível epistemológico se preocupa sobre quais os tipos de primitivas estruturais necessárias, no nível conceitual a preocupação é sobre quais são as primitivas em si que devem ser incluídas na representação. Além dos diferentes níveis de formalismo na representação do conhecimento, Reichgelt (1990) se baseia nas análises feitas por outros dois autores para estabelecer dois diferentes tipos 30 de conhecimento. De acordo com o autor, essa distinção se dá pelo fato de que um determinado tipo de conhecimento é mais facilmente representado do que o outro, e que isso pode ser levado em conta no momento da escolha da linguagem de representação a ser utilizada. O primeiro tipo é o conhecimento de domínio, que contém informações sobre um domínio particular e que é usado por programas que precisam manipular informações de um domínio específico. Esse tipo, por sua vez, pode ser dividido em outros dois subtipos: (i) conhecimento estruturado, que se preocupa com os tipos das entidades que são relevantes para o domínio, pois em alguns casos um certo domínio possui uma estrutura muito particular a ser representada e a informação deve ser explicitamente descrita. Um exemplo de conhecimento estruturado seria o domínio de medicina interna, com os seus tipos específicos de entidades como pacientes, doenças, órgãos, drogas e etc.; (ii) o segundo tipo é o conhecimento relacional, onde o foco principal é a respeito das relações entre as entidades e fatos do domínio. Um exemplo da aplicação do conhecimento relacional seria a avaliação de que se um paciente está amarelo, ele pode ter doença do fígado, evidenciando assim o relacionamento entre as entidades e fatos acerca do conhecimento do domínio. À parte do conhecimento de domínio, um sistema especialista pode possuir conhecimento de como utilizar o conhecimento de domínio para resolver um problema particular no domínio. Esse conhecimento de resolução de problemas é chamado por Reichgelt (1990) de conhecimento estratégico. Basicamente, a distinção entre os tipos de conhecimento apresentados está no nível de abstração, onde em geral o conhecimento de domínio está fortemente ligado ao conhecimento estrutural que o sistema ou agente possui. A representação do conhecimento em bases do conhecimento, anteriormente citada, é o componente central dos agentes baseados em conhecimento. Esses agentes utilizam o conhecimento representado através das linguagens de representação do conhecimento para derivar o conhecimento implícito ali contido, e com isso inferir conclusões que levem o agente a resolver um determinado problema ou chegar a uma determinada conclusão. A base de conhecimento em seu estado inicial pode ser chamada de conhecimento prévio, e a cada passo de raciocínio realizado pelo agente, a base de conhecimento vai sendo atualizada com a nova visão de mundo que o agente possui, melhorando assim a sua capacidade de responder a diferentes questionamentos e situações (RUSSELL; NORVIG, 2010). De forma geral em IA, uma base de conhecimento é um grupo de sentenças, onde cada sentença está na linguagem de representação do conhecimento escolhida, que reflete uma certa porção do mundo. Essa sentença pode ser chamada de axioma quando ela é formada sem derivar 31 de nenhuma outra sentença previamente existente. Uma dessas linguagens é a lógica, que se baseia em uma sintaxe que garante a formação correta das sentenças, e definem semântica para as sentenças que são expressadas. A semântica define a verdade a respeito de cada mundo possível representado (RUSSELL; NORVIG, 2010). Essa é uma visão abrangente de lógica, mas existem diversas variações e sintaxes diferentes como a lógica Escolástica, matemática, booleana, de Frege, algébrica, proposicional, etc. (SOWA, 1999). A utilização de diferentes modelos de lógica é algo já antigo na IA, e há alguns argumentos a favor e contra a sua utilização. Reichgelt (1990) cita a semântica e a expressividade como dois fatores a favor da utilização de lógica. Através da semântica, é possível saber exatamente o que uma sentença representa. Também permite que se saiba se o processo de inferência chegou a uma conclusão livre de ruídos. Já com a expressividade, se apresentam dois fatores relevantes, (i) primeiramente permitir que a lógica expresse conhecimento incompleto; (ii) e a existência de diferentes lógicas que se pode utilizar, conforme citado anteriormente. Ademais, o autor também cita conhecidos problemas com a lógica e possíveis soluções a serem adotadas. O primeiro problema levantado por Reichgelt (1990) é a ineficiência da lógica para resolução de problemas, pois ao passar do tempo os programas passam a ficar lentos de forma que se torna pouco útil à sua utilização. Isso acontece principalmente por controles mal implementados e bases de dados que não fornecem afirmações suficientes para um raciocínio mais completo. Outro problema levantado é que alguns problemas em lógica acabam não tendo uma solução definitiva, ou simplesmente não são solucionáveis, o chamado problema de indecidibilidade. Problema esse que pode ser resolvido, por exemplo, tornando a linguagem menos expressiva e a simplificando, tornando assim o raciocínio mais direto. Em seguida, vem o problema do conhecimento procedural, que por se tratar a lógica de um conhecimento declarativo, pode implicar na capacidade de resolver problemas mais complicados (REICHGELT, 1990). Com certeza há uma outros problemas que podem ser identificados no momento da representação do conhecimento através da lógica, ou mesmo no momento da inferência pela derivação dos axiomas e afirmações contidas na lógica para um determinado problema. Porém, apesar de descrever suficientemente bem fatos e afirmações sobre um domínio, a semântica da lógica não é totalmente completa. 32 Na lógica, a utilização do símbolo  denota a existência de algo no contexto da expressão, mas a lógica em si não possui vocabulário para descrever essa “coisa” que existe, e nesse ponto as ontologias preenchem essa lacuna por se tratarem do estudo da existência, de todos os tipos de coisa que compõe o mundo. Duas fontes para as categorias ontológicas são a observação e o raciocínio. A observação fornece o conhecimento do mundo físico, e o raciocínio faz uso da observação gerando uma estrutura de abstrações chamada metafísica (SOWA, 1999). Para Sowa (1999), a escolha das categorias ontológicas na representação do conhecimento é o primeiro passo no projeto de um banco de dados ou de um sistema orientado à objetos. A escolha dessas categorias vai determinar tudo que pode ser representado na aplicação em software, ou em toda uma família de aplicações. Qualquer incompletude, distorção ou restrição na estrutura das categorias, invevitavelmente irá limitar a generalidade de qualquer programa ou banco de dados que utilize essas categorias. A importância das categorias na representação do conhecimento pelas ontologias é reforçada por Russel e Norvig (2010), ao afirmarem que a organização dos objetos em categorias é vital para a representação do conhecimento, e que apesar da interação com o mundo real se dar através de objetos individuais, muito do raciocínio se dá no nível das categorias. As categorias também são importantes para se fazer previsões sobre objetos após eles serem classificados, como por exemplo inferências podem ser realizadas de acordo com a presença de certos objetos com determinadas características em cada categoria, e usando essas inferências, fazer previsões e afirmações sobre os objetos. Através dos trabalhos de Reichgelt (1990), Gruber (1993), Guarino e Giaretta (1995) e Sowa (1999) – além de diversos trabalhos na CC que usam como base os autores listados - é possível concluir que sistemas mais complexos, ou os que necessitam de uma representação mais semântica do conhecimento sobre o domínio, a ontologia é uma importante ferramenta a ser considerada. Grimm, Hitzler e Abecker (2007) levantam alguns exemplos de como aplicações computacionais podem se beneficiar de modelos conceituais de domínios formalizados em ontologias: • Integração da informação: Integrar fontes heterogêneas de informação através da definição de um esquema, onde a ontologia pode ser o mediador entre os esquemas, permitindo que informações de diferentes bases de dados sejam interpretadas e passadas em ambos os sentidos. 33 • Recuperação da informação: Através do uso de ontologias é possível aumentar a precisão dos resultados levando em consideração informações semânticas contidas em pesquisas e documentos, elevando palavras-chaves a conceitos e relações ontológicas. • Gestão de conteúdo melhorada ontologicamente: Em diversas áreas da computação, os dados de fato processados são marcados com metadados por diversas razões, e ontologias fornecem um vocabulário específico do domínio para a realização dessas marcações. Além disso, a formalidade da representação das ontologias permite a automação desse processo e a sua integração a ontologia do domínio, facilitando a interpretação pela máquina. • Gestão do conhecimento e portais comunitários: Em algumas companhias, associações ou grupos, o conhecimento individual é visto como um recurso estratégico e deve ser compartilhado e sistematicamente mantido, o que é chamado de gestão do conhecimento. As ontologias podem auxiliar essa gestão unificando os esforços de gestão através de um modelo conceitual compartilhado, conectando sistemas técnicos de navegação, armazenagem, recuperação e troca de conhecimento comunitário. • Sistemas especialistas: Para diversos domínios, como medicina ou direito, é desejável simular um especialista no domínio que possa responder a perguntas sofisticadas, e nos sistemas especialistas isso pode ser atingido pela incorporação de uma ontologia de domínio desenvolvida para formalizar conhecimento de um especialista do determinado domínio. Essas perguntas podem então ser respondidas pelo agente inteligente através de raciocínio sobre o conhecimento representado. Os exemplos apresentados por Grimm, Hitzler e Abecker (2007) vem para complementar a abordagem sobre a importância da representação do conhecimento na CC e como os campos e áreas correlatas, como IA, SI e ES que utilizam as ontologias como uma importante ferramenta de suporte, principalmente quanto a estrutura de dados. A seguir, será explorada a representação do conhecimento com ontologias na CI e como isso é utilizado por outras ferramentas já existentes na área. 34 3.3 Representação do conhecimento na Ciência da Informação Vickery (1986), citando Samuel Johson, traz que o conhecimento é de dois tipos, um assunto que sabemos por conta própria ou que sabemos onde encontrar informação sobre, e Vickery afirma que a documentação é particularmente preocupada com o segundo tipo de conhecimento, e que todo conhecimento é simbólico. E que, portanto, a representação do conhecimento é um assunto que tem ocupado o mundo da documentação desde o princípio. Ainda sobre a simbologia e representação, ao falar sobre “Informação como Coisa”, Buckland (1991) lança mão de uma abordagem pragmática, onde busca identificar os principais agrupamentos na utilização do termo informação, e mesmo sendo essa uma abordagem completa e que não irá satisfazer a quem deseja obter uma exata definição para o termo, o autor lista a partir disso, os três principais usos do termo informação: (1) Informação como processo: Quando alguém é informado, o que essa pessoa sabe é modificado. Nesse sentido, “informação” é “o ato de se informar; comunicação do conhecimento ou “notícia” sobre um fato ou acontecimento; ação de contar ou o fato de ser dito sobre algo.” (Oxford English Dictionary, 1989, vol. 7, p. 944). (2) Informação como conhecimento: “Informação” é utilizado para denotar aquilo que é percebido no “processo informacional”: o “conhecimento comunicado se preocupa com um fato em particular, assunto ou acontecimento; daquilo que se é informado ou dito; inteligência, notícias” (Oxford English Dictionary, 1989, vol. 7, p. 944). A noção de que informação é aquela que reduz incertezas pode ser visto como um caso especial de “Informação como conhecimento”. (3) Informação como coisa: O termo “informação” também costuma ser atribuído a objetos, como dados e documentos, que são referenciados como “informação” porque eles são considerados informativos, por “ter a qualidade de transmitir conhecimento ou comunicar informações; instrutivo.” (Oxford English Dictionary, 1989, vol. 7, p. 946). Uma característica chave da informação como conhecimento é ela ser intangível, já que conhecimento, crenças e opiniões são pessoais, subjetivas e conceituais. Então, para que seja possível a comunicação da informação como conhecimento, isso precisa ser expressado, descrito ou representado de alguma maneira em um meio físico como um sinal, texto ou outro 35 elemento da comunicação. E então, qualquer expressão, descrição ou representação pode ser a “informação como coisa” (BUCKLAND, 1991). Como é possível notar pelos textos de Vickery e Buckland, há uma clara ligação entre os termos informação e conhecimento, mas que ao mesmo tempo causam discussão acerca de qual seja o mais correto no âmbito da CI, ou em qual situações cada um se aplica. No trabalho “Organização da Informação ou Organização do Conhecimento?”, Brascher e Café (2008) tratam dessa discussão, onde apresentam diversas visões de diferentes autores na busca de delimitar a utilização dos termos organização da informação, organização do conhecimento, representação da informação e representação do conhecimento no domínio da CI. Para a compreensão dos termos informação e conhecimento, Brascher e Café (2008) estabelecem que é preciso “a) relacionar seus conceitos às funções que damos a eles nos contextos em que se inserem; b) diferenciá-los de conceitos próximos a eles incluídos no sistema referencial”. Citando Fernandez-Molina, Brascher e Café (2008) afirmam ser possível encontrar contribuições que estabelecem distinções mais claras entre os termos: dados, informação e conhecimento: os dados são informação potencial, que somente são percebidos por um receptor se forem convertidos em informação e esta passa a converter-se em conhecimento no momento em que produz uma modificação na estrutura do conhecimento do receptor (FERNANDEZ- MOLINA, 1994, p.328) Seguindo a linha de raciocínio que atribui ao conhecimento a condição de informação processada, seja por qualquer meio, as autoras trazem ainda a visão de Burke que compara informação e conhecimento aos ingredientes de uma refeição, sendo a informação algo cru e o conhecimento algo que foi cosido. E complementam com a visão de Fogl, de que a informação compreende três elementos: (i) conhecimento (conteúdo da informação); (ii) linguagem (um instrumento de expressão de itens da informação); e (iii) suporte (objetos materiais ou energia). Fogl também diz não haver uma conexão direta entre o objeto e informação, uma vez que a fonte da informação é o conhecimento humano e a consciência humana, mas não o próprio objeto e que a informação deve ser analisada sobre três aspectos: semântico, pragmático e quanto a fixação do conhecimento e dos juízos de valor e o material de suporte utilizado. Então, Brascher e Café (2008) fazem uma síntese das características que consideram as mais importantes acerca dos conceitos de informação e conhecimento, que são: 1) Conhecimento é o resultado da cognição (processo de reflexão das leis e das propriedades de objetos e fenômenos da realidade objetiva na consciência humana); 36 2) Conhecimento é o conteúdo ideal da consciência humana; 3) Informação é uma forma material da existência do conhecimento; 4) Informação é um item definitivo do conhecimento expresso por meio da linguagem natural ou outros sistemas de signos percebidos pelos órgãos e sentidos; 5) Informação existe e exerce sua função social por meio de um suporte físico; 6) Informação existe objetivamente fora da consciência individual e independente dela, desde o momento de sua origem. Tomando como base a diferenciação entre informação e conhecimento exposta por Brascher e Café (2008), é importante também passar pela discussão sobre a representação da informação e do conhecimento, que também podem ser entendidas de formas diferentes. As autoras discordam do pensamento de Hjorland e Anderson de que a organização do conhecimento é a descrição de documentos, seus conteúdos, características e objetivos, e a organização dessas descrições afim de tornar esses documentos e suas partes acessíveis a pessoas que os procuram ou procuram por mensagens neles contidas, e que a organização compreende todo o tipo de método de indexação, resumo, catalogação, classificação, gestão de arquivos, bibliografia e a criação de bases de dados bibliográficas e textuais para recuperação da informação. Para Brascher e Café (2008) isso se trata de organização da informação, que na visão das autoras são dois processos distintos de organização, sendo o de organização da informação algo que se aplica às ocorrências individuais de objetos informacionais, inclusive a organização desses objetos para arranjá-los sistematicamente em coleções, como em bibliotecas, museus, arquivos, tanto tradicionais quando digitais. Enquanto a organização do conhecimento se aplica a unidades do pensamento (conceitos), visando a construção de modelos de mundo que se constituem em abstrações da realidade. Sendo assim, os dois processos de representação produzem resultados diferentes, conforme propõem Bascher e Café (2008): Esses dois processos produzem, consequentemente, dois tipos distintos de representação: a representação da informação, compreendida como o conjunto de atributos que representa determinado objeto informacional e que é obtido pelos processos de descrição física e de conteúdo, e a representação do conhecimento, que se constitui numa estrutura conceitual que representa modelos de mundo, os quais, segundo Le Moigne (apud CAMPOS,2004, p.23), permitem descrever e fornecer explicações sobre os fenômenos que observamos. 37 A organização do conhecimento é definida pelas autoras então como “o processo de modelagem do conhecimento que visa a construção de representações do conhecimento”. O processo se baseia na análise do conceito e suas características para um posterior estabelecimento da posição que o conceito deve ocupar em um determinado domínio, bem como a relação com os demais conceitos presentes no sistema, e reunir o que se conhece em uma estrutura sistematicamente organizada (BRASCHER; CAFÉ, 2008). Isso leva então, segundo Brascher e Café (2008), a representação do conhecimento, que é feita através de diferentes tipos de sistemas de organização do conhecimento (SOC), sistemas conceituais que representam determinado domínio através da sistematização dos conceitos e das relações semânticas entre si. Em 1998 o Networked Knowledge Organization Systems Working Group propôs a criação do termo knowledge organization systems (KOS) para englobar sistemas de classificação, cabeçalhos de assunto, arquivos de autoridade, redes semânticas e ontologias. Hodge (2000), sugere uma taxonomia para os tipos de SOC, ampliando a abrangência inicialmente proposta para contemplar também dicionários, glossários, taxonomias e tesauros. Brascher e Café (2008) sumarizam os objetivos dos SOC, propostos por Soergel: prover uma mapa semântico para domínios individuais e para os relacionamentos entre domínios, fornecendo orientação e servindo como um instrumento de referência; melhorar a comunicação e o ensino; prover uma base conceitual para a boa execução da pesquisa e implementação; prover classificação para a ação, isto é, o uso prático dos SOC em diferentes atividades profissionais, tais como a classificação de doenças para diagnósticos médicos e de mercadorias para o comércio; apoiar a recuperação da informação; prover uma base conceitual para sistemas baseados em conhecimento e para a definição de elementos de dados e hierarquias de objetos na engeharia de software, servir como um dicionário mono, bi ou multilíngue para uso pelo homem ou por sistemas automáticos de processamento da linguagem natural. No contexto apresentado, considerando a descrição de recursos informacionais, os SOC cumprem o papel de padronizar a representação da informação no que se refere a identificação do assunto. E segundo Vickery (2008), no contexto da recuperação da informação, os SOC são “instrumentos complementares que ajudam o usuário a encontrar seu caminho no texto”. As conclusões e delimitações apresentadas por Brascher e Café (2008) são de certa forma compatíveis e complementares ao estudo de Alvarenga (2003), que falava sobre a representação do conhecimento acontecer em três momentos distintos: na produção de registros de conhecimento, na organização dos sistemas documentais e no acesso às informações pelos 38 usuários. Além da separação em representação primária e secundária, onde a primária parte da ideia de que, representar significa o ato de colocar algo no lugar de, e então “classifica-se em nível primário a representação feita pelos autores no momento da expressão dos resultados de seus pensamentos, estes derivados de observações metódicas da natureza e dos fatos sociais, utilizando-se das linguagens disponíveis no contexto da produção e comunicação de conhecimentos”. Os registros advindos dessa representação passam então integrar acervos de arquivos, bibliotecas, serviços ou centros de documentação/informação, passando por uma nova representação (representação secundária), para que possam então ser incluídos em sistemas documentais referenciais. Ambas as representações são processos cognitivos, já que a percepção, classificação e criação de conhecimento sobre os seres são prerrogativas da racionalidade humana, onde é possível identificar processos cognitivos básicos como levantamento das características percebidas, comparação entre estas e as já identificadas nos seres já conhecidos, caracterizando-se essa ocorrência como processos classificatórios /cognitivos (ALVARENGA, 2003). Segundo Alvarenga (2003), uma das grandes dificuldades que vem sendo ressaltadas na tentativa de classificação dos seres, coisas e textos se trata do fato de que esse processo se baseia na constatação de que “as coisas e os conhecimentos que lhe são correspondentes não se reduzem ao que deles pode ser visto explicitamente”. Alvarenga (2003) trata então da preocupação que se deve ter ao se trabalhar com a classificação: não é suficiente que se capte superfícies de emergência, essências, características, ou que se considere nos documentos apenas as unidades lexicais (palavras) deles constantes. Torna-se necessário que se aprofunde no conhecimento das relações entre as similitudes e diferenças entre conhecimentos e objetos integrantes de uma coleção. O processo compreende ainda uma atitude hermenêutica ou interpretativa, igualmente indispensável à análise e à classificação de um universo de coisas. O ato de interpretar é inerente a qualquer abordagem aos conhecimentos, qualquer que seja o grau de suposta clareza com que esses tenham sido produzidos. Farias e Pinho (2016) destacam então as ontologias como ferramenta na organização e representação do conhecimento, salientando que essas trazem em sua semântica o estudo das coisas, objetos e seres do mundo, abordando suas relações e restrições em um domínio específico. Permitindo então que um determinado contingente informacional venha a ser representado, através de especificação formalmente descrita, viabilizando que essas informações possam ser processadas e decifradas por máquinas, de forma que o domínio que 39 se deseja abordar possa ser organizado e representado, tendo em vista os diferentes modelos, tipos de relações, sendo um modelo mental de uma dada realidade. Diante do exposto anteriormente, é possível identificar as ontologias não somente como uma estrutura acessória a representação do conhecimento, mas como uma ferramenta semântica no processo informacional como um todo. Ramalho (2006) identifica o potencial das ontologias ao defini-las como: um artefato tecnológico que descreve um modelo conceitual de um determinado domínio em uma linguagem lógica e formal, a partir da descrição dos aspectos semânticos de conteúdos informacionais, possibilitando a realização de inferências automáticas [...] Diferentes instrumentos na área da CI são comparados às ontologias, principalmente tesauros e taxonomias, muito em parte pela possibilidade do controle terminológico e da possibilidade de expressar relação entre termos e/ou conceitos. Ramalho (2010) explicita as diferenças de concepção entre tesauros e ontologias: Ao longo dos últimos anos inúmeros estudos comparativos entre ontologias e tesauros têm constatado que, apesar de possuírem características comuns, tais instrumentos caracterizam-se como diferentes modelos de representação do conhecimento. Enquanto os tesauros são desenvolvidos como ferramentas de auxílio para os usuários na busca de informações, as ontologias têm como principal objetivo descrever formalmente os recursos informacionais para possibilitar a realização de inferências automáticas. Em relação às taxonomias, a diferença é percebida na estrutura das ontologias, que são mais completas por apresentarem novos componentes estruturais que vão além de relações hierárquicas. Pode-se dizer que as ontologias permitem uma maior liberdade na representação de tipos de relacionamentos que não seriam possíveis em outros modelos de representação, podendo ser criadas a partir de diferentes técnicas de representação e organização, cabendo a aqueles que as desenvolvem fazer as escolhas de design e projeto no momento da modelagem e implementação. A seguir, serão listadas as principais metodologias e boas práticas na criação, desenvolvimento e manutenção de ontologias e também serão destacadas quais ferramentas os especialistas tem à disposição para a construção de ontologias. 40 4 Construção de Ontologias O campo da engenharia ontológica foi assunto de várias pesquisas nas últimas duas décadas. Esse campo se refere ao conjunto de atividades que se preocupam com o processo de desenvolvimento de ontologias, incluindo o ciclo de vida, princípios, métodos e metodologias para construção de ontologias, assim como as ferramentas e linguagens que suportam essas atividades (CORCHO; FERNÁNDEZ-LÓPEZ; GÓMEZ-PÉREZ, 2006). Neste capítulo será então abordado o processo de construção, engenharia e aprendizado de ontologia, visando estabelecer o que são exatamente esses termos, quais são as diferentes abordagens, metodologias e ferramentas empregadas em casa fase do processo de criação de novas ontologias. 4.1 Metodologias de construção de ontologias Desde os anos 1990, várias abordagens foram publicadas sobre o processo de construção de ontologias. No ano de 1990, Lenat e Guha publicaram os passos que seguiram para criar ontologias no projeto Cyc, que se tratava da construção de uma base de conhecimento composta por uma enorme quantidade de conhecimento de senso-comum (FERNÁNDEZ-LÓPEZ; GÓMEZ-PÉREZ, 2002). O método utilizado para construir as bases de conhecimento consistia em 3 fases: A primeira era a c