• Nenhum resultado encontrado

W3C. W3C Semantic Web Activity. Disponível em: < Acesso em junho de 2008.

N/A
N/A
Protected

Academic year: 2021

Share "W3C. W3C Semantic Web Activity. Disponível em: < Acesso em junho de 2008."

Copied!
90
0
0

Texto

(1)

RUSSI, D. T. A.; SILVA, F. A. O Uso da Gramática de Grafos em Especificações Formais.

Disponível em < http://fipp.unoeste.br/~chico/artigo_gramatica_de_grafos.pdf>. Acesso em junho de 2008.

W3C. W3C Semantic Web Activity. Disponível em: <http://www.w3.org/2001/sw/>. Acesso

(2)

SOUZA, M. I. F., VENDRUSCULO, L. G., MELO, G. C. Metadados para a descrição de

recursos de informação eletrônica: utilização do padrão Dublin Core. Ciência da Informação, v. 29, n. 1, p. 93-102, abr. 2000.

SOWA, J. F. Knowledge Representation: Logical, Philosophical, and Computational

Foundation. Brooks Cole Publishing Co., Pacific Grove, CA, 2000. Actual publication date, 16 August 1999.

SOWA, J. F. Building, sharing and merging ontologies. Tutorial. [S. 1. : s. n.], 1999.

Disponível em <http://users.bestweb.net/~sowa/ontology/ontoshar.htm>. Acesso em setembro de 2006.

SKUCE, D. IKARUS. CODE4: a unified system for managing conceptual knowledge.

International Journal of Human-Computer Studies, n. 42, p. 413-451, 1995.

SWARTOUT, B. et al. Toward distributed use of large-scale ontologies. In:

PROCEEDINGS OF AAAI97 SPRING SYMPOSIUM SERIES WORKSHOP ON ONTOLOGICAL ENGINEERING, 1997. [S. l.] : AAAI Press, 1997. p. 138-148.

SWOOGLE. Swoogle: A Semantic Web Search. Disponível em < http://swoogle.umbc.edu/>.

Acesso em junho de 2007.

WOODS, W.A. What's in a link : Foundations for semantic networks. In D.G. Bobrow and

A. Collins, editors, Representation and Understanding: Studies in Cognitive Science. Academic Press, New York, 1975.

OWL. Web Ontology Language Overview. Disponível em

<http://www.w3.org/TR/owl-features>. Acesso em novembro de 2006.

PROTEGE. Protégé Project. Disponível em: <http://protege.stanford.edu/>. Acesso em

junho de 2007a.

PROTEGE. Protégé Contributions Library. Disponível em <http://protege.stanford.edu/

plugins.html/>. Acesso em junho de 2007b.

PROTEGE. Protégé PROMPT Plug-In. Disponível em <http://protege.stanford.edu/plugins/

(3)

NOY, F. N.; GUINNESS, D. L. Ontology development 101: a guide to create your first

ontology. Stanford University, USA, 2002. Disponível em

<http://ksl.stanford.edu/people/dlm/papers/ontology-tutorial-noy-mcguinness.doc>. Acesso em setembro de 2006.

NOY, N.; MUSEN, M. SMART. Automated Support for Ontology Merging and Alignment.

Banff Workshop on Knowledge Acquisition, Modeling, and Management, Banff, Alberta, Canada, 1999.

NOY, N.; MUSEN, M. The PROMPT Suite: Interactive Tools For Ontology Merging And

Mapping. International Journal of Human-Computer Studies, 2003.

PALAZZO, L.A. M. Introdução à Programação Prolog. EDUCAT, Pelotas, 1997. PALAZZO, L.A. M. Projeto e Construção de Ontologias. Disponível em

<http://ia.ucpel.tche.br/~lpalazzo/Aulas/Ontolog/PCO3.ppt>. Acesso em abril de 2007.

PALAZZO, L.; PONTES, A.; ULYSSEA, M.; PORTO, P. Comunidades Virtuais de

Aprendizado Adaptativo. In: Conferência Nacional em Ciência, Tecnologia e Inovação. Ministério da Ciência e Tecnologia, Florianópolis, 2001.

PINTO, S.; GOMEZ-PEREZ, A.; MARTINS, J. Some Issues on Ontology Integration.

Workshop on Ontologies and Problem Solving Methods: Lessons Learned and Future Trends, 1999.

RICH, E. Artificial Intelligence. McGraw-Hill Book Company, 1983.

RICHARDSON, R.; SMEATON, A. F.; MURPHY, J. Using WordNet as Knowledge Base

for Measuring Semantic Similarity between Words. Technical Report CA-1294, Dublin City University, School of Computer Applications, 1994. Disponível em: [http://www.computing.dcu.ie/research/papers/1994/1294.ps], acesso em maio de 2008.

SCHEMAWEB. SchemaWeb directory. Disponível em http://www.schemaweb.info/. Acesso

em junho 2007.

SCIME, A. Web Mining: Aplications and Techniques. State University of New York College

(4)

LIBRELOTTO, G.R., RAMALHO, J.C., HENRIQUES, P.R. TM-Builder: Um Construtor

de Ontologias Baseado em Topic Maps, XXIX Conferencia Latinoamericana de Informática, 2003.

MAEDCHE, A. S. Discovering Conceptual Relations from Text. Techical Report 400,

University of Karlsruhe, Institute AIFB, 76128 Karlsruhe, Germany. Fevereiro de 2000. Disponível em <http://www.aifb.unikarlsruhe.de/Publikationen/showPublikationen? id_db=50> Acesso em Maio de 2008.

MAEDCHE, A.; VOLZ, R. The text-to-onto ontology extraction and maintenance

environment to appear. In: PROCEEDINGS OF THE ICDM WORKSHOP ON INTEGRATIN DATA MINING AND KNOWLEDGE MANAGEMENT, 2001, San Jose, California. [S. l. : .n.], 2001.

MAHALINGAM, K.; HUHNS, M. N. An ontology tool for query formulation in an

agent-based context. In: IFCIS INTERNATIONAL CONFERENCE ON COOPERATIVE INFORMATION SYSTEMS, 2., 1997, Kiawah Island, SC. [S. l. : s. n.], 1997. p. 170.

MATTHEW, H.; KNUBLAUCH, H.; ALAN, R.;STEVENS, R.; WROE, C.. A Practical

Guide To Building OWL Ontologies Using The Protégé-OWL Plugin and CO-ODE Tools. Manchester University, England, 2004.

MCGUINNESS, D. L.; FIKES, R.; RICE, J., and WILDER, S.. The Chimaera Ontology

Environment." Proceedings of the Seventeenth National Conference on Artificial Intelligence (AAAI 2000). Austin, Texas. July 30 - August 3, 2000.

MILLER, G. A. WordNet: a lexical database for English. Communications of the ACM, v.

38, n. 11, p. 39-41, nov. 1995.

MINSKY, M.A. A Framework for Representing Knowledge. McGraw-Hill, NewYork, 1975 MIZOGUCHI, R. Tutorial on ontological engineering. The Institute of Scientific and

Industrial Research, Osaka University.

NOY, N. F. Presentation: Ontologies and tools. 1999. Disponível em:

<http://protege.stanford.edu/publications/ OntologiesAndTools/OntologiesAndTools. ppt>. Acesso em junho de 2006.

(5)

DOMINGUE, J.; MOTTA, E. A; CORCHO, O. Knowledge modeling in web onto and

OCML: a user guide. [ S. l. : s. n.], 1999. Disponível em: <http://kmi.open.ac.uk/projects/ webonto/user _guide. 2.4.pdf>. Acesso em junho de 2006.

DC. Dublin Core Metadada Initiative. “Dublin Core metadada element set, version 1.1:

reference description”. Disponível em <http://dublincore.org/documents/dces/> Acesso em abril de 2008.

FARQUHAR, A.; FIKES, R.; RICE, J. The ontolingua server: USA: a tool for collaborative

ontology construction. Duluth : Academic Press, 1997. p. 707-727.

FELICÍSSIMO, C. H. Interoperabilidade Semântica na Web: Uma Estratégia para o

Alinhamento Taxonômico de Ontologias. Dissertação de Mestrado. Rio de Janeiro: PUC, Departamento de Informática, 2004.

FOAF. Friend Of A Fried – Vocabulary Specification. Disponível em

<http://xmlns.com/foaf/0.1/#term_interest>. Acesso em abril de 2008.

GÓMEZ-PÉREZ, A.; FERNANDEZ-LÓPEZ, M.; CORCHO, O. Ontological

engineering. London, Springer, 2004.

GRUBER, T. What is an ontology? [S. l. : s. n.], 1996. Disponível em

<http://www-ksl.stanford.edu/ kst/ what-is-an-ontology.html>. Acesso em setembro de. 2006.

GRUBER, T. Ontolíngua: a mechanism to suport portable ontologies. Stanford: Knowledge

System Laboratory, Stanford University, 2003. Techincal Report.

GUARINO, N. (1998). Formal Ontology and Information Systems. Disponível em

<http://www.loa-cnr.it/Papers/FOIS98.pdf>. Acesso em setembro de 2006.

HARTMANN, J.; PALMA, R.; SURE, Y. OMV – Ontology Metadata Vocabulary.

Disponível em <http://omv.ontoware.org>. Acesso em novembro de 2006.

HORROCKS, I.; SATTLER, U.; TOBIES, S. Practical reasoning for expressive

(6)

7. Bibliografia

ALMEIDA, M.B.; BAX. M.P. Uma visão geral sobre ontologias: pesquisa sobre definições,

tipos, aplicações, métodos de avaliação e de construção. Ci. Inf., Brasília, v. 32, n. 3, p. 7-20, set./dez. 2003. Disponível em < http://www.ibict.br/cienciadainformacao>. Acesso em abril de 2006.

ANTONIOU, G.; VAN HARMELEN, F.. A Semantic Web Prime Massachusetts Institute of

Technology, 2004.

ARPÍREZ, J. C. et al. Web ODE: a scalable workbench for ontological engineering. In:

INTERNATIONAL CONFERENCE ON KNOWLEDGE CAPTURE. PROCEEDINGS. Victoria, British Columbia, Canada, 2001.

BAADER, F. , CALVANESE, D., D. L. MCGUINNESS, D.L., NARDI, D., PATEL-SCHNEIDER, P.F apud : The Description Logic Handbook: Theory, Implementation,

Applications. Cambridge University Press, Cambridge, UK, 2003.

BENJAMINS, R. Knowledge Engineering and Ontologies. Disponível em

<http://www.swi.psy.uva.nl/usr/ richard/home.html>. Acesso em maio de 2006.

BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web., Scientific

American. May, 2001.

BORST, W. N. Construction of engineering ontologies. 1997. Tese (Doutorado). Disponível

em: <http://www.ub.utwente.nl/webdocs/inf/1/t0000004.pdf>. Acesso em maio de 2006.

BRACHMAN, R.J., FIKES, R.E. and LEVESQUE, H.J.. Krypton: A functional approach

to knowledge representation. IEEE Computer (Special Issue on Knowledge Representation), 16(10):67-73, October 1983.

CORAZZON, R. What is ontology? [S. l. : s. n.], 2002. Disponível em

<http://www.formalontology.it/ section_4.htm>. Acesso em julho de 2006.

(7)

WESAAC 2007. HINZ, T. V. ; PALAZZO, L. A. M. . Colaboração em Sistemas Multiagentes Modelados por Ontologias. In: WESAAC 2007: Workshop-Escola de Sistemas de Agentes para Ambientes Colaborativos, 2007, Pelotas. Workshop-Escola de Sistemas de Agentes para Ambientes Colaborativos, 2007.

II Oficina de Iniciação Científica. HINZ, T. V. ; LADISLAU, J. ; YAMIN, A. C.; PALAZZO, L. A. M. . O Emprego de Ontologias Dinâmicas para Modelar a Mobilidade de Agentes em um Ambiente Pervasivo. In: II Oficina de Iniciação Científica - Fatec Senac, 2006, Pelotas. Anais da II Oficina de Iniciação Científica - Fatec Senac. Porto Alegre : Senac, 2006.

II Oficina de Iniciação Científica. HINZ, T. V. ; PEREIRA, D. R. ; PALAZZO, L. A. M. ; SILVA, R. E. S. . Utilização do Protegé 3.1.1 na Modelagem de uma Ontologia Acadêmica. In: II Oficina de Iniciação Científica - Fatec Senac, 2006, Pelotas. Anais da II Oficina de Iniciação Científica - Fatec Senac. Porto Alegre : Senac, 2006.

(8)

de termos que possuem interligação com termos de outras ontologias, contribuindo para a geração de novos conhecimentos, o qual também foi explorado e testado com êxito na seção 5.6.

6.1 Trabalhos futuros

Na perspectiva de dar continuidade à este trabalho, surgem inúmeras possibilidades, sendo algumas delas listadas abaixo:

• A aplicação destes operadores relacionais à outros mecanismos de interoperabilidade estudados, assim como estudar a possibilidade de criar novos que atendam à outras necessidades.

• Estudar a relevância dos relacionamentos, pois neste trabalho não foi explorado o tipo de relacionamento, mas somente se existia uma relação entre dois ou mais conceitos.

• A questão da conciliação de vocabulários também é algo que pode ser explorado a partir deste trabalho, pois a compatibilidade de termos é uma questão muito questionada atualmente.

• A aplicação dos algoritmos desenvolvidos a serem implementados em uma ferramenta de desenvolvimento, que opere em tempo real e em um ambiente pervasivo, tornando-se, assim, uma possível referência para os que pretendem utilizá-la em um caso prático.

6.2 Publicações realizadas

Ao longo de seu desenvolvimento, este trabalho teve seus resultados divulgados através de publicações. As principais estão relacionadas a seguir:

WESAAC 2008. HINZ, T. V. ; PALAZZO, L. A. M. ; SILVA, R. E. S. . Suporte Ambiental à Colaboração em Sistemas Multiagentes. In: II Workshop - Escola de Sistemas de Agentes para Ambientes Colaborativos, 2008, Santa Cruz do Sul. II Workshop - Escola de Sistemas de Agentes para Ambientes Colaborativos, 2008.

(9)

6. Conclusões

As ontologias estão sendo amplamente utilizadas vista a necessidade de reuso e compartilhamento de informações existente atualmente, mas para que isso seja possível é necessário que elas consigam se comunicar de forma eficiente, utilizando mecanismos que permitam esta interação.

Com o objetivo de entender o problema de interoperabilidade existente atualmente foram estudados, inicialmente, assuntos referentes às ontologias, como definição, vantagens, composição, modelagem e representação. A seguir foram abordados os mecanismos existentes atualmente, assim como elaborados exemplos de aplicação destes.

Foram estudadas, também, as diferentes formas de representação de ontologias como matrizes de adjacências, gramáticas de grafos, assim como a representação contextual através das triplas OWL. Nesta etapa o parser Thea foi uma ferramenta importante, utilizada na conversão das ontologias que estavam em OWL para o formato de triplas.

Os padrões Dublin Core e FOAF, por serem padrões definidos de fato pela W3C, foram abordados a fim de tratarem o problema da conciliação de vocabulários.

O desenvolvimento dos algoritmos empregando os operadores relacionais se constituiu na etapa principal deste trabalho, sendo que para testá-los foram desenvolvidos dois exemplos práticos: um meramente ilustrativo, de dimensão menor, com o intuito de demonstrar a viabilidade de aplicação dos algoritmos e outro, devido a sua complexidade e dimensão elevada, apenas abstrato.

A partir dos testes realizados, foi possível concluir que a aplicação dos operadores relacionais no desenvolvimento dos algoritmos é algo viável, atendendo as expectativas deste trabalho, conforme demonstrados nas seções 5.2 e 5.3 desta dissertação.

Uma vez que o foco deste trabalho foi na aplicação dos mecanismos de integração e combinação de ontologias, o processo de união de duas ou mais ontologias mostrou-se adequado, pois possibilitou que diversas ontologias fossem unidas de uma maneira concisa. A partir da ontologia global gerada, foi possível aplicar os operadores de intersecção e diferença, os quais também atenderam à propósitos específicos e funcionaram com êxito.

Além disso, visto a vasta gama de possibilidades que podem surgir com o desenvolvimento deste trabalho, no decorrer deste, verificou-se, a possibilidade de exploração

(10)

A partir destes dados, é possível utilizar o Parser Thea para conversão das ontologias em triplas OWL e empregar o uso dos algoritmos desenvolvidos neste trabalho.

Cabe ressaltar que, além destes termos, tanto no ambiente como no agente, poderiam ser explorados outros, no entanto, para que a proposta não se tornasse muito extensa e fosse viável demonstrar neste trabalho, optou-se por um modelo abstrato de representação, servindo este, então de modelo e podendo ser implementado em outros ambientes, como shoppings, hospitais, museus, restaurantes, enfim ambientes pervasivos que permitam que haja interação de agentes através de um ambiente ou até mesmo a interação agente-agente.

5.4 Considerações do capítulo

Neste capítulo foram demonstrados os aspectos relativos à estratégia utilizada neste trabalho para tratar a questão da interoperabilidade entre ontologias, sendo um dos aspectos destacados o desenvolvimento dos algoritmos, empregando os operadores relacionais, o qual contempla o objetivo geral proposto neste trabalho. A fim de relacionar a teoria com a prática, foram demonstrados dois exemplos com intuito de validar a proposta.

O capítulo 6 contém as conclusões, trabalhos futuros e as publicações realizadas ao longo deste trabalho.

(11)

Tópicos de interesse Ontologias, Banco de Dados, SMA

Publicações http://lattes.cnpq.br/

Projetos_recentes Estudo e Desenvolvimento de Algoritmos para Interoperabilidade entre Ontologias

Projetos_anteriores Criação de uma Ontologia de Ontologias

A figura 5.14 visualiza a modelagem da ontologia do agente (pesquisador), que também foi feita no ambiente Protege, sendo, neste caso, utilizados os elementos do FOAF, que estão identificados na tabela 5.3.

Figura 5.14: Ontologia do agente, utilizando termos do FOAF, modelada no Protege

O quadro 5.27 mostra um trecho do código OWL gerado na ontologia do agente (pesquisador), onde foram utilizados os termos do FOAF.

Quadro 5.27: Trecho de código OWL da ontologia do agente, utilizando termos FOAF

<owl:Ontology rdf:about=""/> <owl:Class rdf:ID="Publicações"> <rdfs:subClassOf> <owl:Class rdf:ID="Termos_FOAF"/> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Nome"> <rdfs:subClassOf> <owl:Class rdf:about="#Termos_FOAF"/> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Sobrenome"> <rdfs:subClassOf> <owl:Class rdf:about="#Termos_FOAF"/>

(12)

O quadro 5.26 apresenta a geração de um trecho de código OWL da ontologia do ambiente, onde foram utilizados os 15 elementos do Dublin Core.

Quadro 5.26: Código OWL gerado da ontologia do ambiente, utilizando termos do DC.

5.3.2 Ontologia do Agente

A fim de relacionar estes dados com os dados de um pesquisador (agente) foi elaborado um exemplo, utilizando os termos do FOAF, conforme a tabela 5.3.

Tabela 5.3: Exemplo utilizando os termos do FOAF

Geekcode Não identificado

Nome Verlani

Sobrenome Hinz

Nome_completo Verlani Hinz

Histórico Mestranda em Ciência da Computação, Professora da Faculdade de Tecnologia Senac.

Imagem

Características Não identificado.

Homepage_comercial http://www.senacrs.com.br Info_homepage_comercial http://www.senacrs.com.br/info Homepage_escolar http://www.ucpel.tche.br

Conhecimento Luiz Antônio Moro Palazzo

<Termos_Dublin_Core rdf:ID="Termos_DC">

<dc:creator rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Universidade de Santa Cruz do Sul</dc:creator>

<dc:format rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PDF, utilizando os estilos sugeridos pela SBC, ....</dc:format>

<dc:coverage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Regional</dc:coverage> <dc:type rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Workshop</dc:type> <dc:relation rdf:datatype="http://www.w3.org/2001/XMLSchema#string">

http://unisc.br/universidade/eventos/wesaac2008</dc:relation>

<dc:subject rdf:datatype="http://www.w3.org/2001/XMLSchema#string">agentes para ambientes colaborativos</dc:subject>

<dc:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Evento regional, abrangendo os estados RS, SC, PR, SP, ....</dc:description>

<dc:source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Santa Cruz do Sul, RS, Brasil</dc:source>

(13)

11. Origem Santa Cruz do Sul, RS, Brasil 12. Linguagem Português

13. Relação http://www.unisc.br/universidade/eventos/wesaac2008 14. Abrangência Regional

15. Direitos Não identificada

Além dos termos citados na tabela 5.1, foram identificados mais sete termos que fazem parte do domínio do congresso, que estão identificados na tabela 5.2:

Tabela 5.2: Termos complementares do Congresso Termos Congresso Descrição

1. Público-alvo: Estudantes, professores e pesquisadores 2. Programação: Quarta-feira 28/maio –

08h00 - 09h00: Credenciamento

3. Inscrições: VALORES: Professores/Pesquisadores - R$ 30,00

4. Comissão_organizadora: Coordenação Geral do Evento Rejane Frozza (UNISC)

Andréa Aparecida Konzen da Silva (UNISC) 5. Data_submissão: 05/04/2008

6. Data_aceitação: 05/05/2008 7. Data_versão_final: 12/05/208

A figura 5.13, mostra a modelagem da ontologia do ambiente feita no ambiente do Protegé, utilizando os elementos do Dublin Core.

(14)

Quadro 5.25: Exemplo do algoritmo relacionado-com utilizando o ambiente SWI-Prolog.

5.3.1 Ontologia do Ambiente

Tomando por base essas informações foi possível identificar as correspondências existentes entre os elementos do Dublin Core e os dados de um congresso (ambiente), apresentados de na tabela 5.1.

Tabela 5.1: Correspondência entre os termos do Dublin Core e os dados de um evento. Elementos Dublin

Core Dados de um congresso

1. Título II Workshop – Escola de Sistemas de agentes para ambientes colaborativos 2. Criador Universidade de Santa Cruz do Sul

3. Assunto arquitetura de sistemas de agentes para ambientes colaborativos agentes conversacionais e de interface para ambientes colaborativos 4. Descrição

O WESAAC é um evento regional, abrangendo os estados o RS, SC, PR e SP, a reunir praticamente todos os grupos de pesquisa atuantes nas áreas de Sistemas de Agentes e Ambientes Colaborativos. ...

5. Publicador Não identificada 6. Contribuidor SBC

7. Data 2008/05/28 8. Tipo Workshop 9. Formato

Os artigos devem ser submetidos em formato PDF, utilizando os estilos sugeridos pela SBC (estilo Latex ou Word, disponíveis em

http://www.sbc.org.br, na seção de "Eventos"). Os artigos podem ser escritos em Português ou em Inglês, e devem ter, no máximo, 10 páginas.

(15)

No exemplo da figura 5.12, o nodo X possui relação com o nodo Y, que possui relação com o nodo Z, desta forma podemos dizer que as informações constantes no nodo X podem ser interessantes para o nodo Z, por possuírem uma interligação indireta.

Da mesma forma, podemos dizer que a ligação existente entre o nodo Z e W, pode ser interessante, pois ambos pertencem a ontologias diferentes e através da sua relação podem contribuir para gerar novas informações.

A partir desses exemplos, foi desenvolvido um algoritmo de relacionamento, chamado de relacionado-com, utilizando um operador (op4), exemplificado no quadro 5.24.

Quadro 5.24: Algoritmo do relacionado-com utilizando o operador relacional op4

Neste algoritmo são destacados os conjuntos de relacionamentos (triplas) das ontologias transformados em conjuntos de duplas através da remoção do 3º componente (o

relacionamento). O quadro 5.25, visualiza exemplos de aplicação do algoritmo relacionado-com, no

ambiente SWI-Prolog, onde a,b,c,d,e são todos triplas (C1,C2,R).

op4([ ],[ ]):-!. . op4([(A,B,_)|X],[(A,B)|Y]):- not(member((A,B,_),X)),!, op4(X,Y). op4([_|X],Y):- op4(X,Y).

(16)

de interesse de uma pessoa ou evento. Essa identificação dos termos sinônimos é possível através da conciliação de vocabulários, demonstrados na figura 5.11.

3. Assunto Assunto deverá ser expresso por palavras chave, frases, ou códigos de classificação que descrevem o conteúdo do recurso.

13. Tópicos de

interesse Representa um interesse de uma pessoa, cujo tópico que caracteriza interesse geral.

Figura 5.11: Exemplo de conciliação de vocabulários utilizados na intersecção

Além disso, outras possibilidades poderão surgir através desta intersecção, seria o caso da diferença, ou seja, dados que estão na ontologia do ambiente e não estão na ontologia do agente, mas possuem uma relação entre si.

A figura 5.12 demonstra um exemplo onde os nodos A1, A2 e A3 não estão na área de intersecção, mas estão conectados com os nodos P1, P2 e A4 das ontologias do agente e do ambiente que possuem conexão com estes.

Desta forma observa-se a relação que existe entre os nodos das ontologias, pois nodos que estejam ligados através de outros nodos podem contribuir para gerar novos conhecimentos, mesmo que não sejam comuns às duas ontologias.

Figura 5.12: Exemplo de diferença com relacionamento

DC

FOAF

Área de Intersecção Conexões entre nodos

(17)

Figura 5.10: Exemplo de aplicação dos mecanismos de interoperabilidade.

Enquanto o pesquisador está apresentando seu trabalho no congresso, os dados que constam em sua ontologia são unidos com os dados da ontologia do ambiente, tornando-as disponíveis para eventuais consultas que possam ocorrem durante a apresentação.

Quando o pesquisador termina de apresentar seu trabalho ele deixa um registro da sua apresentação na ontologia do ambiente, sendo que este registro também será acrescentado na sua ontologia.

Além disso, podem haver informações que constam na ontologia do congresso e que também estejam na ontologia do pesquisador, que podem ser interessantes para ambos.

Por exemplo:

• O congresso possui em sua ontologia a classe Assunto, onde serão cadastrados todos os assuntos abordados no evento como SMA, Ontologias, Comunidades Virtuais, etc.

• O pesquisador possui em sua ontologia a classe Tópicos de Interesse, como Ontologias, Banco de Dados, etc.

Unindo-se estas duas ontologias, teremos, então, uma intersecção entre esses termos, que mesmo tendo rótulos diferentes, o conteúdo possui a mesma finalidade, mostrar as áreas

Entrada

Saída

CONGRESSO

(18)

Quadro 5.23: Exemplo2 do algoritmo de diferença utilizando o ambiente SWI-Prolog.

No exemplo do quadro 5.23, verifica-se que o resultado contido em T3 é o conteúdo da ontologia O1, pois foi feita a diferença entre O1 e O2, ou seja, o que pertence a O1 e não pertence a O2.

Estes são algoritmos genéricos que podem ser aplicados em vários casos, sendo que a entrada sempre será uma lista de ontologias (n ontologias) e que todas serão operadas com um mesmo operador, no caso o "op".

Vale ressaltar também que estes algoritmos, apesar de não possuírem uma precisão de 100%, sua simplicidade se justifica por possuírem a finalidade de poderem ser operados em tempo real, gerando uma economia de especificação algorítmica.

Desta forma, adéquam-se, inclusive a ontologias com estruturas grandes e que possuem maior complexidade semântica, onde o tempo é fator determinando, pois não é possível esperar a execução de um algoritmo enquanto os acontecimentos ocorrem.

5.3 Exemplo de interoperabilidade dinâmica entre ontologias

Para validação da proposta apresentada foi utilizado o exemplo de um congresso, contendo em sua ontologia dados de um evento e um pesquisador que deseja apresentar um determinado trabalho neste congresso.

No exemplo, ilustrado na figura 5.10, pode-se verificar a aplicação dos mecanismos de interoperabilidade de integração e combinação, sendo aplicados automaticamente, sem intervenção humana, pois os mesmos ocorrem conforme a ação efetuada pelo agente (pesquisador).

(19)

Neste algoritmo, a entrada é uma Lista de ontologias (triplas) e a saída uma Lista de pares de conceitos. O resultado é obtido pela <<união>>, sendo feita a remoção do

componente "relacionamento" de todas as triplas das ontologias em Lista_de_Ontologias e aplicada a diferença entre elas, descrito no quadro 5.21.

Quadro 5.21: Predicado auxiliar da diferença

O quadro 5.22, visualiza exemplos de aplicação do algoritmo de intersecção, no ambiente SWI-Prolog, onde a,b,c,d são todos triplas (C1,C2,R).

Quadro 5.22: Exemplo1 do algoritmo de diferença utilizando o ambiente SWI-Prolog.

Como um segundo exemplo foram utilizadas as ontologias O1 e O2, descritas no exemplo 5.1.1, demonstrado no quadro 5.23.

difer([],_,[]):-!.

difer([X|C1],C2,[X|C3]):-

not(member(X,C2)),!,difer(C1,C2,C3). difer([_|C1],C2,C3):-

(20)

Quadro 5.18: Exemplo1 do algoritmo de intersecção utilizando o ambiente SWI-Prolog.

O quadro 5.19, visualiza um exemplo utilizando as ontologias O1 e O2, descritas no exemplo 5.1.1.

Quadro 5.19: Exemplo2 do algoritmo de intersecção utilizando o ambiente SWI-Prolog.

Analisando-se o exemplo do quadro 5.19, verifica-se que é gerada uma lista vazia em Ont, por não haverem conceitos e relacionamentos sinônimos nas duas ontologias.

Diferença :

Para o algoritmo de diferença foi utilizado o operador relacional op3, conforme o quadro 5.20.

Quadro 5.20: Algoritmo de diferença utilizando o operador op3

op3([C1,T1],[C2,T2],[C3,T3]):- união(C1,C2,C3),

(21)

Quadro 5.16: Algoritmo de intersecção utilizando o operador relacional op2

Neste algoritmo, inicialmente a entrada pode ser uma lista vazia ou uma lista de ontologias, a seguir A,B,C representam os conceitos da primeira ontologia, representadas em listas.

É feita, então, a intersecção das duas ontologias, utilizando-se o predicado auxiliar do algoritmo do quadro 5.17 e gerada a ontologia resultante em Ont.

Quadro 5.17: Predicado auxiliar da intersecção

O quadro 5.18 visualiza exemplos de aplicação do algoritmo de intersecção, no ambiente SWI-Prolog, onde a,b,c,d,e são todos triplas (C1,C2,R).

op2([ ],[ ]). op2([Ont], [Ont]). op2([A,B|C], Ont):- intersec(A,B,X), op2([X|C], Ont1),

intersec(Ont1, Ont1, Ont).

intersec([],_,[]):-!.

intersec([X|C1],C2,[X|C3]):-

member(X,C2),!,intersec(C1,C2,C3). intersec([_|C1],C2,C3):-

(22)

O quadro 5.14, visualiza um exemplo de aplicação do algoritmo de união, no ambiente SWI-Prolog, onde a,b,c,d,e são todos triplas (C1,C2,R).

Quadro 5.14: Exemplo1 do algoritmo de união utilizando o ambiente SWI-Prolog

No quadro 5.15, foi montado um exemplo utilizando as ontologias O1 e O2, descritas no exemplo 5.1.1.

Quadro 5.15: Exemplo2 do algoritmo de união utilizando o ambiente SWI-Prolog

Intersecção:

Para o algoritmo de intersecção foi utilizado o operador relacional op2, conforme mostra o quadro 5.16.

(23)

OWL e a saída uma ontologia resultante, também em OWL, conforme demonstra o quadro 5.11.

Quadro 5.11: Resultado da aplicação do operador relacional

Neste caso, todos os operandos são ontologias e a ontologia resultante poderá ser a união, intersecção ou diferença de todas as ontologias presentes na lista de ontologias de entrada.

União

Para o algoritmo de união foi utilizado o operador relacional op1, conforme mostra o quadro 5.12.

Quadro 5.12: Algoritmo de união utilizando o operador op1

Sendo que, inicialmente, a entrada pode ser uma lista vazia ou uma lista de ontologias, a seguir A,B,C representam os conceitos da primeira ontologia, representadas em listas.

É feita, então, a união das duas ontologias, utilizando-se o predicado auxiliar do quadro 5.13 e gerada a ontologia resultante em Ont.

Quadro 5.13: Predicado auxiliar da união op1([ ],[ ]). op1([Ont], [Ont]). op1([A,B|C], Ont):- união(A,B,X), op1([X|C], Ont1), união([ ], Ont1, Ont).

op(Lista_de_Ontologias, Ontologia_Resultante). união([],C,C):-!. união([X|C1],C2,C3):- member(X,C2),!,união(C1,C2,C3). união([X|C1],C2,[X|C3]):- união(C1,C2,C3).

(24)

União:

A união consiste em juntar os conjuntos de conceitos e relacionamentos das duas ontologias O1 e 02, conforme visualizado no quadro 5.8.

Quadro 5.8: Exemplo de união

Intersecção:

Neste caso, a ontologia resultante é concebida da união dos conjuntos de conceitos e da intersecção dos conjuntos de relacionamentos (triplas), conforme o quadro 5.9.

Quadro 5.9: Exemplo de intersecção

Diferença:

A diferença é o resultado da união dos conjuntos de conceitos e da diferença dos conjuntos de relacionamentos (triplas), conforme o quadro 5.10.

Quadro 5.10: Exemplo de diferença

5.2 Algoritmos

A partir da definição dos operadores relacionais, foram desenvolvidos algoritmos que permitem a interoperabilidade entre ontologias, onde a entrada é uma lista de ontologias em

op1 (O1, O2) = op1 ((C, R), (D, S)) = (C∪D, R∪S)

op2 (O1, O2) = op2 ((C, R), (D, S)) = (C∪D, R∩S)

(25)

Figura 5.8: Ontologia O2, modelada no Protege, visualizando os relacionamentos

Deste modo, também podemos afirmar que O2 é um conjunto de pares O2 = (D, DxDxS), visualizado na figura 5.9 e exemplificado a seguir:

O2=({lápis, papel}, {(lápis, papel, escreve), (lápis, papel, desenha)})

Figura 5.9: Ontologia O2, modelada no Protegé, visualizando os conceitos e relacionamentos

O quadro 5.7 visualiza o código OWL gerado a partir da ontologia O2, onde se verifica os conceitos Papel e Lápis relacionados através do atributo escreve.

Quadro 5.7: Trecho do código OWL gerado a partir da ontologia O2

Para definição dos operadores, C e D são conceitos, R e S são relacionamentos e opx foi definido como o operador relacional, sendo op1 de união, op2 de intersecção e op3 de diferença, definidos a seguir.

<owl:Ontology rdf:about=""/> <owl:Class rdf:ID="Papel"/>

<owl:Class rdf:ID="Lápis"/>

<owl:ObjectProperty rdf:ID="escreve">

<rdfs:domain> <owl:Class>

(26)

Quadro 5.6: Trecho de código OWL gerado no Parser Thea, representando as instâncias e O1

A ontologia O2, foi modelada definindo-se um conjunto de conceitos, conforme

figura 5.7 e definidos em D como:

D = {D1 = Lápis; D2= Papel}

Figura 5.7: Ontologia O2, modelada no Protege, visualizando os conceitos

E um conjunto de relacionamentos, visualizados na figura 5.8 e definidos em S como:

S = {S1= escreve; S2=desenha} % --- Individuals --- 'http://www.owl-ontologies.com/Ontology1214510832.owl# Escolar'('http://www.owl-ontologies.com/Ontology1214510832.owl#Supercort'). 'http://www.owl-ontologies.com/Ontology1214510832.owl# Impressão'('http://www.owl-ontologies.com/Ontology1214510832.owl#Ofício'). 'http://www.owl-ontologies.com/Ontology1214510832.owl# Multiuso'('http://www.owl-ontologies.com/Ontology1214510832.owl#Cabo_soft').

(27)

% --- Classes --- '__file://h:/aulas/mestrado_ucpel/downloads/thea-0.5.5/o1.owl#__Description1'(X):- ('http://www.owl-ontologies.com/Ontology1214510832.owl# Papel'(X);'http://www.owl-ontologies.com/Ontology1214510832.owl#Pedra'(X)). '__file://h:/aulas/mestrado_ucpel/downloads/thea-0.5.5/o1.owl#__Description3'(X):- ('http://www.owl-ontologies.com/Ontology1214510832.owl# Pedra'(X);'http://www.owl-ontologies.com/Ontology1214510832.owl#Tesoura'(X)). '__file://h:/aulas/mestrado_ucpel/downloads/thea-0.5.5/o1.owl#__Description4'(X):- ('http://www.owl-ontologies.com/Ontology1214510832.owl# Tesoura'(X);'http://www.owl-ontologies.com/Ontology1214510832.owl#Papel'(X)).

Quadro 5.4: Trecho de código OWL da ontologia O1, gerado no parser Thea

Neste exemplo observa-se a formação as triplas (conceito, conceito, relacionamento), no caso (Papel, Pedra, X), (Pedra, Tesoura, X), (Tesoura, Papel, X), onde X representa o relacionamento formado entre os conceitos.

Além disso, a fim de testar e gerar a ontologia no Parser Thea, foi modelada a ontologia O1, definindo-se também subclasses e instâncias associadas, demonstradas nos quadros 5.5 e 5.6.

Quadro 5.5: Trecho de código OWL gerado no Parser Thea, representando as subclasses de O1

% --- Subclasses --- 'http://www.owl-ontologies.com/Ontology1214510832.owl#Papel'(X):- 'http://www.owl-ontologies.com/Ontology1214510832.owl#Impressão'(X). 'http://www.owl-ontologies.com/Ontology1214510832.owl#Tesoura'(X):- 'http://www.owl-ontologies.com/Ontology1214510832.owl#Profissional'(X). 'http://www.owl-ontologies.com/Ontology1214510832.owl#Pedra'(X):- 'http://www.owl-ontologies.com/Ontology1214510832.owl#Natural'(X).

(28)

O1=({pedra, tesoura, papel}, {(pedra, tesoura, quebra), (tesoura, papel, corta), (papel, pedra, embrulha)})

Figura 5.6: Ontologia O1 modelada no Protegé, visualizando os conceitos e relacionamentos

O quadro 5.3 visualiza o código OWL gerado a partir da ontologia O1, onde se verifica os conceitos Pedra e Tesoura relacionados através do atributo quebra.

Quadro 5.3: Trecho de código OWL da ontologia O1, visualizando conceitos e relacionamento

Aplicando-se o Parser Thea na ontologia O1, foi gerado um código OWL, a fim de transformá-la em matriz de adjacências, para uma melhor representação visual, conforme o quadro 5.4.

<owl:ObjectProperty rdf:ID="quebra">

<rdfs:domain> <owl:Class>

<owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Pedra"/>

<owl:Class rdf:about="#Tesoura"/>

</owl:unionOf> </owl:Class> </rdfs:domain> </owl:ObjectProperty>

(29)

Figura 5.4: Ontologia O1 modelada no Protegé, visualizando os conceitos e instâncias associadas

E um conjunto de relacionamentos, visualizados na figura 5.5 e definidos em R como:

R = {R1= quebra; R2=corta; R3=embrulha}

Figura 5.5: Ontologia 01, modelada no Protegé, visualizando os (relacionamentos)

Deste modo, pode-se afirmar que O1 é um conjunto de pares O1 = (C, CxCxR), visualizado na figura 5.6 e exemplificado a seguir:

(30)

entre seus termos, perceber as similaridades entre estes, detectar tanto possíveis inconsistências quanto a falta de informação (completeza).

Preocupa-se, em particular, com a identificação de: conceitos ou propriedades com um mesmo significado, mas rotulados com nomes diferentes; conceitos ou propriedades rotulados com o mesmo nome, mas com significados diferentes; diferenças na escrita dos termos das ontologias como, por exemplo: um termo no plural e outro no singular, um no feminino e outro no masculino, e em diferentes tempos verbais; dentre outras.

Uma vez identificadas as inconsistências existentes, é preciso decidir qual ação será tomada. Não é desejado que inconsistências sejam simplesmente ignoradas, pois é preciso realizar a interoperabilidade entre ontologias com confiabilidade, mas, por outro lado, não é desejado resolver todas as inconsistências existentes, pois isto aumentaria a complexidade da solução e, conseqüentemente, seu tempo de execução.

A seguir serão detalhados os operadores de união, intersecção e diferença citados na figura 5.3.

5.1.1 Definição

A fim de um melhor detalhamento da utilização dos operadores relacionais, foi elaborado um exemplo com duas Ontologias O1 e O2, demonstradas a seguir.

Sendo a ontologia O1, dada por um conjunto de conceitos, conforme figura 5.4 e

definidos em C como:

(31)

5.1 Operadores Relacionais

No desenvolvimento dos algoritmos para interoperabilidade entre ontologias foram utilizados os operadores relacionais de união, intersecção e diferença.

A figura 5.3 ilustra um exemplo de interoperabilidade dinâmica entre ontologias, onde os mecanismos de interoperabilidade de integração e combinação, utilizando os operadores relacionais, são aplicados de maneira automática, sem intervenção humana, pois os mesmos ocorrem conforme a ação efetuada pelo agente.

Figura 5.3 Exemplo de interoperabilidade entre ontologias utilizando operadores relacionais

Um exemplo é no momento que um agente entra em uma instância do ambiente pervasivo, os dados da sua ontologia são unidos com os dados da ontologia do contexto, tornando-as disponíveis para que outro agente possa acessá-los.

A partir disso, todos os nodos que possuem informações comuns às duas ontologias, no caso informações com dados sinônimos, serão integrados em um único nodo, no exemplo da figura 4.11, o nodo X, gerando uma intersecção entre elas.

Serão analisadas, também, as informações que constam na ontologia do ambiente e não estão necessariamente na ontologia do agente, gerando uma diferença entre elas.

Nos casos listados acima, principalmente no que diz respeito a intersecção dos dados, a compatibilidade de termos é algo que deve ser tratado, pois é necessário listar as diferenças

(32)

Figura 5.2: Matriz de adjacência de mat(C,R)

Sendo que C é a lista dos conceitos envolvidos e R é uma lista de listas, onde cada lista interna é uma linha da matriz, sendo que as linhas em R correspondem à mesma ordem dos conceitos em C e O zero representa um não-relacionamento, conforme quadro 5.1.

Quadro 5.1: Rotina Prolog para transformar uma matriz em lista de triplas

O quadro 5.2 mostra o predicado auxiliar desenvolvido para transformar uma matriz de adjacências em triplas OWL.

Quadro 5.2: Predicado auxiliar para transformação em triplas

Pedra Tesoura Papel

Pedra quebra Tesoura corta Papel embrulha triplas:- mat(C,R), trip(C,R). trip([],_):-!. trip([A|B],[X|Y]):- resolve(A,X), trip(B,Y). resolve(_,[]):-!. resolve(A,[0|Y]):- resolve(A,Y). resolve(A,[X|Y]):- mat(C,R), member(L,R), enesimo(N,X,L), enesimo(N,B,C), assert(tripla(A,B,X)), write(tripla(A,B,X)), nl, resolve(A,Y). enesimo(1,X,[X|_]). enesimo(N,X,[_|Y]):- enesimo(M,X,Y), N is M + 1. mat([pedra,tesoura,papel], [[0,quebra,0],[0,0,corta],[embrulha,0,0]]).

(33)

5. Algoritmos para interoperabilidade entre Ontologias

Este capítulo tem por objetivo mostrar a estratégia utilizada neste trabalho para fazer a interoperabilidade entre ontologias, demonstrado através da figura 5.1.

Onde a entrada é uma lista de ontologias no formato OWL, sendo estas convertidas em matriz de adjacências (formato de triplas) utilizando o parser Thea. Posteriormente, é aplicado o operador relacional e gerado uma matriz de adjacências, sendo o resultado uma ontologia única em formato OWL.

Figura 5.1: Estratégia para a interoperabilidade entre ontologias

E para transformar uma matriz de adjacências em formato OWL, foi desenvolvido um predicado auxiliar, onde a matriz pode ser representada por uma relação mat(C, R), demonstrado na figura 5.2.

Primeira ontologia no formato OWL Segunda ontologia no formato OWL

Conversão de OWL para matriz através do Parser Thea

Primeira ontologia no formato OWL

convertida Segunda ontologia no formato OWLconvertida

Aplicação do operador

Primeira e segunda ontologia integradas no formato OWL Geração da Matriz de Adjacências

(34)

Quadro 4.8: Parte da Ontologia Wines2.owl gerado no Parser, representando as instâncias.

4.4 Considerações do capítulo

Finalizando o estudo de revisão bibliográfica deste trabalho, neste capítulo foram abordados assuntos relativos à interoperabilidade entre ontologias, como os mecanismos, os padrões de vocabulários Dublin Core e FOAF, assim como o parser utilizado para conversão de ontologias.

(35)

Quadro 4.7: Parte da Ontologia Wines2 gerado no Parser, representando a relação é-um entre classes e subclasses.

As instâncias associadas às classes são geradas em uma parte em separado chamada de individuals, conforme figura 4.10.

Figura 4.10: Parte da Ontologia Wines criada no ambiente Protegé, representando as instâncias. (PROTEGE, 2007a)

No quadro 4.8, o código OWL gerado a partir no parser Thea, visualizando as instâncias.

'http://www.owl-ontologies.com/unnamed.owl#Bourgogne_region'(X):-

(36)

repetições da mesma ontologia em mais de uma localização, qualidade da ontologia, entre outros.

Para a conversão das ontologias, uma das ontologias utilizada foi a Wines.owl presente no ambiente Protegé, conforme ilustra a figura 4.9 (PROTEGE, 2007a).

Figura 4.9: Parte da Ontologia Wines criada no ambiente Protege, representando as classes e subclasses e o código gerado no parser Thea. (PROTEGE, 2007a)

No código gerado todas as classes são subclasses, por todas serem derivadas de owl:thing, sendo que podemos observar que há uma relação é-um entre as classes e subclasses, onde Cotel_d_Or_region, por exemplo, é uma subclasse de Bourgogne_region, visualizadas no quadro 4.7. % --- Classes --- % --- Subclasses --- 'http://www.owl-ontologies.com/unnamed.owl#Wine_region'(X):- 'http://www.owl-ontologies.com/unnamed.owl#New_Zealand_region'(X). 'http://www.owl-ontologies.com/unnamed.owl#United_States_region'(X):- 'http://www.owl-ontologies.com/unnamed.owl#Edna_Valley_region'(X). 'http://www.owl-ontologies.com/unnamed.owl#French_region'(X):- 'http://www.owl-ontologies.com/unnamed.owl#Bourgogne_region'(X). 'http://www.owl-ontologies.com/unnamed.owl#Bourgogne_region'X):- 'http://www.owl-ontologies.com/unnamed.owl#Cotes_d_Or_region'X). 'http://www.owl-ontologies.com/unnamed.owl#Food'(X):- 'http://www.owl-ontologies.com/unnamed.owl#Fruit'(X).

(37)

4.3.2 Ambiente SWI-Prolog

O SWI-Prolog5 é uma implementação em código aberto da linguagem de programação Prolog. Seu autor principal é Jan Wielemaker. Em desenvolvimento contínuo desde 1987, SWI-Prolog possui um rico conjunto de características, bibliotecas, ferramentas e uma documentação extensiva6.

Para a conversão das ontologias, foi adicionada a biblioteca OWL_Parser e utilizado o comando go-thea do Prolog, conforme descrito no Quadro 4.6:

Quadro 4.6: Comando do Prolog utilizando o parser Thea

Onde:

Arq_entrada: É o arquivo owl de entrada. Deve ser instanciada com um owl

existente.

Arq_saída: É o arquivo de saída. Deve ser especificado, mas pode não existir, sendo

criado neste caso.

Flag: Uma entre várias opções: "thea_as", "dlp", etc., sendo a DLP (Description

Logic Programs), utilizada neste caso, por ser no formato do Prolog.

4.3.3 Exemplo

Para o estudo de caso foram escolhidas algumas ontologias pesquisadas na Internet. Foram visitados sites como: o site de ontologias publicadas do Google (Swoogle, 2008), o diretório de pesquisa do SchemaWeb (SchemaWeb, 2008), entre outros.

Mesmo assim, apesar da quantidade de ontologias disponibilizadas nas localizações visitadas, poucas ontologias puderam ser analisadas por não serem de fontes conhecidas ou por apresentarem problemas em sua construção e, conseqüentemente, não ser possível sua utilização no parser, não ser no formato OWL ou por outros fatores como: links quebrados,

5 Disponível em http://www.swi-prolog.org, último acesso em junho de 2007. 6 Extraído de http://pt.wikipedia.org/wiki/SWI-Prolog

(38)

E conforme o quadro 4.3, as restrições podem ser:

Quadro 4.3: Trecho de código OWL contendo as restrições em termos Prolog

O parser cria construções na seguinte seqüência (entre parênteses o predicado da biblioteca Prolog), conforme quadro 4.4.

Quadro 4.4: Trecho de código OWL mostrando a seqüência criada pelo parser Thea

Além dos termos do Prolog que são construídos, são definidos também os seguintes predicados dinâmicos, conforme quadro 4.5:

Quadro 4.5: Trecho de código OWL contendo predicados dinâmicos em termos Prolog

restriction(PropertyID,allValuesFrom(Description)) restriction(PropertyID,someValuesFrom(Description)) restriction(PropertyID,cardinality(C)) restriction(PropertyID,maxcardinality(C)) restriction(PropertyID,mincardinality(C)) restriction(PropertyID,value(V))

- Classes and class descriptions (owl_parse_named_classes) - Class axioms

Subclasses (owl_parse_subclasses)

DisjointWith (owl_parse_disjoint_classes)

EquivalentClasses (owl_parse_equivalent_classes) - Properties (owl_parse_property)

- Annotation Properties (owl_parse_annotationProperty) - Individual axioms (owl_parse_individual_axioms)

SameAs

DifferentFrom

- Ontology definitions (owl_parse_ontology) - Names Individuals (owl_parse_named_individuals)

- owl/4: For storing and tracking the use of individual triples).

- blanknode/3: For storing and tracking the use of blank nodes, and thus be able to detect any structure sharing).

(39)

4.3 Conversão de ontologias

Para transformar uma ontologia no formato OWL em matriz de adjacência foi utilizado o parser Thea4 (versão 0.5), que é uma biblioteca do Prolog para geração e

manipulação de conteúdo OWL.

4.3.1 Parser Thea

O Parser Thea usa a Semantic Web Library do SWI-Prolog analisando gramaticalmente a serialização de documentos OWL em triplas RDF e então constrói uma representação da ontologia em OWL.

O resultado da conversão do parser é uma representação de sintaxe abstrata de uma ontologia OWL em termos Prolog como mostrado no quadro 4.1:

Quadro 4.1: Trecho de código OWL em termos Prolog

Onde, conforme o quadro 4.4, pode ser:

Quadro 4.2: Trecho de código OWL contendo as descrições em termos Prolog

- ontology(OntologyID,AnnotationList).

- class(ClassID, Deprecated, Modality, AnnotationList, DescriptionList).

- subclassOf(Description1, Description2). - disjointSet(DescriptionList).

- equivalentSet(DescriptionList).

- property(PropertyID,Deprecated, AnnotationList,SuperPropertyList, PropertyTypeList, DomainList, RangeList).

- annotationProperty(PropertyID). - individual(IndividualID,AnnotationList, TypeList,PropertyValueList). - differentIndividuals(IndividualList). - sameIndividuals(IndividualList). ClassID Restriction intersectionOf(DescriptionList) unionOf(DescriptionList) complementOf(Description) oneOf(IndividualList)

(40)

4.2.2 FOAF (Friend Of A Friend)

O projeto do FOAF tem por objetivo descrever as pessoas, as relações entre eles e as coisas que elas criam e fazem.

Os termos do FOAF (FOAF, 2008) são agrupados em várias categorias, dentre elas: FOAF Basics, Personal Info, Online Accounts / IM, Projects and Groups, Documents and Images. O FOAF Basics se subdivide: Agent, Person, name, nick, title, homepage, mbox, mbox_sha1sum, img, depiction (depicts), surname, family_name, givenname, firstName.

A classe Person representa pessoas e é uma subclasse de Agent, sendo que todas as pessoas são consideradas agentes em FOAF.

A tabela 4.2 contém as classes que estão relacionadas a classe Person, definidas em FOAF.

Tabela 4.2: Termos do FOAF

1. Geekcode Um geekcode textual para essa pessoa, ver http://www.geekcode.com/geek.html

2. Nome O primeiro nome de uma pessoa. 3. Sobrenome Sobrenome de uma pessoa. 4. Nome_completo Nome completo de uma pessoa.

5. Histórico Um plano de arquivo pode conter qualquer coisa. Os usos típicos dele incluíram breves comentários, pensamentos ou observações sobre o que uma pessoa tinha sido feito ultimamente

6. Imagem Uma imagem que pode ser usada para representar alguma coisa como uma foto, homepage, etc.

7. Características Abordagem à personalidade taxonômica.

8. Homepage_comercial A homepage do local de trabalho de uma pessoa (página principal) 9. Info_homepage_comercial Uma homepage contendo informações do local de trabalho de uma

pessoa.

10. Homepage_escolar A página principal de uma instituição de ensino atendida por uma pessoa.

11. Conhecimento Uma pessoa conhecida desta pessoa, (indicando algum nível de reciprocidade interação entre as partes).

12. Interesses Uma página sobre tópicos de interesses de uma pessoa.

13. Tópicos de interesse Representa um interesse de uma pessoa, cujo tópico que caracteriza interesse geral.

14. Publicações O link de publicações de uma pessoa 15. Projetos_recentes O projeto atual que esta pessoa trabalha. 16. Projetos_anteriores Algum projeto que esta pessoa já trabalhou.

(41)

Description Framework), possui um conjunto de 15 elementos básicos, apresentados na tabela 1, que podem ser implementados livremente para atender as necessidades de cada usuário (DC, 2008), e, ainda é um formato padrão adotado para efetuar a interoperabilidade entre outros formatos.

A tabela 4.1, descreve os 15 elementos do Dublin Core e suas respectivas descrições.

Tabela 4.1: Elementos do Dublin Core Elementos Descrição

1. Título Título será o nome pelo qual o recurso é formalmente conhecido.

2. Criador Criador inclui uma pessoa, uma organização, ou um serviço. Tipicamente, o nome de um Creator deve ser usado para indicar uma entidade responsável pela existência do recurso.

3. Assunto Assunto deverá ser expresso por palavras chave, frases, ou códigos de classificação que descrevem o conteúdo do recurso.

4. Descrição Descrições podem incluir, sem estarem limitadas a um conteúdo do recurso: um resumo, um índice, uma referência a uma representação gráfica do conteúdo, ou uma descrição textual.

5. Publicador Editor pode ser uma pessoa, uma organização ou um serviço. Tipicamente, o nome de um Editor deve ser usado para indicar a entidade.

6. Contribuidor Contribuinte inclui uma pessoa, organização ou serviço. Tipicamente, o nome de outro Contribuinte deve ser usado para indicar a entidade.

7. Data Uma Data deve ser associada à criação ou disponibilidade do recurso. Como boa prática recomenda-se o formato AAAA-MM-DD.

8. Tipo Tipos incluem termos descrevendo categorias genéricas, funções, gêneros, ou níveis de agregação para o conteúdo. Ex: vocabulários.

9. Formato Formato deve incluir o tipo de meio do recurso, ou as suas dimensões. Este elemento deve ser usado para determinar as aplicações informáticas ou qualquer tipo de equipamento necessário para reproduzir ou operar com o recurso.

10. Identificador Identificação do recurso por meio de uma cadeia de caracteres ou por um número de acordo com um sistema de identificação formal.

11. Origem O presente recurso pode ter derivado do recurso Fonte na sua totalidade ou apenas em parte. Como boa prática recomenda-se a referência ao recurso fonte através de um identificador em conformidade com um sistema de identificação formal.

12. Linguagem A língua do conteúdo intelectual do recurso. Por exemplo, 'en' para Inglês, 'fr' Francês, ou 'en-uk' para o Inglês do Reino Unido.

13. Relação Uma referência a um recurso relacionado.

14. Abrangência Cobertura inclui tipicamente uma localização espacial (o nome de um lugar ou coordenadas geográficas), um período no tempo (a sua designação, data, ou intervalo de tempo), ou jurisdição (o nome de uma entidade administrativa). 15. Direitos Direitos sobre o recurso, ou uma referência a um serviço que fornecerá essa

(42)

No exemplo o agente colaborador A possui conhecimentos específicos de comidas em geral, enquanto o agente colaborador B é especializado em vinhos, no entanto, ambos pertencem ao ramo da alimentação, quando alinhados suas ontologias se complementarão.

Neste trabalho buscou-se a utilização de operadores relacionais na construção dos algoritmos, sendo que a operação de união é considerada a “chave” para as demais, onde a partir dela poderão ser utilizados os operadores de intersecção e diferença. Por estas razões, os mecanismos de combinação e integração de ontologias foram os escolhidos.

4.2 Conciliação de vocabulários

O estabelecimento de padrões para definição de vocabulários são importantes ao intercâmbio de informações.

Neste trabalho foram utilizados os padrões Dublin Core e o FOAF por serem considerados padrões de metadados muito utilizados atualmente, de consenso internacional, estudados pela W3C (W3C, 2008) e que incluem os aspectos de precisão, fidelidade, critérios de seleção, generalizações, consistência dos dados, definições utilizadas e metadados sobre as fontes de dados.

4.2.1 Dublin Core

O (DC, 2008) é um padrão da organização DCMI (Dublin Core Metadata Initiative) para representação de metadados que especializados em representar informações dos dados (dados sobre dados), possui um formato simples e muito útil para identificar o conteúdo dos documentos eletrônicos, tornando-os mais fáceis de serem pesquisados pelos mecanismos de buscas, a fim de recuperar as informações solicitadas.

É um padrão de metadados, composto por 15 elementos, planejado para facilitar a descrição de recursos eletrônicos. Conforme (SOUZA, VENDRUSCULO, MELO, 2000) destacam que as principais características deste padrão são a simplicidade na descrição dos recursos, o entendimento semântico universal (dos elementos), o escopo internacional e a extensibilidade (o que permite adaptações às necessidades adicionais de descrição).

O DC pode ser inserido em uma página HTML (Hypertext Markup Language) e utiliza a linguagem XML (eXtensible Markup Language). Adota a sintaxe do RDF (Resource

(43)

Figura 4.7: Exemplo de mapeamento de ontologias

O mecanismo de alinhamento de ontologias, acontece quando os domínios das ontologias são complementares3, sendo que são geradas duas ontologias separadas mas com as ligações estabelecidas entre elas. Seria o caso de um agente colaborador A com conhecimentos específicos de comidas e outro agente colaborador B com conhecimentos de bebidas, ambos pertencem ao ramo da alimentação e quando feito o alinhamento haverão propriedades que serão complementares, ou seja, será feita uma intersecção das ontologias, conforme figura 4.8.

Figura 4.8: Exemplo de alinhamento de ontologias

3Neste trabalho, entende-se que um domínio A qualquer é complementar a um domínio B qualquer, quando A

adiciona informações a B. Normalmente, domínios complementares tratam de assuntos diferentes, mas suas partes comuns tratam de um mesmo assunto.

(44)

No exemplo, a classe paciente possui a propriedade prescrição, que é definida como propriedade objeto, justamente por ser comuns as áreas de medicina e enfermagem, podendo se relacionar e formar uma única ontologia. As demais propriedades são definidas como propriedade de tipo de dados.

No mecanismo de integração de ontologias para que seja possível efetuar a troca de conhecimentos, dois agentes de domínios diferentes são integrados e formam uma única ontologia. Neste caso um agente colaborador A com conhecimentos de Medicina e outro agente colaborador B com conhecimentos de Música, por exemplo, quando interagirem irão formar uma única ontologia contendo todos os dados das duas ontologias, ou seja, será feita uma união das ontologias, demonstrado na figura 4.6.

Figura 4.6: Exemplo de integração de ontologias

Para o mecanismo de mapeamento de ontologias, devem ser mapeadas as relações, instâncias de dados, esquemas de integração e tarefas similares, tendo como resultado uma estrutura formal com expressões que ligam os termos de uma ontologia nos termos de outra ontologia. Como demonstração de exemplo poderíamos ter um agente colaborador A com conhecimentos de carro e um agente colaborador B com conhecimentos de veículos, conforme figura 4.7.

(45)

Todos estes mecanismos podem ser realizados, em uma ontologia, de forma automática, semi-automática, onde há a necessidade de intervenção humana em algumas etapas para a tomada de decisão, ou até mesmo manual.

4.1.1 A aplicação dos mecanismos

Os mecanismos de interoperabilidade citados acima podem ser aplicados em um ambiente de agentes orientado por ontologias.

Considerando dois agentes colaborativos A e B modelados através de uma ontologia A e B, que possuem suas classes, propriedades, restrições e instâncias. Cada classe possui uma definição associada, assim como os termos sinônimos, sendo os mesmos definidos em um glossário de termos do domínio em questão.

No mecanismo de combinação de ontologias para que seja possível efetuar a troca de conhecimentos, dois agentes com domínios similares1 ou de sobreposição2, interagem formando uma única ontologia. No caso, um agente colaborador A com conhecimentos de enfermagem e um agente colaborador B com conhecimentos de Medicina, cada um tem na sua ontologia os conhecimentos específicos de sua área, no momento que eles interagirem para trocarem informações será formada uma única ontologia com as informações que as suas área possuem em comum, demonstrado na figura 4.5.

Figura 4.5: Exemplo de combinação de ontologias

1 Neste trabalho, entende-se por domínios similares aqueles domínios que tratam do mesmo assunto.

2 Neste trabalho, entende-se que um domínio A qualquer é de sobreposição a um domínio B qualquer, quando A

além de possuir as informações contidas em B também possui informações adicionais sobre o mesmo assunto de B.

(46)

Alinhamento de ontologias: tem-se como resultado as duas ontologias originais

separadas, mas com as ligações estabelecidas entre elas, permitindo que as ontologias alinhadas reusem as informações uma das outras. O alinhamento normalmente é realizado quando as ontologias são de domínios complementares (NOY; MUSEN; SMART, 1999).

A figura 4.3 ilustra um exemplo de alinhamento de ontologias, onde a ontologia O1 se refere a carros, a ontologia O2 se refere a veículos e a O3 a meios de transporte.

Figura 4.3: Exemplo do mecanismo de alinhamento de ontologias.

Mapeamento de ontologias: tem-se como resultado uma estrutura formal que

contém expressões que fazem a ligação de conceitos de um modelo em conceitos de um segundo modelo. Este mapeamento pode ser usado para transferir instâncias de dados, esquemas de integração, esquemas de combinação e tarefas similares (NOY; MUSEN; SMART, 1999).

A figura 4.4, ilustra um exemplo de mapeamento de ontologias, onde os conceitos

carro de O1 e veículo de O2 são mapeados em expressões formais.

(47)

Figura 4.1: Exemplo do mecanismo de combinação de ontologias

Integração de ontologias: tem-se como resultado uma ontologia única criada pela

montagem, extensão, especialização ou adaptação de outras ontologias que tratam não necessariamente do mesmo assunto. Na integração de ontologias é possível identificar as regiões que foram criadas a partir das ontologias originais (PINTO; GOMEZ-PEREZ; MARTINS, 1999).

A figura 4.2 ilustra um exemplo de integração de ontologias, onde os conceitos carro de O1, veículo de O2 e casa de O3 são integrados, i.e., unidos, na ontologia única O.

Figura 4.2: Exemplo do mecanismo de integração de ontologias

Apesar do resultado final, tanto da combinação quanto da integração de ontologias ser uma ontologia única constituída pela união dos termos das ontologias originais, a principal diferença entre estes dois mecanismos é que no primeiro as ontologias tratam do mesmo

(48)

4. Interoperabilidade entre ontologias

Neste capítulo são apresentados assuntos relacionados à interoperabilidade entre ontologias, como os mecanismos encontrados na literatura; a conciliação de vocabulários utilizando os padrões Dublin Core e FOAF; as ferramentas e métodos de conversão empregados para converter ontologias OWL em formato de triplas e vice-versa e os operadores relacionados, assim como os algoritmos desenvolvidos neste trabalho. Ao final, é demonstrado um exemplo de interoperabilidade dinâmica entre ontologias aplicadas ao domínio de um congresso.

4.1 Mecanismos de Interoperabilidade

De forma geral, as ontologias têm como objetivo promover um entendimento comum e compartilhado sobre um domínio, que pode ser comunicado entre pessoas e sistemas de aplicação (BISHR, 1997). No entanto para que trabalhem em conjunto, trocando automaticamente as informações representadas em ontologias, são necessários mecanismos que garantam a sua interoperabilidade.

Abaixo são destacados alguns mecanismos que podem ser usados para propiciar a compatibilidade de ontologias:

Combinação de ontologias: tem-se como resultado a versão das ontologias originais

combinadas em uma ontologia única com todos seus termos juntos, sem a definição clara de suas origens. Normalmente as ontologias originais descrevem domínios similares ou de sobreposição (NOY; MUSEN; SMART, 1999).

A figura 4.1 , ilustra um exemplo de combinação de ontologias, onde os dois conceitos compatíveis, por exemplo carro da ontologia O1 e veículo da ontologia O2, poderiam ser combinados, i.e., unidos, gerando uma ontologia única O3.

(49)

Figura 3.6: Matriz de Adjacências representando conceitos e relacionamentos.

Sendo que os elementos de cada Ri são todos triplas (A, B, P), onde A, B ∈ Ci (são conceitos) e P nomeia uma lista de relacionamento(s) específico(s) entre eles, nesta ordem.

Eventualmente usa-se (A, _, P) se P é um atributo do conceito A (localizado na diagonal principal da matriz de adjacência correspondente).

3.4 Considerações do capítulo

Este capítulo objetivou demonstrar as formas de representar uma ontologia. Inicialmente foram abordadas as linguagens XML, RDF e OWL que se constituem em formas mais popularmente utilizadas. Os grafos e matrizes de adjacências foram estudados com o intuito de demonstrar a representação visual de uma ontologia, servindo também, de base para a representação contextual de uma ontologia.

No próximo capítulo serão apresentados os aspectos relacionados à interoperabilidade entre ontologias.

Referências

Documentos relacionados

Nós defendemos que as ontologias desempenham um importante papel no desenvolvimento de soluções para integração de dados e interoperabilidade de sistemas na cadeia de exploração

Resumidamente a forma de comercialização dos apartamentos FLAT e operação de locação dos apartamentos do HOTEL para uma bandeira hoteleira proposta a seguir objetiva a

As variáveis peso, estatura e circunferência da cintura apresentaram valores médios superiores aos homens em relação as mulheres, sendo o inverso observado para índice

O objectivo principal do estudo foi verificar as modificações no âmbito do controlo postural, através da migração do centro de pressão na base de suporte, face

A Lista de Fauna Ameaçada de Extinção e os Entraves para a Inclusão de Espécies – o Exemplo dos Peixes Troglóbios Brasileiros.. The List of Endangered Fauna and Impediments

O crescimento do número de Instituições de Ensino Superior (IES) e, consequente, aumento na oferta de vagas tem favorecido o desenvolvimento de estudos cujo foco está voltado para

legalidade da movimentação e negociação de bens cul- turais, a KGSG estabeleceu várias regras utilizando-se de marcos temporais para indicar a legalidade ou ilegali- dade

Este trabalho traz uma contribuição conceitual sobre a utilização do sistema de gestão de produtividade que poderá motivar futuras pesquisas sobre o tema, bem