UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO FREDDY BRASILEIRO SILVA

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO FREDDY BRASILEIRO SILVA"

Transcrição

1 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO FREDDY BRASILEIRO SILVA UMA TRANSFORMAÇÃO AUTOMÁTICA ENTRE LINGUAGENS DE REPRESENTAÇÃO DE REGRAS EM ONTOLOGIAS: DE OCL PARA OWL E SWRL VITÓRIA 2014

2 FREDDY BRASILEIRO SILVA UMA TRANSFORMAÇÃO AUTOMÁTICA ENTRE LINGUAGENS DE REPRESENTAÇÃO DE REGRAS EM ONTOLOGIAS: DE OCL PARA OWL E SWRL Monografia apresentada ao Curso de Ciência da Computação do Departamento de Informática da Universidade Federal do Espírito Santo, como requisito parcial para obtenção do Grau de Bacharel em Ciência da Computação. Orientador: M. Sc. Pedro Paulo Favato Barcelos Coorientador: Prof. Dr. Giancarlo Guizzardi VITÓRIA 2014

3 FREDDY BRASILEIRO SILVA UMA TRANSFORMAÇÃO AUTOMÁTICA ENTRE LINGUAGENS DE REPRESENTAÇÃO DE REGRAS EM ONTOLOGIAS: DE OCL PARA OWL E SWRL Monografia submetida ao Curso de Ciência da Computação do Departamento de Informática da Universidade Federal do Espírito Santo, como requisito parcial para a obtenção do Grau de Bacharel em Ciência da Computação. Aprovada em 19 de março de COMISSÃO EXAMINADORA MSc. Pedro Paulo Favato Barcelos - Orientador Universidade Federal do Espírito Santo Prof. Dr. Giancarlo Guizzardi - Co-orientador Universidade Federal do Espírito Santo Prof. Dr. Anilton Sales Garcia Universidade Federal do Espírito Santo Prof. Dr. Maxwell Eduardo Monteiro Instituto Federal do Espírito Santo

4 DEDICATÓRIA A todos que me apoiaram e me incentivaram nessa longa jornada.

5 AGRADECIMENTOS Agradeço primeiramente à minha família, que me deu oportunidade de estudo e incentivo para seguir meu caminho. À minha amada namorada, Larissa, pelo companheirismo e apoio em todos os momentos. Ao Pedro Paulo, pela paciência e compreensão durante todo o período de orientação, e ao professor Giancarlo, que confiou e aceitou ser coorientador deste trabalho. Aos professores Anilton e Maxwell, pela oportunidade de trabalho, por todo o conhecimento transmitido durante o período de projeto PADTEC e por aceitarem participar da banca deste trabalho. Aos companheiros de projeto Padtec, por toda a assistência prestada, em especial a Stange, Cabelino, Cássio, Victor Amorim e Fábio. À PADTEC S/A pelo projeto no qual este trabalho se encontra inserido. Ao Stange, novamente, que, quando está no Brasil, toma gol meu toda terça-feira. Aos companheiros do NEMO, pela amizade, conversas exaltadas no horário de trabalho e almoços no RU. Em especial, aos cafés com altíssimo padrão de qualidade proporcionados por Laylla, Ariane e Jordana, às cantorias repentinas e ecléticas do Bassetti, às fotos autografadas do Sobral, e ao tratamento amigável que Cássio e Victor Amorim praticam entre si. Vish! (Specimille, 2014). Aos companheiros de graduação Tiago, Lucas, Viola, Bruno Almeida, Eduardo e Sobral, pelo apoio e desafios superados juntos. Que perrengue, Brasil! Que perrengue! (Arruda, 2008).

6 RESUMO OntoUML e OWL são linguagens de ontologias para diferentes níveis de representação do conhecimento. Com o objetivo de alcançar melhor representação do conhecimento e capacidade de raciocínio em ontologias OWL, uma Engenharia de Ontologias deve ser usada o que corresponde a uma transformação de um modelo conceitual em uma linguagem de ontologias, como OntoUML, para uma linguagem de ontologia computacional, como OWL. Com o objetivo de aumentar a expressividade das linguagens, melhorando a capacidade de representação de conhecimento, OntoUML e OWL fazem uso de regras OCL e SWRL, respectivamente. Este trabalho define uma transformação MDA automatizada de regras OCL (em um contexto de OntoUML) para ontologias OWL com regras SWRL. Essa transformação, projetada para diminuir a perda de expressividade entre OCL e SWRL e entre OCL e OWL, contribui para: (i) facilitar a criação de regras SWRL a partir de regras OCL, (ii) possibilitar o aumento de expressividade do OWL a partir de regras OCL, (iii) eliminar a possibilidade de erro humano nesse processo (por exemplo, padronizando a adoção de regras de transformação para casos semelhantes) e (iv) melhorar a representação de conhecimento do OWL resultante.

7 LISTA DE FIGURAS Figura 1 - Padrão de transformação no nível de metadelo. Adaptado de (MILLER; MUKERJI, 2003) Figura 2 - Fragmento do metamodelo da linguagem OntoUML para o tipo Class. Fonte: (GUIZZARDI, 2005) adaptado Figura 3 - Fragmento do metamodelo da linguagem OntoUML para o tipo Relationship. Fonte: (GUIZZARDI, 2005) adaptado Figura 4 - Exemplo do uso das relações SubQuantityOf Figura 5 - Exemplo do uso das relações SubCollectionOf e MemberOf Figura 6 - Padrões dos casos em que a transitividade do componentof pode ser inferida (casos A, B e C) e dos que não podem ser inferidas (casos D e E). Fonte: (GUIZZARDI, 2009) Figura 7 - Exemplo do uso das relações ComponentOf Figura 8 - Modelo UML e invariante OCL para a classe Person. Fonte: (MILANOVIĆ et al., 2006) Figura 9 - Um exemplo de modelo OntoUML para o domínio de posse de veículos. 50 Figura 10 - Um exemplo de modelo OntoUML para o domínio de alocação de funcionários e gerenciamento de um departamento Figura 11 - Um exemplo de modelo OntoUML para o domínio de parentesco de pessoas... 61

8 LISTA DE TABELAS Tabela 1 - Exemplo de representação de classes em OWL Tabela 2 - Exemplo de representação de associações em OWL Tabela 3 - Sintaxe e descrição dos tipos de regras OCL consideradas nesse trabalho Tabela 4 - Sintaxe e descrição das expressões de OCL consideradas nesse trabalho Tabela 5 - Sintaxe e descrição dos iteradores de OCL considerados nesse trabalho Tabela 6 - Sintaxe e descrição das meta-operações sobre objetos de OCL consideradas nesse trabalho Tabela 7 - Sintaxe e descrição das operações em coleções de OCL consideradas nesse trabalho Tabela 8 Continuação da sintaxe e descrição das operações em coleções de OCL consideradas nesse trabalho Tabela 9 - Sintaxe e descrição das operações em tipos primitivos de OCL consideradas nesse trabalho Tabela 10 Continuação da sintaxe e descrição das operações em tipos primitivos de OCL consideradas nesse trabalho Tabela 11 - Exemplo de OCL de origem e SWRL resultante da transformação (MILANOVIĆ et al., 2006) Tabela 12 - Exemplo do processo de criação de variáveis Tabela 13 - Equivalência para invariantes a partir de lógica de primeira ordem Tabela 14 - Mapeamento de invariantes e derivações em OCL para SWRL Tabela 15 - Exemplo do resultado da transformação para o uso do let Tabela 16 - Mapeamento de expressões em OCL para SWRL Tabela 17 - Exemplo do resultado da transformação para o uso do isunique Tabela 18 - Mapeamento de iteradores em OCL para SWRL Tabela 19 - Mapeamento de metaoperações sobre objetos em OCL para SWRL Tabela 20 - Exemplo do resultado da transformação para o uso do includes... 58

9 Tabela 21 - Mapeamento de operações em coleções em OCL para SWRL Tabela 22 - Mapeamento de operações em tipos primitivos em OCL para SWRL com diferenciação entre operadores negados e não negados Tabela 23 - Mapeamento de operações em tipos primitivos em OCL para SWRL com operadores não negados Tabela 24 - Exemplo do resultado da transformação para o uso das tags Symmetric, Irreflexive e Transitive Tabela 25 - Regras OCL e tags para representação de propriedades de associações OWL Tabela 26 - Exemplo do resultado da transformação para o uso da tag SubRelationOf... 63

10 LISTA DE SIGLAS/ACRÔNIMOS CIM Computational Independent Model MDA Model Driven Architecture MOF Meta-Object Facility ATL ATLAS Transformation Language OCL Object Constraint Language OLED Ontology Lightweight Editor OMG Object Management Group OntoUML Ontological Unified Modeling Language OOTOS OntoUML and OCL to OWL and SWRL OWL Web Ontology Language OWL-DL Web Ontology Language Description Logic OWL-Lite Web Ontology Language Lite OWL-Full Web Ontology Language Full PIM Platform Independent Model PSM Platform Specific Model R2ML REWERSE Rule Markup Language RDF Resource Description Framework RuleML Rule Markup Language SWRL Semantic Web Rule Language UFO Unified Foundational Ontology

11 UML Unified Modelling Language W3C World Wide Web Consortium

12 SUMÁRIO 1 INTRODUÇÃO ESTRUTURA DA MONOGRAFIA BACKGROUND TECNOLÓGICO MDA MODEL DRIVEN ARCHITECTURE ENGENHARIA DE ONTOLOGIAS LINGUAGENS PARA REPRESENTAÇÃO DE ONTOLOGIAS OntoUML Ontological Unified Modelling Language OWL Web Ontology Language LINGUAGENS PARA REPRESENTAÇÃO DE REGRAS OCL Object Constraint Language SWRL Semantic Web Rule Language TRABALHOS RELACIONADOS TRANSFORMAÇÕES DE ONTOUML PARA OWL E SWRL OntoUML2OCL+SWRL Transformation TRANSFORMAÇÕES DE OCL PARA OWL E SWRL Transformação de OCL para SWRL via R2ML Definição de um subconjunto de OCL para ser mapeado para SWRL A TRANSFORMAÇÃO DE OCL PARA OWL E SWRL ESCOPO NOMENCLATURA PARA CRIAÇÃO DE VARIÁVEIS MAPEAMENTO DE UM SUBCONJUNTO DE OPERADORES OCL PARA SWRL Invariantes e Derivações Expressões Iteradores Metaoperações sobre Objetos Operações em Coleções Operações em Tipos Primitivos... 59

13 4.4 MAPEAMENTO DE OCL PARA PROPRIEDADES OWL A PARTIR DO USO DE TAGS E PADRÕES IMPLEMENTAÇÃO CONCLUSÃO BIBLIOGRAFIA... 68

14 13 1 INTRODUÇÃO 1.1 CONTEXTUALIZAÇÃO Em (GUIZZARDI, 2007), é proposto o uso de uma Engenharia de Ontologias para a melhoria da representação de conceitos e da capacidade de raciocínio em ontologias computacionais. Na primeira fase dessa Engenharia de Ontologias, chamada modelagem conceitual, é necessário o uso de linguagens altamente expressivas a fim de representar adequadamente o domínio, já que as especificações resultantes têm como objetivo serem usadas por humanos em atividades como comunicação, análise de domínio e solução de problemas (GUIZZARDI, 2007). OntoUML é uma linguagem ontologicamente bem fundamentada, proposta em (GUIZZARDI, 2005) para ser usada nesta fase, cuja aplicação tem sido bem sucedida em domínios como os de eletrofisiologia (GONÇALVES; GUIZZARDI; PEREIRA FILHO, 2007), telecomunicações (BARCELOS, 2011) e petróleo e gás (GUIZZARDI et al., 2010). OntoUML, assim como outras linguagens de representação diagramáticas, possui restrições na capacidade de representação de regras de restrição e de inferência, tornando necessário o uso de uma linguagem associada para este fim. Modelos OntoUML utilizam, então, regras lógicas descritas em Object Constraint Language (OCL), aumentando sua expressividade. O último passo da Engenharia de Ontologias proposta em (GUIZZARDI, 2007) é a criação de versões da ontologia de referência desenvolvida no primeiro passo. Essas versões são chamadas lightweight ontologies e, ao contrário das ontologias de referência, tem foco em propriedades computacionais (GUIZZARDI, 2007). Um exemplo de linguagem para esse tipo de ontologia é o Web Ontology Language (OWL), adotada como padrão na Web Semântica. Assim como OntoUML, OWL também possui restrições quanto a representação de regras do tipo se, então, que devem ser definidas por meio de regras Semantic Web Rule Language (SWRL) (BARCELOS et al., 2013).

15 14 Uma fase intermediária é necessária para capturar as diferenças ontológicas existentes entre a modelagem conceitual e a implementação das linguagens. Neste caso, entre OntoUML e OWL e entre OCL e SWRL. A preocupação dessa fase é em como tratar possíveis perdas de expressividade entre as linguagens (GUIZZARDI, 2007). 1.2 MOTIVAÇÃO E JUSTIFICATIVA Este trabalho foi realizado no contexto do projeto Assessor Baseado em Ontologias para Gerenciamento de Redes, desenvolvido em parceria entre a Universidade Federal do Espírito Santo (UFES) e a Padtec S/A. A partir dos artefatos produzidos em (BARCELOS, 2011), nesse projeto foram produzidos novos artefatos em OntoUML e OCL para representação do domínio de redes de transporte. Atualmente, caso um usuário deseje realizar uma transformação de OntoUML e OCL para OWL e SWRL, esse deve executá-la de forma manual, além de demandar que o usuário tenha conhecimento prévio da estrutura e possibilidades das linguagens, bem como do processo de mapeamento entre essas. Em especial, conforme apresentado na seção 3.2 deste trabalho (de título Transformações de OCL para OWL e SWRL, do capítulo de 3) mapeamentos anteriores de OCL para SWRL não são disponibilizados em ferramentas computacionais ou, quando são, essas são limitadas ou descontinuadas. Assim, o processo de transformação entre as linguagens se torna difícil e passível de erros. Além disso, considerando-se uma transformação Model Driven Architecture (MDA), transformações manuais em geral ocorrem no nível de modelo (M1) e podem não ser sintaticamente padronizadas. Tudo isso faz com que o entendimento da ontologia resultante seja de difícil entendimento e tenha menor capacidade de representação e menor poder de raciocínio computacional. Uma transformação automatizada poderia ser disponibilizada para a comunidade em geral através de um framework de código aberto. Em (MILANOVIĆ et al., 2006) é proposta uma transformação de OCL para SWRL utilizando os metamodelos dessas linguagens e o metamodelo de REWERSE Rule

16 15 Markup Language (R2ML), uma linguagem intermediária de regras, como ligação entre os metamodelos de OCL e SWRL. Essa transformação é baseada em regras OCL escritas para modelos Unified Modeling Language (UML), porém não é necessário fazer referência ao modelo de classes UML. A comunicação dessa transformação com seu respectivo modelo UML possibilitaria que aspectos de modelagem fossem capturados, possibilitando que regras OCL fossem adicionadas diretamente à ontologia OWL. Além disso, a transformação proposta em (MILANOVIĆ et al., 2006) não faz diferenciação entre regras OCL dos tipos invariantes e de derivação. 1.3 OBJETIVOS GERAIS A proposta deste trabalho é definir uma transformação automatizada de regras lógicas descritas em OCL para ontologias OWL com regras lógicas descritas em SWRL, funcionando como uma extensão da transformação de OntoUML para OWL e SWRL proposta em (BARCELOS et al., 2013). 1.4 RESULTADOS E CONTRIBUIÇÕES Este trabalho apresenta uma transformação automática de OCL para SWRL e OWL, com o objetivo de estender a transformação apresentada em (BARCELOS et al., 2013), criando então a transformação denominada OntoUML and OCL to OWL and SWRL (OOTOS). Esta transformação é disponibilizada no framework para criação, validação e transformações de ontologia Ontology Lightweight Editor (OLED). A transformação proposta por este trabalho ocorre em um contexto de modelos OntoUML e se comunica com a transformação de OntoUML para OWL e SWRL proposta em (BARCELOS et al., 2013), sendo necessário que as duas ocorram sequencialmente e permitindo que um único arquivo OWL seja gerado. Além disso, a transformação proposta aqui permite que algumas propriedades de OWL sejam definidas por meio de regras OCL.

17 ESTRUTURA DA MONOGRAFIA O capítulo 2 deste trabalho apresenta o referencial teórico utilizado no desenvolvimento, apresentando o padrão MDA e as linguagens envolvidas na transformação (a saber, OntoUML, OWL, OCL e SWRL). O capítulo 3 apresenta os trabalhos relacionados a mapeamentos ou transformações entre as linguagens, bem como uma comparação entre esses trabalhos e o aqui desenvolvido. O capítulo 4 é referente a contribuição deste trabalho, apresentando a transformação definida, mostrado o mapeamento de OCL para OWL e SWRL, assim como as considerações feitas para definição do escopo e o processo para criação de variáveis em SWRL. Esse capítulo apresenta ainda detalhes da implementação e de aspectos computacionais da transformação. Por fim, o capítulo 5 conclui o trabalho, apresentando considerações finais e propostas de trabalhos futuros.

18 17 2 BACKGROUND TECNOLÓGICO A transformação aqui apresentada configura-se como uma transformação Model Driven Architecture (MDA), entre linguagens de diferentes níveis de abstração. Ela envolve diretamente as linguagens OCL, SWRL e OWL, dentro do contexto de modelagem em OntoUML. São apresentados, neste capítulo, o padrão MDA e as linguagens envolvidas na transformação. 2.1 MDA MODEL DRIVEN ARCHITECTURE Como uma forma de utilizar modelos no auxílio à criação de software, o padrão Model Driven Architecture (MDA), proposto em (MILLER; MUKERJI, 2003), foi criado pela Object Management Group (OMG), também responsável por padrões como a UML. De acordo com o padrão, um sistema pode ser classificado em diferentes pontos de vista, a partir de um conjunto de conceitos estruturais e de uma estruturação de regras. O MDA considera três tipos de visualização: Computational Independent Model (CIM), Platform Independent Model (PIM) e Platform Specific Model (PSM). Segundo (MILLER; MUKERJI, 2003), o CIM é uma visualização do sistema independente de aspectos computacionais, com foco no domínio e requisitos do sistema. É também chamado de modelo de domínio. No CIM, detalhes estruturais e de processamento ainda não são definidos. O CIM tem um papel importante como intermediador entre um especialista de domínio e um especialista em modelagem de domínios. Ainda segundo (MILLER; MUKERJI, 2003), o PIM foca na operação do sistema, sendo uma parte mais completa da especificação do domínio e com características independentes de plataforma. Assim, o PIM é um modelo dependente de aspectos computacionais, ou seja, é um modelo que pode ser computacionalmente executado (GASEVIC et al., 2006).

19 18 Por fim, (MILLER; MUKERJI, 2003) define o PSM como a combinação do CIM e do PIM com foco do uso em uma plataforma específica. Assim, detalhes específicos podem ser gerados a partir de diversas ferramentas de transformação automática (GASEVIC et al., 2006). Com os requisitos modelados no nível CIM, é construído um PIM, que pode conter informações computacionais. Uma transformação baseada em MDA é feita de um modelo de origem para um modelo de destino, ou seja, do PIM para o PSM, respectivamente (MILLER; MUKERJI, 2003). Para o processo de transformação entre dois modelos, é necessário que ocorra um mapeamento entre eles, podendo ser feito em diversos níveis, como no nível de instância, de modelo ou no nível de metamodelo. Uma maneira de construir uma transformação única e genérica é considerar o nível de metamodelo das linguagens. O fato de considerar um metamodelo possibilita que regras de mapeamento sejam aplicadas para todas as instâncias de tipos do metamodelo. Em (BARCELOS et al., 2013) são considerados os metamodelos de OntoUML, OWL e SWRL para a implementação de uma transformação entre estas linguagens. Este trabalho, que estende essa primeira transformação, acrescentando a ela a transformação de OCL para SWRL e OWL, também considera os metamodelos das linguagens envolvidas. A Figura 1 mostra como ocorre o padrão de transformação com o mapeamento feito no nível de metamodelo.

20 19 Figura 1 - Padrão de transformação no nível de metadelo. Adaptado de (MILLER; MUKERJI, 2003) 2.2 ENGENHARIA DE ONTOLOGIAS Nos últimos anos, a utilização de ontologias nas áreas de computação tem crescido consideravelmente, mais especificamente nos contextos de Web Semântica e MDA. Em (GUIZZARDI, 2007) é proposta uma Engenharia de Ontologias com três fases distintas e bem definidas: modelagem conceitual, projeto e implementação. A fase de modelagem conceitual tem como objetivo capturar claramente as características do domínio para, então, ser usada como objeto de comunicação, aprendizado e solução de problemas. Na fase de projeto considerações são feitas a partir do modelo conceitual gerado na fase anterior, a fim de capturar questões arquiteturais e aspectos não funcionais para a fase de implementação. Por fim, a fase de implementação consiste na geração de código passível de execução computacional a partir das considerações da fase de projeto. É possível que diferentes considerações de projeto sejam feitas para um modelo conceitual e que diferentes implementações sejam feitas para cada uma das considerações de projeto. As versões de implementação da ontologia da modelagem conceitual são chamadas lightweight ontologies.

21 20 Para garantir todas as distinções semânticas dos conceitos de um domínio, (GUIZZARDI, 2007) defende que uma linguagem altamente expressiva seja usada na fase de modelagem conceitual. Esse é o caso da linguagem OntoUML (apresentada na seção 2.3.1) que utiliza regras OCL (apresentada na seção 2.4.1) para representações de restrições e derivações. OCL é a linguagem utilizada como origem na transformação definida neste trabalho. OntoUML utiliza estereótipos para representar as distinções ontológicas dos conceitos, o que restringe a interpretação de cada tipo. Assim, uma transformação MDA cujo modelo de origem é representado em OntoUML, a necessidade de intervenção humana diminui, ou até mesmo pode ser eliminada, possibilitando que a transformação ocorra de forma automatizada somente a partir da entrada de um modelo e do mapeamento feito e, assim, reduzindo chances de erros e de tomadas de decisões diferentes para casos semelhantes. Linguagens de implementação de ontologias têm foco computacional, possuindo assim restrições de tratabilidade e decidibilidade (GUIZZARDI, 2007). Um exemplo de linguagem desse tipo é a OWL (apresentada na seção 2.3.2) e sua linguagem de regras associada, SWRL (apresentada na seção 2.4.2). Ambas são utilizadas como linguagens de destino na transformação final deste trabalho. Uma questão que necessita de atenção é a perda de expressividade ocorrida entre as fases de modelagem conceitual e de implementação, já que a primeira deve ser altamente expressiva e a última deve ter foco computacional. Portanto, na fase de projeto é importante que sejam feitas considerações a fim de se ter o mínimo de perda de expressividade possível. 2.3 LINGUAGENS PARA REPRESENTAÇÃO DE ONTOLOGIAS Esta seção apresenta as quatro linguagens para representação de ontologias relevantes a este trabalho. São elas as linguagens para representação de conceitos, OntoUML e OWL; e as linguagens para a representação de regras, OCL e SWRL.

22 OntoUML Ontological Unified Modelling Language OntoUML é uma linguagem ontologicamente bem fundamentada, proposta em (GUIZZARDI, 2005) como um profile da UML 2.0, para modelagem conceitual de domínios. Tal linguagem é aplicável à fase de Análise da Engenharia de Ontologias proposta em (GUIZZARDI, 2007), pois possui alta expressividade, e é utilizada com sucesso em domínios como eletrofisiologia (GONÇALVES; GUIZZARDI; PEREIRA FILHO, 2007), óleo e gás (GUIZZARDI et al., 2010) e telecomunicações (BARCELOS, 2011). O metamodelo de OntoUML é construído como uma extensão do metamodelo de UML a partir dos elementos Class e Relationship. Essa extensão se dá pela utilização dos conceitos definidos na Unified Foundational Ontology (UFO), uma ontologia de fundamentação proposta em (GUIZZARDI, 2005). A Figura 2 e a Figura 3 apresentam fragmentos do metamodelo de OntoUML. Os elementos folha desses fragmentos apresentados são usados como estereótipos da linguagem. A seguir são apresentadas breves descrições dos estereótipos relevantes a esse trabalho, extraídas e adaptadas de (GUIZZARDI, 2005), (ZAMBORLINI, 2011) e (BARCELOS, 2011).

23 Especializações do Elemento UML Class Figura 2 - Fragmento do metamodelo da linguagem OntoUML para o tipo Class. Fonte: (GUIZZARDI, 2005) adaptado Cada estereótipo definido no trecho do metamodelo apresentado na Figura 2 possui características de rigidez, de acordo com sua definição ontológica. Conceitos rígidos são aqueles que, uma vez instanciados, não podem deixar de ser daquele tipo. Conceitos antirrígidos são aqueles que seus indivíduos podem deixar de ser daquilo, de acordo com a necessidade. Conceitos semirrígidos podem agrupar outros conceitos rígidos e antirrígidos ao mesmo tempo e, por isso, instâncias podem ou não de ser daquele tipo quando o conceito agrupado é rígido ou antirrígido, respectivamente Kind

24 23 Kinds representam conceitos rígidos e que possuem princípio de identidade. Por ser rígido, uma instância de um Kind nunca poderá deixar de ser do mesmo. É comum identificar se um conceito possui princípio de identidade quando é possível contá-lo. Pessoa e árvore são exemplos de Kinds SubKind SubKinds herdam a rigidez e o princípio de identidade do Kind que especializa. Homem e mulher são exemplos de SubKinds que especializam o Kind Pessoa Quantity O estereótipo Quantity representa quantidades maximais de matéria em um recipiente qualquer, de forma que, ao se dividir essa quantidade, o novo conjunto de divisões representam novas instâncias. A quantidade de água em um copo é um exemplo de Quantity que, ao ser dividida, pode se tornar quantidades diferentes de água em copos distintos Collective As instâncias do estereótipo Collective representam coletivos de outros conceitos. Collectives são rígidos. Matilha é um exemplo de Collective do Kind Cão Phase Conceitos antirrígidos que representam, de fato, a mudança de fases, e cuja mudança depende intrinsicamente de suas propriedades, são modelados com o estereótipo Phase. Cada Generalization Set de Phases é, necessariamente, disjunto e completo. Criança, Adolescente e Adulto são exemplos de Phases que dependem do atributo idade do Kind Pessoa.

25 Role O papel desempenhando por um conceito em um domínio é representado pelo estereótipo Role. Conceitos do tipo Role são antirrígidos e dependem existencialmente de uma relação de cardinalidade mínima 1 com outro conceito. Estudante é um exemplo de Role do Kind Pessoa e que depende existencialmente de uma relação com o conceito Instituição de Ensino Category Categories agrupam conceitos rígidos com diferentes princípios de identidade. Um exemplo de Category é o conceito Item Assegurável, que agrupa os Kinds Pessoa e Carro RoleMixin Ao contrário do Category, o RoleMixin agrupa conceitos antirrígidos com diferentes princípios de identidade. Cliente é um exemplo de RoleMixin que agrupa os Roles Cliente Pessoa Física e Cliente Pessoa Jurídica Mixin Mixins são conceitos semirrígidos que agrupam conceitos rígidos e antirrígidos e, por isso, são sempre aplicáveis aos rígidos e contingentemente aos antirrígidos. O conceito Sentável é um exemplo de Mixin sempre aplicável ao Kind Cadeira e às vezes aplicável ao conceito Caixote Mode

26 25 Modes são conceitos que representam determinados aspectos de que um indivíduo adquire em determinado contexto. O conceito Dor de Cabeça é um exemplo de Mode Relator Relators são conceitos rígidos que representam um evento que valida uma relação Material. Estes conceitos mediam outros dois conceitos, através de uma relação Mediation, e são representados como uma classe associativa de uma relação Material. O conceito Casamento é um exemplo de Relator que media os Roles Esposo e Esposa e é representado como classe associativa da relação Material casado com.

27

28 27 desses órgãos). As relações todo-parte definidas em (GUIZZARDI, 2005) são SubQuantityOf, SubColletionOf, MemberOf e ComponentOf Associação Formal Associações formais são aqueles de dependem exclusivamente de propriedades dos conceitos interligados por elas. Relações que expressem comparações, como mais alto que e mais pesado que, são exemplos de associações formais que dependem das propriedades internas do Kind Pessoa Associação Material Associações materiais dependem de um evento, neste caso o Relator (descrito na seção ), para se tornarem válidas. A relação estuda em é um exemplo de relação material entre os Estudante e Instituição de Ensino e mediada pelo Relator Matrícula SubQuantityOf Relações de sub-quantidade-de interligam conceitos do tipo Quantity, representando uma porção total e porções menores de um total. Essas relações são transitivas devido às suas características ontológicas. Na Figura 4, por exemplo, a quantidade maximal de um drink alcoólico pode ser composta de uma subquantidade de determinada bebida que, por sua vez, pode ser composta de uma subquantidade de álcool. O princípio de transitividade faz com que o drink alcoólico seja composto da subquantidade de álcool. Figura 4 - Exemplo do uso das relações SubQuantityOf.

29 SubCollectionOf Relações de sub-coleção-de interligam conceitos do tipo Collective, descrevendo uma porção mais específica de um coletivo, e sempre são transitivas. Na Figura 5, o Collective Floresta pode ser composto do Collective Floresta Negra que, por sua vez, pode ser composto do Collective Parte Norte da Floresta Negra. Pela propriedade de transitividade, o Collective Floresta será composto do Collective Parte Norte da Floresta Negra. Figura 5 - Exemplo do uso das relações SubCollectionOf e MemberOf MemberOf Relações de membro-de (memberof) ocorrem entre Collectives e Complexos Funcionais (ex.: Kind, Subkind, Role, Phase) ou entre Collectives. Devido às suas características ontológicas, essas relações não são transitivas. Na Figura 5, uma Árvore Negra da Parte Norte da Floresta Negra é um exemplo de membro da Parte Norte da Floresta Negra. Apesar dessas relações não serem transitivas, a transitividade pode ocorrer entre um conjunto de subcollectionof e um memberof. Ainda na Figura 5, a Árvore Negra da Parte Norte da Floresta Negra é, transitivamente, membro da Floresta Negra e da Floresta ComponentOf Essas relações ocorrem entre Complexos Funcionais e são não-transitivas, ou seja são transitivas em casos específicos (conforme mostrado na Figura 6Erro! Fonte de referência não encontrada.). Além disso, por definição, uma relação desse tipo tem cardinalidade mínima 2 no lado da parte ou a soma das cardinalidades mínimas das partes deve ser maior ou igual a 2.

30 29 Figura 6 - Padrões dos casos em que a transitividade do componentof pode ser inferida (casos A, B e C) e dos que não podem ser inferidas (casos D e E). Fonte: (GUIZZARDI, 2009) Na Figura 7, o Corpo Humano é composto de Braço que, por sua vez, é composto da Mão. A transitividade ocorre de forma que o Corpo Humano é composto da Mão. Ainda no exemplo abaixo, o Braço deve ser composto por mais partes para que o modelo seja válido. Figura 7 - Exemplo do uso das relações ComponentOf Characterization As relações de caracterização representam características inerentes a um conceito. O Mode Dor de Cabeça é um exemplo de uma característica inerente ao Kind Pessoa Mediation

31 30 Relações de mediação ocorrem entre um Relator e conceitos que o mesmo valida. O Relator Casamento, por exemplo, media os Roles Esposo e Esposa OWL Web Ontology Language A Web Ontology Language (OWL) é uma linguagem para representação de domínios que possui capacidade computacional. A mesma é adotada como padrão do World Wide Web Consortium (W3C) para representação de ontologias na Web Semântica e, para isso, foi feita como uma extensão de Resource Description Framework (RDF), a fim de manter a compatibilidade com a Web e melhorar a expressividade. Apesar de ser mais expressiva que RDF, OWL é menos expressiva que OntoUML, já que é uma linguagem com o foco em implementação. Sendo assim, OWL se enquadra na fase de Implementação da Engenharia de Ontologias proposta em (GUIZZARDI, 2007). A Web Semântica, onde OWL é aplicável, é um ambiente chamado de Mundo Aberto, de forma que uma informação só pode ser considerada verdadeira ou falsa se assim for declarada. De maneira inversa, o Mundo Fechado é tal que caso nada seja dito sobre algo, o mesmo é considerado falso. Por fim, a diferença se dá pela flexibilidade do Mundo Aberto, que permite que a informação seja incompleta, e pelo fato de que no Mundo Fechado as informações devem ser completas (PATEL- SCHNEIDER; HORROCKS, 2006). OWL é uma linguagem com a capacidade de inferência para classes, relações, atributos e indivíduos. O aumento da expressividade na representação do domínio gera preocupações referentes à decidibilidade e tempo computacional de inferência (SMITH; WELTY; MCGUINNESS, 2004). Por isso, OWL é subdividida em 3 versões incrementais entre si: OWL-Lite, que dá suporte a classificações hierárquicas e restrições simples; OWL-DL, que apresenta o melhor equilíbrio entre expressividade e perda de completude e decibilidade; e OWL-Full, que possibilita o máximo de expressividade e não dá garantias quanto ao tempo computacional (SMITH; WELTY;

32 31 MCGUINNESS, 2004), isto é, pode ser indecidível. A versão que interessa a este trabalho é a OWL-DL. A representação de um domínio em OWL é feita a partir de um de elementos básicos: Classes, Propriedades de Objetos (associações) e Propriedades de Dados (atributos). A seguir serão descritos os elementos básicos de OWL que são relevantes a esse trabalho. Para a apresentação de exemplos será utilizada a interface gráfica do Protégé 4.3, um editor de ontologias gratuito e de código aberto disponível para download em: Classes Em OWL todos os conceitos são representados por classes e, implicitamente, como subclasses de Thing, a classe mais geral de qualquer domínio OWL. Para classes, é possível definir especializações, disjunções e equivalências. Um conceito é especializado por uma classe definida internamente a ele, com a utilização da propriedade subclassof. A disjunção entre classes é representada com a utilização da propriedade disjointwith, e agrupando os conceitos. Por fim, para definir um conceito como um conjunto de componentes da ontologia, utiliza-se a propriedade equivalentclass. A Tabela 1 apresenta um exemplo visual de um domínio em que: (A) Pessoa é definida como subclasse de Thing, e Homem e Mulher como subclasses de Pessoa; (B) Pessoa é equivalente a qualquer coisa que possua exatamente uma idade; e (C) Homem e Mulher são disjuntos entre si. Idade é um exemplo de DataProperty, descrito na seção Tabela 1 - Exemplo de representação de classes em OWL A) Taxonomia de Classes B) Definição da Classe Pessoa C) Definição da Classe Mulher

33 Propriedades (Properties) OWL dá suporte à representação de relações e atributos através de Object Properties e Data Properties, respectivamente. Em ambos, é possível representar especializações a partir da propriedade subpropertyof. Nas relações são definidas as classes origem e destino através do Domain e do Range, respectivamente. Nos atributos são definidas a classe de origem e o tipo de dados por meio do Domain e do Range, respectivamente. Para a representação das restrições de propriedades, são considerados os seguintes axiomas de cardinalidade: mínimo (min), máximo (max), exatamente (exactly) e algum (some). Em OWL, relações são unidirecionais e, por isso, é possível definir uma relação no sentindo contrário e declará-la como inversa através do marcador inverseof. Também é possível definir a disjunção entre relações agrupando as mesmas com o marcador disjointwith. Além disso, (SMITH; WELTY; MCGUINNESS, 2004) e (HITZLER et al., 2012) descrevem características particulares de associações apresentadas a seguir: Funcional (Functional): Seja uma propriedade P, P(x, y)^p(x, z) y = z) Inverso Funcional (Inverse Functional): Seja uma propriedade P, P(y, x)^p(z, x) y = z). Transitivo (Transitive): Seja uma propriedade P, P(x, y)^p(y, z) P(x, z). Um exemplo de transitividade se dá em uma relação que represente que uma Pessoa é ancestral de outra Pessoa. Simétrico (Symmetric): Seja uma propriedade P, P(x, y) P(y, z). Um exemplo de simetria se dá com uma relação que represente que uma Pessoa é irmã de outra Pessoa. Assimétrico (Asymmetric): Seja uma propriedade P, P(x, y) P(y, x).

34 33 Reflexivo (Reflexive): Representa a associação que conecta um indivíduo nele mesmo. Irreflexivo (Irreflexive): Representa a associação que não conecta um indivíduo nele mesmo. Um exemplo de irreflexividade também se dá pela relação que representa que uma Pessoa é irmã de outra Pessoa e pela relação que representa que uma Pessoa é ancestral de outra Pessoa. A Tabela 2 apresenta um exemplo visual das associações em OWL usadas como exemplo acima. Tabela 2 - Exemplo de representação de associações em OWL A) Taxonomia de ObjectProperty B) Características de ancestralde C) Definição de ancestralde Indivíduos (Individuals) Com foco computacional, OWL dá suporte à criação de indivíduos e à atribuição de propriedades aos mesmos (SMITH; WELTY; MCGUINNESS, 2004). Indivíduos podem ser descritos como de algum tipo, i.e., como pertencentes a uma classe; como mesmo indivíduo que outro indivíduo; ou como diferente de outro indivíduo. Ainda é possível descrevê-los com asserções sobre quais relações o mesmo tem ou não com outro indivíduo ou sobre quais atributos este tem ou não.

35 LINGUAGENS PARA REPRESENTAÇÃO DE REGRAS As linguagens de ontologias apresentadas neste trabalho não possuem expressividade suficiente para representar todas as características do modelo, como restrições e derivações, sendo necessário o uso conjunto de linguagens de regras a fim de se obter maior expressividade. As linguagens de regras relevantes a este trabalho são apresentadas a seguir OCL Object Constraint Language UML é um padrão nas áreas de pesquisa e indústria que provê uma série de recursos para representar modelos através de diagramas. Contudo, diagramas UML nem sempre são suficientes para representar de maneira adequada todos os conceitos de um domínio. O diagrama de classes, por exemplo, que é um dos componentes UML mais utilizados, apresenta inconsistências e redundâncias em seu metamodelo (BERARDI; CALVANESE; DEGIACOMO, 2005). Por isso, o uso de regras Object Constraint Language (OCL) é uma forma de melhorar semanticamente esses diagramas, restringindo o domínio e definindo comportamentos desejáveis. Da mesma maneira que UML, OntoUML também faz uso de regras OCL quando necessário. OCL é um padrão para UML que oferece mecanismos para uma série de propósitos (ex.: como linguagem de consultas, para especificar invariantes, pré e pós condições, etc.). Neste trabalho, o foco da transformação de OCL para SWRL é na especificação de regras de domínio (invariantes e derivações). A justificativa para essa decisão de escopo encontra-se na seção 4.1 deste trabalho. A seguir são apresentados os operadores de OCL relevantes a esse trabalho, juntamente com suas respectivas sintaxes e descrições, conforme (OMG, 2012) e (GOUBET; DELAIGUE, 2009).

36 Invariantes e Derivações Em OCL, todas as regras devem especificar um contexto, que é um tipo (classe, associação ou atributo) definido no modelo. Essa restrição significa que não é possível expressar regras gerais sobre o modelo. Tais regras podem ser de dois tipos: (a) as condições invariantes, ou simplesmente invariantes, devem ser obedecidas em todos os estados possíveis do modelo, enquanto (b) as derivações são usadas para inferir relações ou atributos. Invariantes OCL podem representar mais que restrições, pode usar o operador implies para definir uma condição suficiente para se fazer suposições. Quando não expressam restrições, essas regras devem ser interpretadas como uma regra complexa de derivação. Já as regras OCL de derivação são utilizadas para representar como um conceito é inferido a partir de outros, i.e., como um conceito derivado é definido a partir de um conjunto de informações conhecidas. Apesar da diferenciação entre invariantes e derivações em OCL, todas as regras de derivação podem ser escritas como invariantes a partir do operador implies. Por exemplo, se for necessário afirmar de que toda Maçã é redonda, é possível escrever uma regra no formato de derivação, como se x é uma maçã, então x é redonda ou é possível escrever como uma regra de restrição, como é necessário para uma maçã ser redonda. Basicamente, quando um conhecimento só existe a partir de uma inferência ou de um cálculo matemático, o uso de uma regra de derivação é mais adequado (WAGNER, 2002), caso contrário pode ser escrita como restrição. OCL provê sintaxe para construir invariantes e derivações a partir dos construtores inv e derive, respectivamente. Regras complexas de derivação envolvem tipos derivados ou um conjunto de conclusões sobre o estado de uma coisa. A regra OCL a seguir é um exemplo de regra de derivação: context Pessoa inv: not self.oclistypeof(empregado) implies self.oclistypeof(desempregado) A condição acima expressa que, em todos os estados futuros do modelo, todas as Pessoas que não estiverem empregadas serão Desempregadas. Esse é um caso

37 36 clássico de derivação de tipos que não pode ser expressa usando o construto derive de OCL. Na verdade, sempre que houver regras complexas de derivação, o modelador não poderá usar algo diferente de invariantes. A Tabela 3 abaixo apresenta a sintaxe de regras invariantes e de derivação em OCL, que são as consideradas no desenvolvimento da transformação OCL para SWRL. Tabela 3 - Sintaxe e descrição dos tipos de regras OCL consideradas nesse trabalho Sintaxe context Class inv: OCLExpression context Class inv: OCLExpressionA implies OCLExpressionB context Class::AssociationEnd : Set(Type) derive: OCLExpression context Class::Attribute : Type derive: OCLExpression Descrição Determinada classe é definida como contexto para uma regra descrita em OCL. Determinada classe é definida como contexto para uma regra descrita em OCL que utiliza o operador implies. Determinada associação é definida como contexto para ser derivado a partir de uma regra descrita em OCL. Determinado atributo é definido como contexto para ser derivado a partir de uma regra descrita em OCL Expressões Apenas algumas dos tipos de expressões de OCL são consideradas neste trabalho, como melhor descrito na seção 4.1. Essas expressões são apresentadas abaixo, na Tabela 4, juntamente com as notações equivalentes em OCL e breves descrições. Tabela 4 - Sintaxe e descrição das expressões de OCL consideradas nesse trabalho Sintaxe Descrição

38 37 let x: Type = OCLExprA inoclexprb self.attribute self.assocend Atribui o resultado de uma expressão (OCLExprA) a uma variável (x) para ser usada em outra expressão (OCLExprB). O acesso a um atributo (attribute) é feito a partir de uma classe (self) com o próprio atributo por mediação de um ponto. O acesso a associações é feito a partir de uma classe (self) com o Association End (assocend)da associação por mediação de um ponto Iteradores Apenas alguns dos tipos de iteradores de OCL são considerados neste trabalho, como descrito na seção 4.1. Na Tabela 5 esses iteradores são apresentados juntamente com as notações equivalentes em OCL e breves descrições: Tabela 5 - Sintaxe e descrição dos iteradores de OCL considerados nesse trabalho Sintaxe col->forall(x expr) col->collect(x expr) col->isunique(x x.prop) Descrição Executa uma expressão (expr) para todos os elementos (x) pertencentes a uma coleção (col). Retorna todos os subelementos (x) de uma coleção (col) a partir de uma expressão (expr). Verifica se uma propriedade (prop) de um elemento (x) pertencente a uma coleção (col) é única Metaoperações sobre objetos Apenas algumas das metaoperações sobre objetos de OCL são consideradas neste trabalho, como descrito em 4.1. Na Tabela 6 essas metaoperações são apresentadas juntamente com as notações equivalentes em OCL e breves descrições:

39 38 Tabela 6 - Sintaxe e descrição das meta-operações sobre objetos de OCL consideradas nesse trabalho Sintaxe obj.ocliskindof(t) obj.oclistypeof(t) obj.oclastype(t) obj1 = obj2 obj1 <> obj2 Descrição Verifica se um objeto (obj) ou suas generalizações são de determinado tipo (t). Verifica se um objeto (obj) é de determinado tipo (t). Trata um objeto (obj) como sendo de determinado tipo (t). Verifica se dois objetos (obj1 e obj2) são iguais. Verifica se dois objetos (obj1 e obj2) não são iguais Operações em Coleções Apenas algumas das operações em coleções de OCL são consideradas neste trabalho, como descrito na seção 4.1. A Tabela 7 e a Tabela 8 essas operações são apresentadas juntamente com as notações equivalentes em OCL e breves descrições: Tabela 7 - Sintaxe e descrição das operações em coleções de OCL consideradas nesse trabalho Sintaxe col->includes(obj) col->including(obj) col->includesall(set) col->intersection(set) Descrição Verifica se um objeto (obj) está contido em uma coleção (col). Retorna uma coleção (col) acrescida de um objeto (obj). Verifica se um conjunto de objetos (set) está contido em uma coleção (col). Retorna a interseção entre uma coleção (col) e um conjunto de objetos (set).

40 39 Tabela 8 Continuação da sintaxe e descrição das operações em coleções de OCL consideradas nesse trabalho Sintaxe col->excludes(obj) col->excluding(obj) col->excludesall(obj) col s Descrição Verifica se um objeto (obj) não está contido em uma coleção (col). Retorna uma coleção (col) decrescida de um objeto (obj). Verifica se um conjunto de objetos (set) não está contido em uma coleção (col). Retorna uma coleção (col) decrescida de um conjunto de objetos (obj) Operações em Tipos Primitivos Apenas algumas das operações em tipos primitivos de OCL são consideradas neste trabalho, como descrito na seção 4.1. Na Tabela 9 essas operações são apresentadas juntamente com as notações equivalentes em OCL e breves descrições: Tabela 9 - Sintaxe e descrição das operações em tipos primitivos de OCL consideradas nesse trabalho a implies b not a a or b a and b Sintaxe Descrição Conclui que uma expressão (b) é verdadeira se outra expressão (a) também é verdadeira. Retorna a negação de uma expressão (a). Compara duas expressões (a e b) e retorna verdadeiro se uma das duas for verdadeira. Compara duas expressões (a e b) e retorna verdadeiro se as duas forem verdadeiras. x > y Verifica se x é maior que y. x >= y Verifica se x é maior ou igual que y. x < y Verifica se x é menor que y. x <= y Verifica se x é menor ou igual que y.

41 40 Tabela 10 Continuação da sintaxe e descrição das operações em tipos primitivos de OCL consideradas nesse trabalho Sintaxe Descrição x + y Retorna a soma de x e y. x y Retorna a subtração de x e y. x * y Retorna a multiplicação de x e y. x / y Retorna a divisão de x e y. - x Retorna x multiplicado por -1. x.abs() Retorna o valor absoluto de x. true false Valor Booleano equivalente a verdadeiro. Valor Booleano equivalente a falso SWRL Semantic Web Rule Language A Semantic Web Rule Language (SWRL) é uma linguagem proposta em (HORROCKS et al., 2004) e adotada pelo W3C para ser uma linguagem de regras para Web Semântica, sendo criada a partir da combinação de Rule Markup Language (RuleML) com as sublinguagens OWL-Lite e OWL-DL da linguagem OWL. A sintaxe concreta de SWRL funciona como uma extensão de OWL e, assim, permite que a representação dos conceitos e regras de um domínio estejam em um mesmo documento. Regras SWRL são construídas a partir de classes, propriedades (associações e atributos), funções (chamadas Built-Ins) nativas ou externas e indivíduos (utilizados como variáveis). Cada assertiva composta por esses elementos é chamada de átomo. Por exemplo, seja C uma classe e P uma propriedade, ambas definidos em OWL, e considerando que indivíduos são representados como? nomedavariavel, um átomo em SWRL pode ser representado da forma: C(? c), P(? p), sameas(? x,? y), differentfrom(? x,? y) ou builtin(? r,? z 1,...,? z n ). Regras SWRL são formadas por uma implicação entre antecedente e consequente (também chamados de body e head, respectivamente). Em SWRL, antecedente e consequente são formados por zero ou mais átomos e considerações são feitas para

42 41 os casos em os mesmos são vazios: nesses casos, o antecedente é considerado sempre verdadeiro e o consequente é considerado sempre falso. Contudo, alguns editores de ontologias OWL, como o presente no Protégé 4.3, somente dão suporte a regras em que antecedente e consequente tenham no mínimo um átomo. Como o Protégé foi utilizado durante o desenvolvimento deste trabalho para visualização e testes de ontologias e regras, neste trabalho todos os antecedentes e consequentes são ambos gerados com no mínimo um átomo, com adaptações quando necessário. Além de respeitar a sintaxe concreta de OWL, SWRL possui uma sintaxe mais amigável e compreensível para humanos. Nessa sintaxe, uma regra tem o formato antecedente consequente, de maneira que antecedente e consequente são conjunções entre átomos escritas da forma a 1,, a n. Utilizando essa sintaxe, uma regra SWRL que afirme que se aplica a transitividade entre Pessoa e Pessoa, através da relação ancestral de, poderia ser escrita da forma: ancestralde(? x,? y), ancestralde(? y,? z) ancestralde(? x,? z). Quando comparada com OCL, SWRL pode ser considerada uma linguagem de baixa expressividade. Como SWRL possui uma quantidade pequena de operadores, nem sempre é possível o mapeamento direto entre a mesma e OCL. Nesses casos, é necessária a combinação de dois ou mais operadores de SWRL para representar um único operador de OCL e, pela diferença de complexidade, nem toda regra OCL é passível de ser expressa em SWRL. Além disso, o uso de OWL-Lite e OWL-DL não permite que uma regra em SWRL use Built-Ins (descritos a seguir) que tratem de listas e vetores, tornando a linguagem ainda mais restrita. SWRL utiliza dois átomos de OWL para verificar se dois indivíduos representam ou não o mesmo indivíduo, sendo eles sameas e differentfrom, respectivamente. A fim de possibilitar possíveis extensões, todos os outros operadores SWRL são construídos em módulos, chamados Built-Ins. Este trabalho considera apenas alguns dos Built-Ins disponíveis, que são descritos a seguir.

43 Built-Ins de Operações de Comparação Todos os Built-Ins de comparação disponíveis em SWRL são considerados neste trabalho. A seguir são listados os mesmos juntamente com as notações equivalentes em SWRL e breves descrições: equal(? x,? y): verifica se x e y são o mesmo indivíduo; notequal(? x,? y): verifica se x e y não são o mesmo indivíduo; lessthan(? x,? y): verifica se x é menor que y; lessthanorequal(? x,? y): verifica se x é menor ou igual a y; greaterthan(? x,? y): verifica se x é maior que y; greaterthanorequal(? x,? y): verifica se x é maior ou igual a y; Built-Ins de Operações de Matemáticos Apenas alguns dos Built-Ins de operações matemáticas são considerados neste trabalho. A seguir os mesmos são listados juntamente com as notações equivalentes em SWRL e breves descrições: add(? x,? y,? z): atribui a x o valor da soma de y e z; subtract(? x,? y,? z): atribui a x o valor da subtração de y e z; multiply(? x,? y,? z): atribui a x o valor da multiplicação de y por z; divide(? x,? y,? z): atribui a x o valor da divisão de y por z; abs(? x,? y): atribui a x o valor absoluto de y.

Modelagem Conceitual com OntoUML Tipos de Objetos

Modelagem Conceitual com OntoUML Tipos de Objetos Modelagem Conceitual com OntoUML Tipos de Objetos Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda UFO Unified Foundational Ontology

Leia mais

Modelagem Conceitual com OntoUML

Modelagem Conceitual com OntoUML Modelagem Conceitual com OntoUML Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda UFO Unified Foundational Ontology Categorias

Leia mais

Padrões de Modelagem e Regras de Construção de Modelos para a criação de Ontologias de Domínio Bem-Fundamentadas em OntoUML

Padrões de Modelagem e Regras de Construção de Modelos para a criação de Ontologias de Domínio Bem-Fundamentadas em OntoUML Padrões de Modelagem e Regras de Construção de Modelos para a criação de Ontologias de Domínio Bem-Fundamentadas em OntoUML Alex Pinheiro das Graças (NEMO/UFES) apgracas@inf.ufes.br Giancarlo Guizzardi

Leia mais

OntoUML Tipos de Propriedades

OntoUML Tipos de Propriedades OntoUML Tipos de Propriedades Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Propriedades em UFO-A Relações em UFO-A Relações

Leia mais

Ontologia Ontologia Formal

Ontologia Ontologia Formal 24 2. ONTOLOGIAS Ontologia é uma palavra de origem latina cujo significado pode ser entendido como o estudo da existência. Etimologicamente, ont- vem do particípio presente do verbo grego enai, que significa

Leia mais

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas

Leia mais

ONTOLOGIAS E ONTOLOGIAS DIFUSAS

ONTOLOGIAS E ONTOLOGIAS DIFUSAS Universidade Federal de São Carlos - UFSCar Programa de Pós-Graduação em Ciência da Computação PPGCC Departamento de Computação - DC ONTOLOGIAS E ONTOLOGIAS DIFUSAS SUMARIO Introdução Ontologias OWL Regras

Leia mais

UMA ABORDAGEM BASEADA EM PADRÕES PARA CONSTRUÇÃO DE MODELOS CONCEITUAIS EM ONTOUML

UMA ABORDAGEM BASEADA EM PADRÕES PARA CONSTRUÇÃO DE MODELOS CONCEITUAIS EM ONTOUML UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA VICTOR AMORIM DOS SANTOS UMA ABORDAGEM BASEADA EM PADRÕES PARA CONSTRUÇÃO DE MODELOS CONCEITUAIS EM ONTOUML VITÓRIA

Leia mais

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta Model Driven Architecture Centro de Informática/UFPE Fernando Trinta Roteiro Contexto Introdução Conceitos MDA Platform Independent Model Platform Specific Model Transformations Consequências Promessas

Leia mais

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Manipulação de uma ontologia desenvolvida em OWL através da utilização da API JENA 2 Ontology

Manipulação de uma ontologia desenvolvida em OWL através da utilização da API JENA 2 Ontology Manipulação de uma ontologia desenvolvida em OWL através da utilização da API JENA 2 Ontology Paulo Roberto Gonçalves 1, Parcilene Fernandes de Brito 1 1 Laboratorio de Inteligência Computacional Centro

Leia mais

3 Kuaba: Uma Ontologia para Design Rationale

3 Kuaba: Uma Ontologia para Design Rationale 3 Kuaba: Uma Ontologia para Design Rationale Para que o conhecimento registrado durante o design possa ser automaticamente processado, é desejável representar o design rationale de uma maneira formalmente

Leia mais

Ontologias: Definições e Tipos

Ontologias: Definições e Tipos Ontologias: Definições e Tipos Ricardo de Almeida Falbo Departamento de Informática Universidade Federal do Espírito Santo Agenda O que é uma ontologia Tipos de Ontologias Ontologia Origem: Filosofia Ont-

Leia mais

Ontologias: Definições e Tipos

Ontologias: Definições e Tipos Ontologias: Definições e Tipos Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo Agenda O que é uma ontologia Tipos de Ontologias

Leia mais

6 Conclusão. 6.1 Trabalhos relacionados

6 Conclusão. 6.1 Trabalhos relacionados Conclusão 112 6 Conclusão 6.1 Trabalhos relacionados A primeira versão do método SHDM apresentada por Lima (2003) empregava um modelo orientado a objetos como a base estrutural do modelo conceitual de

Leia mais

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Visão Geral da UML SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Introdução Ferramentas de Apoio Diagramas da UML Elementos Genéricos Material sobre UML

Leia mais

Este capítulo aborda os fundamentos principais aplicados neste trabalho.

Este capítulo aborda os fundamentos principais aplicados neste trabalho. 2 Fundamentos Este capítulo aborda os fundamentos principais aplicados neste trabalho. 2.1 Linked Data Linked Data é um padrão de práticas a serem seguidas para a publicação e interligação de dados estruturados

Leia mais

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados

Leia mais

Ontologias MARIANNA ARAÚJO

Ontologias MARIANNA ARAÚJO Ontologias MARIANNA ARAÚJO Roteiro Motivação Conceito Tipos Linguagens de Ontologia SPARQL Apresentação de Ferramentas Modelagem de uma Ontologia com Protégé Referencias 2 Motivação Aumento exponencial

Leia mais

3 Tecnologias Relacionadas

3 Tecnologias Relacionadas Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais

Leia mais

1 Introdução. 1 World Wide Web Consortium -

1 Introdução. 1 World Wide Web Consortium - 1 Introdução A internet é uma ampla fonte de disseminação de informações, abrangendo praticamente todas as áreas de conhecimento. A maioria das informações disponíveis hoje para a grande parte dos usuários

Leia mais

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de

Leia mais

4 EduCO: Representando a Informação Contida em Materiais de Aprendizagem

4 EduCO: Representando a Informação Contida em Materiais de Aprendizagem 4 EduCO: Representando a Informação Contida em Materiais de Aprendizagem Conforme descrito no capítulo anterior, é importante representar os conteúdos contidos em materiais de aprendizagem. Neste capítulo

Leia mais

ONTOBRAS Seminário de Pesquisa em Ontologia do Brasil

ONTOBRAS Seminário de Pesquisa em Ontologia do Brasil ONTOBRAS Seminário de Pesquisa em Ontologia do Brasil Uma Análise do Uso da Ontologia IMS LD na Construção de Modelos Conceituais para E-learning Francisco Hélio de Oliveira (IF BAIANO) Laís do Nascimento

Leia mais

Ontologias: definições e conceitos básicos

Ontologias: definições e conceitos básicos Ontologias: definições e conceitos básicos Cristiane Akemi Yaguinuma cristiane_yaguinuma@dc.ufscar.br Orientadora: Profª. Drª. Heloisa Arruda Camargo Co-orientadora: Profª. Drª. Marilde T. P. Santos Setembro/2009

Leia mais

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br

Leia mais

Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA

Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA Alexandre dos Santos Mignon Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Metodologia CommonKADS Utilizando um formalismo para modelar conhecimento Prof. Paulo Martins Engel História dos sistemas de conhecimento Máquinas de busca de propósito geral (1965)

Leia mais

Introdução à Análise e Projeto de Sistemas

Introdução à Análise e Projeto de Sistemas Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise

Leia mais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA ALEX PINHEIRO DAS GRAÇAS

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA ALEX PINHEIRO DAS GRAÇAS UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA ALEX PINHEIRO DAS GRAÇAS SUPORTE AUTOMATIZADO PARA CONSTRUÇÃO DE MODELOS CONCEITUAIS BEM FUNDAMENTADOS VITÓRIA,

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia - CTC Departamento de Informática - DIN Programa de Pós-Graduação em Ciência da Computação PCC ESTÁGIO DE DOCÊNCIA II Disciplina: Engenharia

Leia mais

SABiO: Systematic Approach for Building Ontologies

SABiO: Systematic Approach for Building Ontologies SABiO: Systematic Approach for Building Ontologies Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Preocupações Principais do

Leia mais

UML Unified Modeling Language Linguagem de Modelagem Unificada

UML Unified Modeling Language Linguagem de Modelagem Unificada UML Unified Modeling Language Linguagem de Modelagem Unificada Prof. Gilberto Porto e-mail: porto@gilbertoporto.com.br A linguagem UML n UML (Unified Modeling Language) Linguagem de Modelagem Unificada

Leia mais

Uma Ferramenta baseada em Modelos para Modelagem Conceitual ontologicamente bem fundada

Uma Ferramenta baseada em Modelos para Modelagem Conceitual ontologicamente bem fundada Universidade Federal do Espírito Santo UFES Centro Tecnológico CT Departamento de Informática DI Engenharia de Computação Disciplina: Projeto de Graduação INF02850 Orientador: Prof. Dr. Giancarlo Guizzardi

Leia mais

Interligação de pessoas, habilidades técnicas e fazeres e preservação da memória institucional

Interligação de pessoas, habilidades técnicas e fazeres e preservação da memória institucional Interligação de pessoas, habilidades técnicas e fazeres e preservação da memória institucional Nilson Theobald Barbosa, Fabricia Carla Ferreira Sobral, Linair Maria Campos, Roberto José Rodrigues Assessoria

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br O que é?? 2 A UML

Leia mais

7 Conclusão e Trabalhos Futuros

7 Conclusão e Trabalhos Futuros 7 Conclusão e Trabalhos Futuros Como um novo e poderoso paradigma para o design e a implementação de sistemas de software (Lind, 2001;Wooldridge et al., 2001), o SMA requer metodologias, linguagens de

Leia mais

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Modelagem de dados usando o modelo Entidade- Relacionamento (ER) Modelagem de dados usando o modelo Entidade- Relacionamento (ER) slide 1 Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Tópicos Usando modelo de dados conceituais de alto nível

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas

Leia mais

1.1. Declaração do Problema e Limitações dos Trabalhos Relacionados Um Framework Conceitual para SMAs

1.1. Declaração do Problema e Limitações dos Trabalhos Relacionados Um Framework Conceitual para SMAs 1 Introdução Os sistemas multiagentes (SMAs) estão tendo cada vez mais aceitação no setor da engenharia de software e no meio acadêmico como um paradigma para o desenvolvimento e a criação de sistemas

Leia mais

Figura 2 An ontology spectrum (McGuinness, 2003) Figura 3 - Semantic Continuum 4 (Uschold, 2003).

Figura 2 An ontology spectrum (McGuinness, 2003) Figura 3 - Semantic Continuum 4 (Uschold, 2003). 2 Web Semântica De acordo com Berners-Lee (Berners-Lee, 1998) (Berners-Lee et al., 2001), uma definição da Web Semântica é: uma extensão da Web obtida através da adição de semântica ao atual formato de

Leia mais

4 Processo de Transformação

4 Processo de Transformação Tecnologias Relacionadas 43 4 Processo de Transformação Com a constante mudança nos requisitos (funcionais e não funcionais) do domínio da aplicação, há uma grande necessidade de que os sistemas estejam

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa

Leia mais

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do

Leia mais

MODELO ENTIDADE RELACIONAMENTO

MODELO ENTIDADE RELACIONAMENTO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA SUL DE MINAS GERAIS Câmpus Inconfidentes MODELO ENTIDADE RELACIONAMENTO Sistemas de Informações Geográficas A LEI DO MUNDO...o mundo está cheio de coisas

Leia mais

USANDO ONTOLOGIAS NA CONSTRUÇÃO DE MODELOS MDA (MODEL-DRIVEN ARCHITECTURE)

USANDO ONTOLOGIAS NA CONSTRUÇÃO DE MODELOS MDA (MODEL-DRIVEN ARCHITECTURE) USANDO ONTOLOGIAS NA CONSTRUÇÃO DE MODELOS MDA (MODEL-DRIVEN ARCHITECTURE) Jaguaraci Batista Silva 1 Milton Sampaio 2 Juliana Pezzin 3

Leia mais

Gestão de Ontologias

Gestão de Ontologias Gestão de Ontologias Apresentação de Relatório Técnico Luiz Cruz Silveira Neto Apresentação para Reunião do Grupo de Ontologias (Laboratório de Políticas Públicas Participativas) E-mail: luiznetogi@gmail.com

Leia mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste 6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam

Leia mais

DIAGRAMAS DE CLASSE UML

DIAGRAMAS DE CLASSE UML DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar

Leia mais

Integração Semântica de Regras de Negócio e Modelos Conceituais Ontologicamente Bem-Fundamentados

Integração Semântica de Regras de Negócio e Modelos Conceituais Ontologicamente Bem-Fundamentados Integração Semântica de Regras de Negócio e Modelos Conceituais Ontologicamente Bem-Fundamentados Mauro Lopes Departamento de Informática Aplicada (DIA) Programa de Pós-Graduação em Informática (PPGI)

Leia mais

Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015

Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015 Sergio Roberto de Mello Canovas Carlos Eduardo Cugnasca WTA 2015 1 Introdução Motivação; MDE; Programas Adaptativos. SBMM; Metamodelo para Programas Adaptativos; Ferramenta CASE para Programas Adaptativos;

Leia mais

Castro (2008, p.7) define a palavra ontologia de forma mais simplificada:

Castro (2008, p.7) define a palavra ontologia de forma mais simplificada: Recuperação de Informação baseada em Castro (2008, p.7) define a palavra ontologia de forma mais simplificada: Ela é o resultado da junção de dois termos gregos onta (entes) e logos (teoria, discurso,

Leia mais

UML (Unified Modelling Language)

UML (Unified Modelling Language) UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide

Leia mais

Model Driven Development (MDD)

Model Driven Development (MDD) Model Driven Development (MDD) Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@puro.uff.br Sumário Introdução Desenvolvimento de Software

Leia mais

2 Metodologias para Projetos de Aplicações Hipermidia

2 Metodologias para Projetos de Aplicações Hipermidia 2 Metodologias para Projetos de Aplicações Hipermidia O processo de desenvolvimento de aplicações é o objeto de diversas pesquisas, principalmente no caso das aplicações voltadas para a Internet, que diferem

Leia mais

Arquitetura e Modularização de Ontologias

Arquitetura e Modularização de Ontologias Arquitetura e Modularização de Ontologias Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Arquitetura Ontológica Modularização

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro Web semântica foi projetada como uma evolução da Web atual Informação deve ter um significado bem definido, permitindo uma melhor cooperação entre computadores e pessoas Tim

Leia mais

5 Conclusão e trabalhos futuros

5 Conclusão e trabalhos futuros 5 Conclusão e trabalhos futuros Neste capítulo fazemos uma retrospectiva do trabalho realizado, uma avaliação da proposta de solução de integração de dados ou conhecimentos mostrada na dissertação e também

Leia mais

SFS Simple Feature SQL

SFS Simple Feature SQL SIG SFS Simple Feature SQL Alisson Fernando Coelho do Carmo SIG SIG- -2017 2017 Alisson AlissonFCC FCC Arquitetura integrada SIG SIG- -2017 2017 Alisson AlissonFCC FCC PostGIS + PostgreSQL PostGIS é uma

Leia mais

Classificação automática via ontologias: um estudo preliminar sobre raciocínio humano e lógica descritiva

Classificação automática via ontologias: um estudo preliminar sobre raciocínio humano e lógica descritiva Classificação automática via ontologias: um estudo preliminar sobre raciocínio humano e lógica descritiva Eduardo Ribeiro Felipe 1 Mauricio Barcellos Almeida 1 1 Programa de Pós-Graduação em Gestão & Organização

Leia mais

SIG SIG. GEO-OMT Exercícios. Alisson Fernando Coelho do Carmo

SIG SIG. GEO-OMT Exercícios. Alisson Fernando Coelho do Carmo SIG GEO-OMT Exercícios Alisson Fernando Coelho do Carmo SIG SIG - - 2017 2017 Alisson Alisson FCC FCC PostGIS + PostgreSQL PostGIS é uma extensão espacial para o PostgreSQL que implementa a especificação

Leia mais

Contexto. Motivação. variabilidade. variabilidade

Contexto. Motivação. variabilidade. variabilidade Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade

Leia mais

1 Introdução Motivação

1 Introdução Motivação Introdução 15 1 Introdução Em sua origem, a WWW - World-Wide Web (Berners-Lee, 1994) foi concebida como uma aplicação de hipertexto, visando apresentar informações científicas com referências cruzadas

Leia mais

documentos, apenas indicações de formatação de como o texto deve ser exibido. Por exemplo, imagine o seguinte trecho de documento em HTML:

documentos, apenas indicações de formatação de como o texto deve ser exibido. Por exemplo, imagine o seguinte trecho de documento em HTML: 3 A Web Semântica A web semântica é uma extensão da web atual na qual a informação é publicada conjuntamente com meta-informações explicitando sua semântica, o que é essencial para permitir a interoperabilidade

Leia mais

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

Para os exemplos dos cenários A e B serão utilizadas as classes Movie, Actor, Director e Genre.

Para os exemplos dos cenários A e B serão utilizadas as classes Movie, Actor, Director e Genre. 5 Exemplo O funcionamento do ambiente HyperDE+DR é ilustrado neste capítulo com um exemplo de aplicação para registro e consulta de filmes e séries de TV. Este exemplo foi baseado em uma aplicação chamada

Leia mais

Lógicas de Descrição Visão Geral

Lógicas de Descrição Visão Geral Lógicas de Descrição Visão Geral The Description Logic Handbook Cesar Augusto Tacla UTFPR/CPGEI INTRODUÇÃO 05/11/2013 2 Lógicas de Descrição É uma família de linguagens formais para representação de conhecimentos

Leia mais

Capítulo 5 Modelação do Sistema 1

Capítulo 5 Modelação do Sistema 1 Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos

Leia mais

INF1012 MODELAGEM DE DADOS

INF1012 MODELAGEM DE DADOS INF1012 MODELAGEM DE DADOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 7 Motivação Taxonomia Generalização Exercício 1 Programa 7º Capítulo Motivação Taxonomia

Leia mais

6. Considerações Finais

6. Considerações Finais 146 6. Considerações Finais Neste capítulo apresentamos as conclusões que foram feitas nesta dissertação. Estas conclusões são apresentadas em três 4 seções: Lições Aprendidas, Trabalhos Relacionados,

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro Web semântica foi projetada como uma evolução da Web atual Informação deve ter um significado bem definido, permitindo uma melhor cooperação entre computadores e pessoas Tim

Leia mais

Transformações e mapeamentos da MDA e sua implementação em três ferramentas.

Transformações e mapeamentos da MDA e sua implementação em três ferramentas. Giuliano Luz Pigatti Caliari Transformações e mapeamentos da MDA e sua implementação em três ferramentas. Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título

Leia mais

4 Representando Design Rationale com Kuaba

4 Representando Design Rationale com Kuaba 4 Representando Design Rationale com Kuaba Normalmente, o primeiro passo realizado pelo projetista no design de um artefato de software é a escolha do método ou processo que será usado para guiar o design.

Leia mais

Model Driven Development (MDD)

Model Driven Development (MDD) DCC / ICEx / UFMG Model Driven Development (MDD) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Motivação para MDD Software é caro Os EUA sozinho investem mais de $250 bilhões em software Nos EUA,

Leia mais

Obtendo Interoperabilidade Semântica em Sistemas. Metamorphosis

Obtendo Interoperabilidade Semântica em Sistemas. Metamorphosis Obtendo Interoperabilidade Semântica em Sistemas Heterogéneos de Informação com Metamorphosis Giovani R. Librelotto José Carlos Ramalho Pedro R. Henriques Departamento de Informática Universidade do Minho

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

132 6 Conclusão 6.1. Contribuições da Tese

132 6 Conclusão 6.1. Contribuições da Tese 132 6 Conclusão Esta tese teve como objetivo principal o estudo da aplicação de transformações para manter a rastreabilidade de um sistema de software. Esta abordagem permite a captura automática das informações

Leia mais

Rational Unified Process (RUP)

Rational Unified Process (RUP) Rational Unified Process (RUP) A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi à criadora da Unified Modeling Language (UML), assim como de várias ferramentas que

Leia mais

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos Análise e Projeto Orientados a Objetos Introdução Diretoria Acadêmica de Gestão e Tecnologia da Informação Introdução Os sistemas computacionais adquiriram extrema importância para as organizações públicas

Leia mais

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade

Leia mais

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( ) ELEMENTOS BÁSICOS DA LINGUAGEM JAVA Patricia Della Méa Plentz INE-CTC-UFSC E-Mail: plentz@inf.ufsc.br URL: http://moodle.ufsc.br INE5605-Turma 0238B Sumário 2.1 Classes e Objetos na POO 2.2 2 Revisão da

Leia mais

1 Introdução. pela comunidade de computação em vários países de língua não-inglesa.

1 Introdução. pela comunidade de computação em vários países de língua não-inglesa. 1 Introdução O design 1 de um artefato de software normalmente envolve a compreensão do problema a ser modelado, a identificação de possíveis alternativas de solução para este problema, a análise destas

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Introdução Alguns conceitos importantes Orientação a Objetos Alguns conceitos importantes Programação Estruturada X Programação OO Classes Objetos Construtores e Destrutores

Leia mais

Figura 1. Estrutura do agente de software.

Figura 1. Estrutura do agente de software. 24 2 Conceitos Básicos A engenharia de software baseada em agentes é uma área emergente cujo objetivo é oferecer suporte ao desenvolvimento de sistemas multi-agentes (Garcia et al., 2003; Jennings & Wooldridge,

Leia mais

Lógica de Descrições Visão Geral

Lógica de Descrições Visão Geral Lógica de Descrições Visão Geral The Description Logic Handbook Cesar Augusto Tacla UTFPR/CPGEI Lógica de Descrições É uma linguagem formal para representação de conhecimentos e para raciocínio Permite

Leia mais

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes Richard Werneck de Carvalho Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do título

Leia mais

Tópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos

Tópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos Reuso de Software Aula 20 Tópicos da Aula Desenvolvimento Dirigido por Modelos (MDD) Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com

Leia mais

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer BANCO DE DADOS I Prof. Luiz Antônio Vivacqua C. Meyer Projeto de Banco de Dados Etapas do Desenvolvimento de um Projeto de Sistemas: 1. Levantamento de Requisitos a. Requisitos Funcionais b. Requisitos

Leia mais

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos UEG - Universidade Estadual de Goiás (Câmpus Posse) Disciplina: Análise e Projeto de Sistemas II Turma: 4 Semestre Ano: 2016 Professor: José Ronaldo Leles Júnior O que é? É uma forma de abordar um problema.

Leia mais

MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Prof. Rosemary Melo

MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Prof. Rosemary Melo MODELAGEM DE DADOS Projeto de Banco de Dados Modelo Conceitual Prof. Rosemary Melo OBJETIVOS Conhecer a arquitetura de 3 esquemas (projeto conceitual, lógico e físico) Entender o conceito e o processo

Leia mais

6 Comparação com Trabalhos Relacionados

6 Comparação com Trabalhos Relacionados 6 Comparação com Trabalhos Relacionados Neste capítulo apresentamos uma comparação do trabalho apresentado nesta tese com trabalhos relacionados, no que se refere à representação do conteúdo existente

Leia mais

Web Semântica: Conceitos, Tecnologias e Aplicações

Web Semântica: Conceitos, Tecnologias e Aplicações Web Semântica: Conceitos, Tecnologias e Aplicações Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo Com o crescente número de usuários da Internet, consequentemente o número de informações

Leia mais

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais

Modelos Conceituais de Dados

Modelos Conceituais de Dados Modelos Conceituais de Dados 2. Modelagem Conceitual de Dados Geográficos A partir de idéias conceituais de fenômenos geográficos é possível formalizar a representação do espaço e de propriedades espaciais.

Leia mais

Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG

Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas Prof. Valdemar Neto INF-UFG Agenda Introdução Conceitos Ferramentas Aplicações Perspectivas Engenharia de Software Convencional

Leia mais