POLLYANE DE ALMEIDA LUSTOSA
|
|
|
- Caio Rico Peralta
- 10 Há anos
- Visualizações:
Transcrição
1 POLLYANE DE ALMEIDA LUSTOSA OWL e Protégé: estudo e aplicação de conceitos para exemplificação da definição da camada de esquema da Web Semântica em um determinado domínio Palmas 2003
2 2 POLLYANE DE ALMEIDA LUSTOSA OWL e Protégé: estudo e aplicação de conceitos para exemplificação da definição da camada de esquema da Web Semântica em um determinado domínio Monografia apresentada como requisito parcial para a obtenção do grau de Bacharel em Sistemas de Informação, orientada pela Profª. M.Sc. Parcilene Fernandes de Brito e co-orientada pelo Prof. M.Sc. Fabiano Fagundes. Palmas 2003
3 3 POLLYANE DE ALMEIDA LUSTOSA OWL e Protégé: estudo e aplicação de conceitos para exemplificação da definição da camada de esquema da Web Semântica em um determinado domínio Monografia apresentada como requisito parcial para a obtenção do grau de Bacharel em Sistemas de Informação, orientada pela Profª. M.Sc. Parcilene Fernandes de Brito e co-orientada pelo Prof. M.Sc. Fabiano Fagundes. Aprovada em Dezembro de 2003 BANCA EXAMINADORA Profª. M.Sc. Parcilene Fernandes de Brito Centro Universitário Luterano de Palmas Prof. M.Sc. Fabiano Fagundes Centro Universitário Luterano de Palmas Profª. M.Sc. Deise de Brum Saccol Centro Universitário Luterano de Palmas Palmas 2003
4 4 AGRADECIMENTOS A conclusão de um trabalho de grande relevância é mais um passo dado em direção ao desenvolvimento pessoal. Aprimorar nossa criatividade é querer buscar sempre mais, é procurar e criar novas oportunidades, enfrentando com destreza os desafios que freqüentemente insistem em aparecer. Ao concluir este trabalho de conclusão de curso, tenho imensa vontade de expressar minha gratidão a tantas pessoas que, direta ou indiretamente, me ajudaram a realizá-lo. Pessoas que com simples palavras ou gestos motivaram-me a seguir em frente. Primeiramente, e com muito amor, agradeço a Deus, meu Senhor, que me deu a sabedoria e vontade para buscar e enfrentar novos caminhos, por mais difíceis que tenham parecido ser e nunca ter me deixado desistir no meio deles. Obrigada, Senhor, pela oportunidade de concluir um curso de graduação. Agradeço a meus amados pais, José e Nilda, um casal fantástico que tem me fornecido muito carinho, compreensão e apoio para que eu busque minha felicidade. Por mais que eu procure por belas palavras para expressar toda minha admiração e amor, não seriam suficientes para agradecerem por terem me ensinado, muito bem, a viver. Aos senhores, meus votos de agradecimento por todo acompanhamento durante essa trajetória. São meus bens mais preciosos, juntamente com minhas irmãs, Christiane e Elaine, a quem também dedico este momento de realização, reconhecendo nossa união, mútuo respeito e compreensão. Ao meu cunhado, Leonardo, pelo seu bom humor e brincadeiras e por quem tenho um grande carinho. Dedico, ainda, um agradecimento especial a todos de minha grande família. Agradeço a todos os professores que participaram de minha formação até o meu estágio atual, e ainda aos que virão, pois não pararei por aqui... Em especial, quero agradecer à Professora Parcilene Fernandes de Brito, minha orientadora, e ao Professor Fabiano Fagundes, meu co-orientador, por todas as palavras ditas e que precisavam ser ouvidas. Meu respeito, carinho e grande admiração por vocês! A todos meus amigos, os quais muitos não sabem o quanto são especiais para mim, pelo incentivo e pelos muitos boa sorte! recebidos. A todos que participaram comigo dessa correria, sufoco, troca de experiências e pelos bons momentos de risadas. Muito obrigada!
5 5 SUMÁRIO LISTA DE FIGURAS...7 LISTA DE TABELAS INTRODUÇÃO REVISÃO DE LITERATURA Web Semântica Definição Arquitetura Ontologia Linguagens e Ferramentas para a criação de Ontologias RDF (Resource Description Framework) RDF Schema DAML + OIL OWL (Web Ontology Language) Estrutura da Ontologia OWL Namespaces Cabeçalho OWL Classes Subclasses Propriedades Classes Complexas Protégé Considerações Finais MATERIAIS E MÉTODOS Local e Período Materiais Hardware Software Fontes Bibliográficas Metodologia RESULTADOS E DISCUSSÃO Definição da Ontologia Protégé Plugin OWL Modelagem da Ontologia Definição das Classes Definição das Propriedades Definição de Classes Complexas Instanciação da Ontologia Considerações Finais CONSIDERAÇÕES FINAIS...71
6 6 REFERÊNCIAS BIBLIOGRÁFICAS...73 ANEXOS
7 7 LISTA DE FIGURAS Figura 1 - Representação das tecnologias de apoio ao desenvolvimento da Web Semântica Figura 2 - Arquitetura proposta para a Web Semântica Figura 3 - Exemplo de declaração RDF Figura 4 - Exemplo de código RDF Figura 5 - Representação de classes e recursos Figura 6 - Exemplo de Código RDFS Figura 7 - Exemplo (parcial) de uma ontologia DAML+OIL Figura 8 - Origem da OWL Figura 9 - Exemplo (parcial) dos elementos da OWL Figura 10 - Declaração de namespaces OWL Figura 11 - Exemplo de cabeçalho OWL Figura 12 - Exemplo de representação da classe owl:thing Figura 13 - Declaração de classes OWL Figura 14 - Declaração de subclasses OWL Figura 15 - Declaração de indivíduo OWL (1) Figura 16 - Declaração de indivíduo OWL (2) Figura 17 - Declaração de propriedade utilizando owl:objectproperty Figura 18 - Declaração de propriedade utilizando owl:datatypeproperty Figura 19 - Hierarquia das caracaterísticas de propriedades OWL Figura 20 - Exemplo de representação de transitividade Figura 21 - Sintaxe para declaração de propriedade transitiva (1) Figura 22 - Sintaxe para declaração de propriedade transitiva (2) Figura 23 - Sintaxe para declaração de propriedade simétrica Figura 24 - Sintaxe para declaração de propriedade funcional Figura 25 - Sintaxe para declaração de propriedade inversa Figura 26 - Representação da propriedade inversa Figura 27 - Sintaxe para declaração de propriedade funcional inversa Figura 28 - Sintaxe para declaração de cardinalidade sobre uma propriedade Figura 29 - Sintaxe para declaração de cardinalidade máxima e mínima Figura 30 - Sintaxe para restrição de propriedade utilizando owl:allvaluesfrom Figura 31 - Sintaxe para restrição de propriedade utilizando owl:somevaluesfrom Figura 32 - Sintaxe para restrição de propriedade utilizando owl:hasvalue Figura 33 - Sintaxe para utilização do elemento intersectionof Figura 34 - Representação da Intersecção Figura 35 - Sintaxe para utilização do elemento unionof Figura 36 - Representação da União Figura 37 - Sintaxe para utilização do elemento complementof Figura 38 - Representação do Complemento Figura 39 - Sintaxe para utilização do elemento oneof Figura 40 - Sintaxe para utilização do elemento disjointwith Figura 41 - Representação da Disjunção Figura 42 - Sintaxe para utilização do elemento equivalentclass Figura 43 - Interface da Protégé Figura 44 - Interface Protégé do módulo de manipulação de classes Figura 45 - Interface Protégé do módulo de manipulação de slots... 61
8 Figura 46 - Modelo da ontologia definida Figura 47 - Definição de Classes no Protégé Figura 48 - Declaração de Classes e Subclasses Figura 49 - Definição de Slots no Protégé Figura 50 - Exemplo de utilização da característica inverseof Figura 51 - Exemplo de propriedade funcional Figura 52 - Exemplo de utilização da característica InverseFunctionalProperty e FunctionalProperty Figura 53 - Exemplo de utilização da característica InverseFunctionalProperty Figura 54 Exemplo de utilização da restrição allvaluesfrom Figura 55 - Exemplo de utilização de unionof Figura 56 - Exemplo de utilização de intersectionof Figura 57 - Exemplo de utilização de complementof Figura 58 - Formulário para declaração de instâncias Figura 59 - Declaração de indivíduos
9 9 LISTA DE TABELAS Tabela 1 - Elementos DAML+OIL Tabela 2 - Diferença entre subclassof e equivalentclass... 53
10 10 RESUMO A Web Semântica é uma visão para o futuro da Web em que informações serão dadas explicitamente com seus significados, fazendo com que seja mais fácil para as máquinas processarem automaticamente e integrarem estas informações disponíveis na Web. A construção da Web Semântica envolverá a capacidade do XML (extensible Markup Language) em definir esquemas (estruturas) e a flexibilidade do RDF (Resource Definition Framework) em representar dados. O próximo elemento requerido para a Web Semântica é uma linguagem para ontologias, a qual possa descrever formalmente a semântica de classes e propriedades utilizadas em documentos Web. Neste contexto, diversas linguagens para definição e manipulação de ontologias vêm sendo desenvolvidas. Entre elas, uma de grande expressão é a OWL (Web Ontology Language). A OWL foi apresentada como uma candidata a recomendação da W3C em 18 de agosto de 2003 e está sendo desenvolvida pelo Web Ontology Working Group como parte do projeto da Web Semântica da W3C. O presente trabalho tem a finalidade de expor conceitos envolvendo a Web Semântica e Ontologias, bem como apresentar os principais elementos da OWL para definição de uma ontologia, demonstrando sua utilização em um domínio de um módulo para portais Web de universidades. Palavras-chaves: Web Semântica, Ontologia, OWL, Protégé.
11 11 ABSTRACT The Semantic Web is a vision for the future of the Web where information will be given explicitly with its meanings, thus facilitating for machines to process automatically and to integrate these available information in the Web. The bulding of the Semantic Web will include the capacity of the XML (extensible Markup Language) in to define projects (structures) and the flexibility of RDF (Resource Definition Framework) of representing datas. The next element required for the Semantic Web is a language for ontologies, which can describe formally the semantic of classes and properties used in Web documents. In this context, diverse languages for definition and manipulation of ontologies are being developed. Between them, one of great expression, is OWL (Web Ontology Language). The OWL was presented as a candidate to the recommendation of the W3C in August 18, 2003 and is being developed for the Web Ontology Working Group as part of the project of the Semantic Web of the W3C. The present work has the purpose of displaying the concepts involving the Semantic Web and Ontologies, as well as to present the main elements of the OWL for the definition of an ontology, demonstrating its use in an ontology for the domain of a module to the universities Web sites. Keywords: Semantic Web, Ontology, OWL, Protégé.
12 11 1 INTRODUÇÃO A Web Semântica é uma visão para o futuro da Web em que informações serão dadas explicitamente com seus significados, fazendo com que seja mais fácil para as máquinas processarem automaticamente e integrarem estas informações disponíveis na Web. A construção da Web Semântica envolverá a capacidade do XML [extensible Markup Language] (XML, 2003) em definir esquemas (estruturas) e a flexibilidade do RDF [Resource Definition Framework] (RDF, 2000) em representar dados. O próximo elemento requerido para a Web Semântica é uma linguagem para ontologias, a qual possa descrever formalmente a semântica das informações utilizadas em documentos Web. Para que as máquinas possam realizar um processamento significativo sobre estes documentos, esta linguagem deve superar a semântica básica oferecida pelo RDF Schema [Resource Definition Framework Schema] (OWL, 2003). Para um melhor esclarecimento, reserva-se esse parágrafo para explicitação dos termos sintaxe e semântica que tanto serão mencionados ao decorrer deste trabalho. A sintaxe representa a estrutura dos dados. Por exemplo, o XML determina que seus dados possuam uma estrutura, na qual o dado seja iniciado com uma tag (elemento que o representa) e finalizado com a mesma tag, sendo que esta última é indicada através da precedência de uma barra (/). Consta ainda que as tags devem vir entre os símbolos "<" e ">": <nome> Pollyane </nome> A semântica representa o significado dos dados. E para que esse significado possa ser compreendido pela máquina, é necessário uma detalhada e complexa descrição da representação desses dados através de suas propriedades, conceitos e relacionamentos. A
13 partir disso, vem a necessidade do estudo envolvendo o contexto de ontologias, de forma a se obter um vocabulário padrão para as definições semânticas. Uma ontologia define os termos utilizados para descrever e representar uma área de conhecimento, bem como os relacionamentos entre estes conceitos (OWL, 2003). As ontologias são utilizadas por pessoas, bases de dados e aplicações que precisam compartilhar informações de um domínio. A palavra ontologia está sendo utilizada para descrever artefatos com diferentes níveis de estruturas. Estes variam de simples taxonomias (classificação de palavras) a esquemas de metadados. A Web Semântica necessita de ontologias que especifiquem descrições para os seguintes tipos de conceitos (OWL, 2003): - classes de domínios de interesse; - relacionamentos que possam existir entre essas classes; - propriedades (ou atributos) que as classes podem ter. As ontologias se destacam com relevância na emergente Web Semântica como uma forma de representação da semântica de documentos, de forma a permitir que essa semântica seja utilizada por aplicações Web e agentes inteligentes. Com a utilização de ontologias, as aplicações podem tornar-se mais inteligentes, no sentido em que poderão trabalhar mais no nível conceitual humano (OWL, 2003). As ontologias podem ser úteis à comunidade como uma maneira de estruturar e definir os significados dos metadados que estão sendo coletados e padronizados, provendo serviços mais avançados como buscas mais exatas na Web, agentes inteligentes de software e gerenciamento do conhecimento através de ferramentas automatizadas. Ontologias são pontos críticos para aplicações que querem procurar ou compartilhar informações de diversas comunidades, pois definem formalmente um conjunto de termos que é utilizado para descrever e representar um domínio. Ocorre que um mesmo termo pode ser usado com significado diferente em contextos diferentes e termos diferentes podem ser usados para itens que têm o mesmo significado. O RDF e RDF Schema começam a solucionar este problema permitindo que uma semântica simples seja associada com os termos. Com o RDF Schema, pode-se definir classes que possuem superclasses e várias subclasses, propriedades que podem ter subpropriedades e domínios. Neste sentido, o RDF Schema é uma linguagem simples para definição de ontologias. Entretanto, a fim de se obter interoperabilidade entre os diversos esquemas desenvolvidos de forma autônoma, declarações mais ricas de semânticas são necessárias (OWL, 2003). Por exemplo, o RDF 12
14 Schema não pode especificar que as classes móveis e médicos são distintas, ou que uma string soneto se refere a um poema composto exatamente de quatorze versos, pelo fato de não possuir, em sua sintaxe, propriedades que viabilizem tal inferência. Neste contexto, diversas linguagens para definição e manipulação de ontologias vêm sendo desenvolvidas. Entre elas, uma de grande expressão é a OWL (Web Ontology Language). A OWL foi apresentada como uma candidata a recomendação da W3C em 18 de agosto de 2003 e está sendo desenvolvida pelo Web Ontology Working Group como parte do projeto da Web Semântica da W3C. A OWL habilita a máquina a compreender o dado, ou seja, ela oferece a capacidade de processamento semântico pela máquina, através de sua potencialidade em descrever os relacionamentos e propriedades entre os conceitos de um domínio. Dessa maneira tem-se a seguinte representação das tecnologias de apoio à Web Semântica (OWL, 2003c): 13 Figura 1 Representação das tecnologias de apoio ao desenvolvimento da Web Semântica (OWL, 2003c) XML: fornece uma sintaxe superficial para estruturar os documentos, mas não dispõe, completamente, de uma semântica aos mesmos. XML Schema: é uma linguagem para definir restrições relacionadas às estruturas dos documentos XML. RDF: é um modelo de dados para objetos (recursos) e relações existentes entre eles, fornecendo uma semântica simples para esse modelo, o qual pode ser representado através de uma sintaxe XML.
15 14 RDF Schema: é um vocabulário para descrição de propriedades e classes dos recursos RDF, com uma semântica para definir genericamente a hierarquia de tais propriedades e classes. OWL: estabelece um vocabulário maior para descrição de propriedades e classes: relações entre classes (por exemplo, disjunções), cardinalidades (por exemplo, exatamente um ), igualdades, tipificação rica das propriedades, características mais apuradas das propriedades (por exemplo, transitividade) e enumerações de classes. A OWL, juntamente com o padrão RDF, pois baseia-se em sua sintaxe, expressa a parte semântica das informações e a XML, DTD e XML Schemas ficam responsáveis pela estruturação dos dados, pela sua parte sintática. A OWL tem a intenção de prover uma linguagem que pode ser utilizada para descrever as classes e suas relações que são inerentes a aplicações e documentos Web. O presente trabalho tem a finalidade de expor conceitos envolvendo a Web Semântica e Ontologias, bem como apresentar os principais elementos da OWL para definição de uma ontologia, demonstrando sua utilização em uma ontologia para o domínio de um módulo de portais Web para universidades.
16 15 2 REVISÃO DE LITERATURA Para que os propósitos desse trabalho fossem atingidos, foram realizados pesquisas e estudos envolvendo conceitos e ferramentas referentes à Web Semântica, Ontologias e OWL (Web Ontology Language). Parte desses estudos foram retirados de (Lustosa, 2003) e serão apresentados no decorrer dessa seção, de modo que forneçam uma fundamentação teórica para uma melhor compreensão do objetivo maior desse trabalho: a apresentação da linguagem OWL e sua aplicação sobre um domínio, abordando a camada de esquema da arquitetura da Web Semântica, demonstrada nas seções a seguir. 2.1 Web Semântica A Web é um grande repositório de dados, que apresenta características particulares no que se refere a meios de acesso e estrutura. Seus dados não possuem uma estrutura previamente definida e não são fortemente tipados, sendo, assim, denominados dados semi-estruturados (Mello, 2000). Com o seu crescente avanço e a diversificada forma de representação de seus dados, torna-se cada vez mais difícil a recuperação das informações por ela dispostas. O seu uso intensivo ligado ao seu crescente desenvolvimento tem tornado a Web um atraente campo de pesquisa e muitos projetos referentes a ela têm sido criados. Essa deficiência, na Web, quanto a disponibilização de dados heterogêneos e sua despadronização e a elevada quantidade de informações resultantes de consultas que não atendem as reais necessidades dos usuários levou a necessidade de se buscar a compreensão semântica do conteúdo dos documentos pela própria máquina para o processamento dessas informações: a Web Semântica (SW, 2001).
17 Definição A Web Semântica é a evolução da Web obtida via adição de semântica ao formato atual de representação de dados. A Web Semântica apresentará uma estrutura que possibilitará a compreensão e o gerenciamento dos conteúdos armazenados na Web, independente da forma em que estes se apresentem, seja texto, som, imagem ou gráficos. Essa compreensão será possível a partir da valoração semântica desses conteúdos e através de agentes que serão programas coletores de conteúdo advindos de fontes diversas capazes de processar as informações e permutar resultados com outros programas (Berners-Lee, 2001). Assim, ela visa fornecer estruturas e semântica ao conteúdo das páginas Web, criando um ambiente onde agentes de software e usuários possam trabalhar cooperativamente. A Web Semântica é a representação dos dados na Web. É um esforço colaborativo conduzido pela W3C com participação de um grande número de pesquisadores. É baseada no RDF (Resource Description Framework), integrada a uma variedade de aplicações usando XML (extensible Markup Language) para a sintaxe e os URIs (Universal Resource Identifier) para nomeações (SW, 2001). A Web Semântica visa o discernimento pela própria máquina das informações contidas nos documentos Web. Atualmente, essa compreensão é realizada pelo usuário, onde ele escolhe e define o que verdadeiramente lhe interessa. Com a utilização de metadados é possível a descrição e uma melhor definição semântica das informações, gerando uma recuperação com maior qualidade e precisão. Assim, diversas tecnologias, como a XML e a RDF, vêm sendo trabalhadas com o objetivo de promover o intercâmbio de metadados desenvolvidos de forma independente, de modo que eles possam ser compreendidos pelo computador, sem o auxílio do discernimento humano. A arquitetura RDF consiste em uma estrutura básica para o processamento de metadados, provendo interoperabilidade entre aplicações que trocam informações, compreendidas pela máquina e entre si na Web (RDF, 2000) e descrevendo formalmente um determinado recurso da Web através de seus metadados. Através da criação de padrões, arquiteturas de metadados, ontologias, dentre outras, projetos, como o da Web Semântica (SW, 2001) conduzido pela W3C, têm sido realizados no sentido de buscar a otimização da integração, intercâmbio e compreensão semântica das informações Web. Atualmente, a Web Semântica é um dos objetivos a longo prazo da W3C. Ela pode trazer uma série de otimizações em diversos serviços já oferecidos na Web, como: no comércio
18 eletrônico, com o desenvolvimento de eficientes catálogos eletrônicos; em sites não-comerciais; em bibliotecas digitais e mecanismos de buscas. Assim, a Web Semântica poderá fornecer pesquisas mais apuradas e eficientes, através de mecanismos de buscas, conforme as necessidades do usuário e a disponibilidade das fontes de dados. Entretanto, a obtenção da concretização da Web Semântica ainda precisa ultrapassar grandes problemas, principalmente, como: a heterogeneidade semântica, a qual dificulta a interoperabilidade de modo que haja a cooperação entre múltiplas fontes de informação, apresentando diferenças sintáticas, semânticas e estruturais. A proposta para a Web Semântica é representada por uma arquitetura composta por: uma camada de estrutura, uma camada de esquema e uma camada lógica. Esta arquitetura é apresentada e mais detalhada na próxima seção Arquitetura A proposta para o desenvolvimento da Web Semântica é sugerida através da arquitetura (Berners-Lee, 2001) dividida em camadas representada pela Figura 2. Figura 2 - Arquitetura proposta para a Web Semântica (Berners-Lee, 2001) A camada de estrutura, primeira camada da arquitetura proposta (Figura 2), representa o primeiro passo para a definição da Web Semântica, que é a representação do conhecimento (Berners-Lee, 2001). A camada de estrutura é o nível mais baixo, em que se
19 realiza a estruturação dos dados e a definição dos mesmos, a qual é dada através da explicitação de seus significados. O recurso da camada de esquema, a ontologia, fornece um conjunto de regras que define hierarquia, relacionamentos e restrições entre termos, representando de forma completa um domínio, independente da linguagem utilizada. A ontologia é descrita com maiores detalhes na seção 2.2. E, por fim, a camada lógica tem a função de definir um conjunto de regras de inferências, além dos próprios mecanismos que as realizarão, atribuindo-as aos documentos que contém dados. As regras de inferência oferecem aos agentes computacionais o poder de racionar sobre as estruturas de dados que estão expressas na camada de estrutura, a partir das relações entre esses dados definidas na camada de esquema Ontologia O termo ontologia é proveniente da Filosofia, sendo empregado como a representação da existência através de uma explicação sistemática (Novello, 2002). Na área da Informática, mais precisamente em Inteligência Artificial, ela é utilizada como a especificação explícita de uma conceitualização (Grubber, 1999) (Guarino, 1998). Assim, a ontologia é uma descrição explícita de conceitos e relações referentes a determinado domínio. Essa conceitualização refere-se ao conjunto de conceitos, relações, objetos e restrições que são definidos para um modelo semântico de algum domínio de interesse. Muitos projetos na área de Inteligência Artificial vêm explorando o uso de ontologias. Na área da Inteligência Artificial, vários conceitos para o termo ontologia surgiram: Uma ontologia é uma especificação explícita de uma conceitualização. Uma ontologia é uma hierarquia estruturada de um conjunto de termos para descrever um domínio que possa ser usada como estrutura de uma base de conhecimento. Ela fornece os meios para descrever explicitamente a conceitualização do conhecimento representado em uma base de conhecimento. (Grubber, 1999)
20 Uma ontologia é definida como uma especificação formal de uma conceitualização compartilhada. (Borst, 1997) 19 Ontologias fornecem um vocabulário comum de uma área e define, com níveis distintos de formalismos, o significado dos termos e dos relacionamentos entre eles. (Gómez-Pérez, 1999) Ontologias são termos e relações que compreendem o vocabulário de uma área, como também as regras para combinar estes termos e relações para definir extensões deste vocabulário. (Novello, 2002) Essas definições foram melhor explicadas por (Studer, 1998) e (Abel, 2001): A conceitualização, para a Ontologia, refere-se a um modelo abstrato de algum fenômeno do mundo, por terem sido identificados os conceitos relevantes para aquele fenômeno. Explícito significa que o conjunto de conceitos utilizados e as restrições aplicadas são previamente e explicitamente definidas. Formal refere-se ao fato de que se espera que uma ontologia seja processável por um computador, o que exclui definições em linguagem natural, por exemplo. Finalmente, uma ontologia é compartilhada porque descreve um conhecimento consensual, que é utilizado por mais de um indivíduo e aceito por um grupo. A partir da apresentação destes vários conceitos, pode-se inferir que uma ontologia é a representação formal de um domínio, através da explicitação dos conceitos e relacionamentos, bem como as regras que envolvem essas relações do referido domínio. As ontologias expressam o formalismo dos conceitos e das relações acerca de um domínio, de modo que possa viabilizar a inferência, pela máquina, da semântica aos significados das informações. Uma ontologia requer o uso de um vocabulário específico para descrever uma realidade, de forma que o domínio de conhecimento seja definido em um nível genérico (Novello, 2002). Essa definição é realizada através de uma especificação formal acerca do domínio, de modo que com a utilização de uma ontologia seja possível o compartilhamento e reuso de conhecimento. Assim, pode-se ver a ontologia como uma maneira de
21 explicitação e descrição de conceitos, e seus relacionamentos, referentes a uma determinada área de conhecimento. Numa ontologia, existem, geralmente, três tipos de informação (Bézivin, 1998), de modo a facilitar a compreensão dos diferentes níveis de abstração: terminológica: é a camada de definição da ontologia, onde se representa o conjunto de conceitos e das relações do domínio; assertiva: denominada de camada de axiomas da ontologia, constitui-se do conjunto de proposições verdadeiras que se aplicam aos conceitos e relações; pragmática: refere-se à camada de ferramentas, a forma de expressar e apresentar os conceitos e relações que foram definidos nas camadas anteriores. A ontologia formaliza o conhecimento através da utilização de cinco componentes (Novello, 2002): 1. Conceitos: são a representação de algo, ou de qualquer coisa, acerca do domínio em questão. Sendo que as propriedades de um conceito são denominadas de atributos. Por exemplo, um conceito poderia ser uma pessoa, tendo como atributo a idade. 2. Relacionamentos: são as integrações entre os conceitos do domínio. Nessas relações, podem-se definir as cardinalidades. Por exemplo, pode-se ter um relacionamento entre pessoa e universidade, através da relação estuda em. 3. Funções: são relações especiais onde o enésimo elemento da relação é único para os n- 1 elementos precedentes. As funções são definidas formalmente como: F: C1 x C2 x C3 x... x Cn-1 Cn 4. Axiomas: elas modelam sentenças que são sempre verdadeiras. Por exemplo, define-se que a idade de uma pessoa corresponde ao ano atual subtraindo a data de seu nascimento. 5. Instâncias: representam os elementos de uma ontologia, ou seja, são as representações dos conceitos e relações que foram estabelecidas pela ontologia. O desenvolvimento de uma ontologia pode ser resumido pelos seguintes princípios básicos (Novello, 2002): clareza e objetividade: os conceitos devem ser definidos de forma clara e acompanhados de documentação em linguagem natural; padronização dos nomes; uma definição deve exprimir as condições necessárias e suficientes para expressar um termo, indo além das necessidades circunstanciais de uma aplicação; 20
22 coerência, de modo que se permita originar inferências que sejam consistentes com as definições declaradas; permissão da declaração de novos termos sem que seja necessário a revisão dos termos já existentes; possibilidade da definição de tão poucas suposições quanto possíveis sobre o mundo a ser modelado, permitindo que as especializações e instanciações da ontologia sejam definidas com liberdade; as classes definidas devem ser independentes, sem sobreposição de conceitos; modularidade; representação dos conceitos similares seguindo as mesmas primitivas, de modo que sejam agrupados numa mesma ordem semântica. Dependendo da aplicabilidade, uma ontologia pode ser descrita em distintos níveis de abstração. Conforme (Novello, 2002), uma ontologia pode ser classificada em três níveis: ontologia de nível de topo: descrição de conceitos gerais e independentes, sem se restringir a um domínio específico; ontologia de domínio e de tarefa: respectivamente, é a descrição dos conceitos referentes a um domínio, e de uma tarefa genérica ou específica dos conceitos definidos na ontologia de nível de topo. ontologia de aplicação: descrição dos conceitos dependendo de uma ontologia de domínio e de uma ontologia de tarefa particulares, que são muitas vezes especializações das ontologias de domínio e de tarefa relacionadas. Assim, pode-se dizer que a ontologia visa desenvolver um conjunto de regras que possibilitem a inferência de forma que a máquina possa, através do acesso a essas regras e a uma coleção de dados e metadados, abstrair um significado semântico das informações disponibilizadas na Web. O uso de ontologias torna possível definir uma infra-estrutura para integrar sistemas inteligentes no nível do conhecimento (Novello, 2002). Resumidamente, a utilização de ontologias oferece vantagens como: possibilitar o compartilhamento e a interoperabilidade do conhecimento entre os domínios; estruturar o domínio de forma que se permita sua compreensão com maior clareza e objetividade; 21
23 permitir a reutilização de conceitos em domínios. A vantagem da utilização de uma ontologia é de se lidar com conceitos, representando-os formalmente, e de se livrar de problemas inerentes ao vocabulário da linguagem natural (Bézivin, 1998). Ou seja, com a utilização de ontologias, é possível, então, evitar questões como palavras com significação aproximada e utilização de outras expressões em substituição de determinada palavra, representando o mesmo significado Linguagens e Ferramentas para a criação de Ontologias Nos últimos anos, diversas linguagens para definição de ontologias vêm sendo desenvolvidas, como por exemplo, a OIL (Ontology Inference Layer) (OIL, 2000), SHOE (Simple HTML Ontology Extensions) (SHOE, 2000), XOL (XML-based Ontology Exchange Language) (XOL, 1999), DAML (DARPA Agent Markup Language) (DAML, 2003), DAML+OIL (DAML+OIL, 2001), OWL (OWL, 2003), dentre outras. A principal característica dessas linguagens está na capacidade de representar ontologias em RDF (RDF, 2000) e RDFSchema(RDFS, 2003), arquitetura já consagrada pela W3C (W3C, 2003) para interoperabilidade de dados na Web (Moura, 2001). Com a popularização da construção de Ontologias, motivou-se o desenvolvimento de ambientes que permitissem a execução dessa tarefa. A escolha por uma destas ferramentas que seja mais adequada à criação de uma ontologia dependerá da experiência do usuário e do estágio de desenvolvimento dessa ontologia (Duineveld, 1999). Dentre as ferramentas mais citadas na literatura, que estão associadas a criação e manipulação de ontologias, estão a OILEd (OILEd, 2003), OntoEdit (OntoEdit, 2003) e Protégé (Protégé, 2003). A ferramenta para edição de ontologias, Protégé, foi criada pela Universidade de Stanford, e continua em constante desenvolvimento e atualizações. Visto que este trabalho utiliza a Protégé para definição de uma ontologia para um domínio específico, abordado a partir da seção 4, foi-lhe dedicada uma seção, a 2.7, para apresentar uma maior explanação acerca da mesma. 2.3 RDF (Resource Description Framework) O modelo de dados do RDF (RDF, 2000) fornece uma arquitetura para o processamento e o intercâmbio de metadados. Ele pode especificar o relacionamento entre classes e fornecer
24 interoperabilidade estrutural, entretanto não fornece mecanismos para a declaração de propriedades e relacionamentos entre essas propriedades e outros recursos (RDF, 2000). Estas características faltantes podem ser definidas com a aplicação do RDF Schema, descrito na seção 2.4. O modelo básico de dados RDF é composto por (RDF, 2000) : recurso (resource): qualquer entidade que pode ser referenciada através de um URI. O URI (Universal Resource Identifier) é um identificador de recursos universal, ou seja, ele pode ser um sujeito, objeto ou uma URL (Uniform Resource Locator) que serve para identificar unicamente determinado recurso (Berners-Lee, 2001). A URL, localizador universal de recursos, é o tipo mais comum e utilizado de um URI, a qual define a localização de um determinado recurso em algum lugar na Web; propriedade (property): é um atributo ou característica que representa um recurso, ou ainda, o relacionamento entre recursos; declaração (statement): corresponde a uma propriedade ou valor dessa propriedade associada a um recurso específico. Uma declaração é dividida em três partes: sujeito, predicado e objeto. Esquematicamente pode-se dizer que (Ciuffo, 2002): 23 Declaração = Recurso (sujeito) + Propriedades do recurso(predicado) + valor da propriedade (objeto) A Figura 3 apresenta a declaração: Pollyane é webdesigner do site Figura 3 - Exemplo de declaração RDF A sintaxe RDF utiliza a linguagem XML e namespaces (URI) para associar cada propriedade com o esquema que a define. A seguir, um exemplo de um código RDF:
25 24 01 <?xml version='1.0' encoding='iso '?> <rdf:rdf 04 xmlns:rdf = " 05 xmlns:rdfs = " 06 xmlns:equipe = " <rdf:description rdf:about=" <equipe:webdesigner rdf:id=" 11 <equipe:nome>pollyane Lustosa</equipe:nome> 12 <equipe: >[email protected]</equipe: > 13 </equipe:webdesigner> </rdf:description> </rdf:rdf> Figura 4 - Exemplo de código RDF O código é iniciado com a declaração do prólogo, indicando que o RDF é baseado na XML. O bloco que compreende da linha 03 à linha 17, especificado por <rdf:rdf>... </rdf:rdf>, define que é uma expressão RDF e utiliza o vocabulário definido pelos namespaces especificados nas linhas 4, 5 e 6, sendo que as linhas 4 e 5 referem-se, respectivamente, à sintaxe padrão do RDF e RDF Schema, e a linha 6 a um vocabulário criado especificamente para fornecer informações sobre a equipe de desenvolvimento de um site. A tag <description> (linha 08) é utilizada para referenciar o recurso da Web que terá seus metadados descritos. As linhas de 10 à 13 utilizam o prefixo de namespace equipe para descrever informações referentes ao webdesigner, sendo que os elementos utilizados para essa descrição (nome e ), precisam estar em conformidade com o vocabulário descrito no namespace Um namespace é um mecanismo oferecido pela linguagem XML que permite que o desenvolvedor possa especificar nomes de elementos comuns a determinados domínios de maneira única na Web (Ciuffo, 2002). A utilização de namespaces possibilita referenciar a qual vocabulário pertence determinado nome, de forma a não se ter uma especificação ambígua no documento. Por exemplo, a palavra título, a ser utilizada em um documento, poderá referenciar o nome de um livro ou um pronome de tratamento a ser usado para determinada pessoa (Sr., Sra., Dr., etc.). Para identificar a qual dessas referências a palavra título indicará, faz-se a utilização do namespace, de forma a designar se ele pertence e está referenciando o livro ou a pessoa.
26 RDF Schema As propriedades RDF podem ser vistas como atributos dos recursos e relacionamentos entre recursos. Entretanto, o RDF não fornece mecanismos para descrever essas propriedades, nem para definir as relações entre elas e outros recursos (RDFS, 2003). O RDF Schema (RDFS) provê uma descrição do vocabulário RDF, definindo classes e propriedades que podem ser utilizadas para descrever classes, propriedades e recursos. O RDF Schema é uma extensão do RDF e oferece mecanismos para descrição de recursos e relacionamentos entre eles (RDF, 2000). O objetivo é definir regras de forma a garantir que os dados estejam de acordo com elas (Ciuffo, 2002). O RDF Schema pode ser entendido como um dicionário que descreve os termos que poderão ser declarados em especificações RDF. O RDFS é especificado como um conjunto de classes, propriedades e restrições entre seus relacionamentos, sendo que essas classes são organizadas de forma hierárquica. Os recursos podem ser instâncias de uma ou mais classes, representados através da propriedade rdf:type. A figura a seguir (RDF, 2000) representa as classes, propriedades e recursos que são utilizadas no RDF Schema. Figura 5 - Representação de classes e recursos Conforme a figura anterior, as classes (e subclasses) são demonstradas por um retângulo com cantos arredondados, os recursos por círculos pretos e as setas indicam qual é a classe que define o referido recurso.
27 Para exemplo do uso de classes, propriedades e recursos do RDFS, segue o código representado pela Figura 6: 26 <?xml version='1.0' encoding='iso '?> <rdf:rdf xmlns:rdf = " xmlns:rdfs = " <rdf:description ID="Animal"> resource=" <rdfs:subclassof rdf:resource=" </rdf:description> <rdf:description ID="Anfibio"> resource=" <rdfs:subclassof rdf:resource="#animal"/> </rdf:description> <rdf:description ID="Sapo"> resource=" <rdfs:subclassof rdf:resource="#anfibio"/> </rdf:description> <rdf:description ID="Mamifero"> resource=" <rdfs:subclassof rdf:resource="#animal"/> </rdf:description> </rdf:rdf> Figura 6 - Exemplo de Código RDFS A figura 6 representa a definição de classes para um esquema Animal, através da declaração de classes e subclasses. O vocabulário do RDF Schema é definido através do namespace xmlns:rdfs = " 2.5 DAML + OIL A DAML + OIL é uma linguagem de marcação semântica para recursos Web, a qual estende os padrões RDF e RDF Schema (DAML+OIL, 2001). DAML + OIL lançada em março de 2001 é uma extensão de sua versão anterior lançada em dezembro de 2000 (DAML+OIL, 2001). Conforme o seu próprio nome já indica, ela surgiu da combinação de
28 outras duas linguagens, DAML-ONT e OIL, resultando em uma linguagem com uma semântica mais bem definida. Uma ontologia DAML+OIL é composta por vários componentes, sendo alguns opcionais e outros que podem se repetir por diversas vezes durante a definição da mesma. Uma ontologia DAML+OIL consiste de zero ou mais cabeçalhos (headers), seguidos de zero ou mais classes (representadas pelo elemento class), propriedades (property) e instâncias (instances) (DAML+OIL, 2001). Um cabeçalho de uma ontologia DAML+OIL pode ser da seguinte forma: 27 <daml:ontology rdf:about= > <daml:versioninfo>$id: NOTE-daml+oil-reference html, v /12/18 22:12:09 connolly Exp $ </daml:versioninfo> <rdfs:comment>um exemplo de Ontologia</rdfs:comment> <daml:imports rdf:resource= /> </daml:ontology> A ontologia pode ter zero ou mais versioninfo e imports. O elemento que representa as informações sobre versões (versioninfo) geralmente contém strings que fornecem tais informações sobre a versão. Este elemento não influencia no significado lógico da ontologia (DAML+OIL, 2001). Cada expressão definida com imports está referenciando outra ontologia DAML+OIL que contém definições que se aplicam ao recurso DAML+OIL corrente. Cada referência consiste em uma especificação de um URI, o qual referencia o local de onde a ontologia deve ser importada. As declarações de imports são consideradas transitivas (DAML+OIL, 2001), ou seja, se uma ontologia X importa uma ontologia Y, e por sua vez, essa ontologia Y importa uma Z, então a ontologia X está importando ambas ontologias, Y e Z. Cada expressão class referencia o nome de uma classe (sendo identificada por uma URI), a classe que contém os elementos enumerados, a classe de todas instâncias que satisfazem a propriedade de restrição ou a classe que é a combinação booleana de tais expressões. Dois nomes de classes já são predefinidos, daml:thing e daml:nothing. Todo objeto é um membro de daml:thing e não é membro de daml:nothing. Desse modo, toda classe é uma subclasse de daml:thing e daml:nothing é uma subclasse de toda classe. O elemento daml:oneof contém uma lista dos objetos que são suas instâncias. A utilização de oneof define que uma classe contém exatamente a referida lista de elementos (DAML+OIL, 2001):
29 28 <daml:oneof parsetype= daml:collection > <daml:thing rdf:about= #Europa /> <daml:thing rdf:about= #Africa /> <daml:thing rdf:about= #America /> <daml:thing rdf:about= #Asia /> <daml:thing rdf:about= #Oceania /> </oneof> As instâncias das classes e de propriedades são escritas de acordo com a sintaxe RDF e RDF Schema, por exemplo (DAML+OIL, 2001): <continente rdf:id= Asia /> <rdf:description rdf:id= Asia > > <rdfs:class rdf:about= #continente /> </rdf:type> </rdf:description> <rdf:description rdf:id= India > <faz_parte_de rdf:resource= #Asia /> </rdf:description> A DAML+OIL faz uso de vários tipos de elementos que auxiliam na definição dos conceitos e relações pertencentes ao domínio da ontologia. Um índice desses elementos é listado a seguir (DAML+OIL, 2001): Tabela 1 - Elementos DAML+OIL Elementos DAML+OIL cardinality cardinalityq Class complementof Datatype DatatypeProperty DatatypeRestriction Datatype value differentindividualfrom disjointunionof disjointwith domain equivalentto hasclass hasclassq hasvalue imports intersectionof inverseof mincardinalityq ObjectClass ObjectProperty ObjectRestriction oneof onproperty Ontology Property range Restriction sameclassas sameindividualas samepropertyas subclassof subpropertyof toclass transitiveproperty unambigousproperty unionof
30 29 maxcardinality maxcardinalityq mincardinality uniqueproperty versioninfo Na Figura 7 é apresentado um código (parcial) (DAML+OIL, 2001) de uma ontologia definida em DAML+OIL, utilizando alguns dos elementos relacionados na tab ela <rdf:rdf 2. xmlns:rdf =" 3. xmlns:rdfs=" 4. xmlns:daml=" 5. xmlns:xsd =" 6. xmlns:dex =" /daml+oil-ex#" 7. xmlns:exd =" /daml+oil-ex-dt#" 8. xmlns =" /daml+oil-ex#" 9. > 10. <daml:ontology rdf:about=""> 11. <daml:versioninfo>$id: Overview.html,v /12/18 21:48:05 connolly Exp $</daml:versioninfo> 12. <daml:imports rdf:resource=" 13. </daml:ontology> 14. <daml:class rdf:id="animal"> 15. <rdfs:label>animal</rdfs:label> 16. <rdfs:comment> 17. This class of animals is illustrative of a number of ontological idioms. 18. </rdfs:comment> 19. </daml:class> 20. <daml:class rdf:id="male"> 21. <rdfs:subclassof rdf:resource="#animal"/> 22. </daml:class> 23. <daml:class rdf:id="female"> 24. <rdfs:subclassof rdf:resource="#animal"/> 25. </daml:class> 26. <daml:class rdf:id="woman"> 27. <rdfs:subclassof rdf:resource="#female"/> 28. </daml:class> 29. <daml:class rdf:id="man"> 30. <rdfs:subclassof rdf:resource="#male"/> 31. </daml:class> 32. <daml:datatypeproperty rdf:id="shoesize"> 33. <rdfs:comment> 34. shoesize is a DatatypeProperty whose range is xsd:decimal. 35. shoesize is also a UniqueProperty (can only have one shoesize) 36. </rdfs:comment>
31 rdf:resource=" 38. <rdfs:range rdf:resource=" 39. </daml:datatypeproperty> 40. <daml:datatypeproperty rdf:id="age"> 41. <rdfs:comment> 42. age is a DatatypeProperty whose range is xsd:integer. 43. age is also a UniqueProperty (can only have one age) 44. </rdfs:comment> 45. rdf:resource=" /> 46. <rdfs:range rdf:resource=" eger"/> 47. </daml:datatypeproperty> 48. <daml:uniqueproperty rdf:id="hasmother"> 49. <rdfs:range rdf:resource="#female"/> 50. </daml:uniqueproperty> 51. <Man rdf:id="adam"> 52. <rdfs:label>adam</rdfs:label> 53. <rdfs:comment>adam is a man.</rdfs:comment> 54. <age><xsd:integer rdf:value="17"/></age> 55. <shoesize><xsd:decimal rdf:value="15.5"/></shoesize> 56. </Man> 57. </rdf:rdf> Figura 7 - Exemplo (parcial) de uma ontologia DAML+OIL (DAML+OIL, 2001) Primeiramente, são definidos, nas linhas de 1 a 9 (Figura 7), os namespaces utilizados na ontologia. Da linha 10 a 13 é declarado o cabeçalho da ontologia através dos elementos <daml:ontology>...</daml:ontology>. Em seguida, são determinadas as classes presentes na ontologia (Animal, Male, Female, Woman e Man) através de <daml:class>...</daml:class>, sendo também indicado por <daml:subclassof>... </daml:subclassof> qual é subclasse de outra classe. Nas linhas 32 e 40 são definidas propriedades associadas ao seu tipo de dado, ou seja, está sendo determinado que age (idade) e shoesize (tamanho dos sapatos) são valores inteiros e decimais, respectivamente, e que são UniqueProperty (propriedades únicas, ou seja, somente existe uma idade e um tamanho de sapatos associados a cada pessoa). Essas definições estão sendo referenciadas pelo elemento <daml:datatypeproperty>... </daml: DatatypeProperty>. Na linha 48 é definida uma propriedade hasmother, na qual é determinado através de range que esta propriedade somente pode conter valores femininos (Female). E, por fim, nas linhas de 51 a 56 é definido um objeto da classe Man, Adam, que é um homem com idade 17 e tamanho dos sapatos de 15.5.
32 OWL (Web Ontology Language) A construção da Web Semântica envolverá a capacidade do XML (XML, 2003) em definir esquemas (estruturas) e a flexibilidade do RDF (RDF, 2000) em representar dados. Inicialmente, sobre o RDF, é requerida para a Web Semântica uma linguagem para ontologias, de modo que se descreva formalmente os significados das terminologias utilizadas em documentos Web. A OWL (Web Ontology Language) é candidata à crescente lista de recomendações da W3C para o desenvolvimento da Web Semântica, no que refere-se à definição de ontologias (OWL, 2003). A OWL pode ser utilizada para explicitar representações do significado de termos em vocabulários e o relacionamento entre estes termos. Esta representação de termos e de seus relacionamentos é a chamada, e já mencionada, ontologia. Para que a Web Semântica possa oferecer a interoperabilidade dos dados, duas condições são necessárias (OWL, 2003c): 1. Adoção de uma sintaxe comum: habilitando as aplicações a analisarem sintaticamente os dados. O XML provê esta característica de uma sintaxe comum. 2. Adoção de meios para a compreensão da semântica: habilitando as aplicações a utilizarem o dado. A OWL provê uma forma padrão de expressar a semântica. O problema chave em conseguir-se interoperabilidade está em ser capaz de reconhecer que as duas partes do dado estão falando sobre a mesma coisa, mesmo que estejam utilizando diferentes terminologias. A OWL pode ser utilizada como uma ponte entre terminologias distintas, de modo que se possa compreender e obter a interoperabilidade dos dados (OWL, 2003c). A sintaxe da OWL é baseada no XML e RDF, fazendo com que ela seja maximamente compatível com o RDF e RDF Schema. A OWL também incorpora uma revisão da linguagem DAML + OIL, acrescentada de características aprendidas no desenvolvimento e nas aplicações da DAML + OIL. Sua origem é basicamente a representada pela Figura 8 (OWL, 2003c):
33 32 Figura 8 Origem da OWL A OWL é uma linguagem de definição semântica para publicação e compartilhamento de ontologias na Web. Ela é desenvolvida como uma extensão do vocabulário RDF e é derivada da DAML+OIL. A OWL tem mais facilidade para expressar a semântica que o RDF e RDF Schema, superando estas linguagens em sua habilidade para interpretar de forma legível o conteúdo na Web (OWL, 2003). Dessa forma, como espera-se que as máquinas executem um raciocínio lógico dos documentos Web, a linguagem deve ir além da semântica básica oferecida pelo RDF Schema (OWL, 2003). A OWL é um conjunto de elementos e atributos XML, com significado padronizado, que são utilizados para definir termos e seus relacionamentos. Ela estende o RDF Schema, ou seja, torna-o mais amplo, acrescentando outros elementos, como, por exemplo, equivalentclass e TransitiveProperty (Figura 9). Figura 9 - Exemplo (parcial) dos elementos da OWL
34 A OWL é utilizada para representar explicitamente o conjunto de termos de um vocabulário e os relacionamentos entre estes termos. É uma linguagem para Ontologias Web que é desenvolvida para a utilização em aplicações que necessitam processar o conteúdo de informações em vez de somente apresentá-las aos usuários, ou seja, ela é pretendida para ser utilizada quando informações contidas em documentos precisam ser processadas por aplicações, ao contrário do que ocorre quando estes conteúdos somente são apresentados aos humanos. A OWL facilita à máquina uma maior legibilidade ao conteúdo da Web que aquelas suportadas pelo XML (XML, 2003), RDF (RDF, 2000) e RDF Schema (RDFS, 2003), por fornecer um vocabulário adicional juntamente com uma semântica formal. Ela possui três sub-linguagens, que foram projetadas conforme o grupo de implementadores e usuários: OWL Lite, OWL DL e OWL Full (OWL, 2003), ou seja, dependendo da aplicabilidade e da definição da ontologia, uma dessas sublinguagens se aplica melhor. A OWL Lite é um subconjunto da OWL DL, que, por sua vez, é um subconjunto da OWL Full. A OWL Lite oferece um suporte mais básico aos usuários que necessitam apenas classificar uma hierarquia de classes e definições simples de propriedades. Por exemplo, a OWL Lite possibilita restringir cardinalidades para propriedades somente com os valores 0 ou 1, enquanto que as OWL DL e Full não possuem essa restrição. Dessa forma, ela facilita o desenvolvimento de ferramentas que lhe dêem suporte, visto que não apresenta grande complexidade para a implementação de suas funcionalidades. A OWL DL fornece suporte aos usuários que necessitam de uma expressividade maior para o processamento computacional. A OWL DL inclui todas as construções da linguagem OWL, assim como a OWL Full. As duas diferem quanto às restrições de tipos, ou seja, a OWL DL não permite que uma classe seja considerada um indivíduo ou propriedade, ou que uma propriedade possa ser conseiderada como indivíduo ou classe (OWL, 2003). Enquanto que na OWL Full essa flexibilidade é possível, ela considera, simultaneamente uma classe como sendo um conjunto de indivíduos e como sendo o próprio indivíduo. Outra diferença significativa entre as duas (OWL, 2003) é a OWL Full permitir que uma propriedade do tipo owl:datatypeproperty possa ser definida como owl:inversefunctionalproperty (ambos os elementos serão apresentados na seção ). Considera-se a seguinte consulta: Diga-me que vinhos eu devo comprar para servir com cada item do seguinte menu. E, de qualquer forma, eu não gosto de Sauterne (OWL, 2003). 33
35 Seria dificultoso, hoje, construir um agente Web que fosse capaz de procurar por vinhos na Web que satisfizessem esta consulta supracitada. Para suportar esta forma de processamento não se pode restringir somente a busca por palavras-chaves, mas é necessário que se especifique o significado dos recursos descritos na Web. Esta camada adicional de interpretação irá capturar a semântica dos dados. A OWL é uma linguagem para definição e instanciação de ontologias Web. Uma ontologia deve incluir descrições de classes, propriedades e suas instâncias Estrutura da Ontologia OWL Um documento OWL consiste de declarações de namespaces (Namespaces, 2003), um cabeçalho opcional referente à ontologia e definições de classes, propriedades e indivíduos (OWL, 2003b). A OWL não impõe uma ordem padrão para a disposição destes componentes numa ontologia. Os desenvolvedores de ontologias, geralmente, utilizam alguma forma de ordenação, como, por exemplo, definem o cabeçalho no início da ontologia, porém, isso não interfere em seu significado. Nas próximas subseções serão apresentadas informações e a sintaxe para declaração de elementos e regras básicas para definição de uma ontologia utilizando a OWL Namespaces Um namespace é utilizado para evitar colisões entre vocabulários definidos em documentos distintos, que, porventura, utilizem os mesmos nomes para seus elementos e atributos. Ele é identificado por um IRI (Internationalized Resource Identifier). Um IRI permite a utilização de um conjunto adicional de caracteres ASCII, como, por exemplo, acentuações, o qual não é permitido pelo URI (Universal Resource Identifier) (Namespaces, 2003). Dessa maneira, antes que seja empregado um conjunto de termos, é necessária a declaração dos vocabulários específicos do contexto que está sendo trabalhado, ou seja, é preciso informar os namespaces que serão utilizados. Um padrão inicial para uma ontologia informa um conjunto de declarações de namespaces XML incluído entre as tags rdf:rdf. Eles fornecem uma forma de se evitar a ambiguidade na interpretação de identificadores do documento, fazendo com que a ontologia se torne mais legível. O
36 namespace é declarado através do atributo xmlns. Uma ontologia OWL típica é iniciada com uma declaração de namespaces similar a apresentada na Figura 10 (W3C, 2003). 35 Figura 10 Declaração de namespaces OWL As duas primeiras declarações, linhas 2 e 3, identificam o namespace associado com a própria ontologia, ou seja, a que está sendo definida. Como foi um exemplo retirado da W3C, elas referenciam a ontologia desenvolvida para wine (vinhos) (WINE, 2003). Na linha 5, há a definição do namespace que representa outra ontologia existente, do domínio de food (comida) (FOOD, 2003), que será utilizada no desenvolvimento da ontologia atual. A linha 6 informa que neste documento os elementos prefixados com owl: devem ser compreendidos como uma referência ao que está descrito no namespace indicado pela URL Esta é uma declaração convencional da OWL, utilizada para introduzir o vocabulário OWL. Como já foi anteriormente mencionado, a OWL depende das construções definidas pelos tipos de dados do RDF, RDF Schema e XML Schema. Assim, é necessário que seus referidos namespaces sejam indicados. Tem-se, dessa maneira, as declarações para os mesmos na linhas 7 (para RDF), 8 (RDFS) e 9 (XML Schema), sendo que os seus prefixos a serem utilizados nesta ontologia são, respectivamente, rdf, rdfs e xsd Cabeçalho OWL A partir do momento que as declarações das namespaces são definidas, é possível realizar a inclusão de uma coleção de afirmações acerca da referida ontologia, definindo, assim, o seu cabeçalho. Estas informações são agrupadas dentro da tag owl:ontology. Estas tags suportam comentários, controle de versão e inclusão de outras ontologias (Figura 11).
37 36 Figura 11 - Exemplo de cabeçalho OWL Através do elemento owl:ontology declara-se uma coleção de meta-dados OWL acerca do documento. Assim, têm-se na Figura 12 a representação de um cabeçalho OWL contendo informações diversas representadas por: rdf:about é um atributo que fornece um nome ou referência para a ontologia. rdfs:comment apresenta algum comentário referente à ontologia modelada; owl:priorversion é uma tag padrão utilizada para o controle de versões da ontologia; owl:imports indica a importação de uma ontologia já existente definida pelo recurso apresentado em seguida. A utilização de... na Figura 12, indica que outras informações adicinais podem ser elicitadas. Como, por exemplo, através de declarações em RDF, título, criador, publicação, data e descrição também podem ser inseridos. E, por fim, o cabeçalho OWL é finalizado com a tag de fechamento </owl:ontology>. Ao importar outra ontologia está-se obtendo, para a ontologia atual, todas as afirmações que ela fornece. Para utilizar a ontologia importada, ela normalmente é coordenada através da declaração de namespaces. Assim, há uma distinção entre estes dois mecanismos: declaração através de owl:imports e namespaces. O namespace provê nomes para melhor referenciar o que foi definido em outra ontologia OWL. Conceitualmente, o elemento owl:imports fornece apenas uma indicação da intenção em se incluir informações de outra ontologia. Ao se importar uma ontologia A para uma ontologia B, estará importando-se, também, todas as outras ontologias que, por ventura, a ontologia A esteja utilizando. Muitos dos elementos de uma ontologia OWL são formados por classes, propriedades, instâncias das classes e relacionamentos entre elas. As próximas subseções apresentam componentes essenciais para construções de ontologias através de elementos providos pela OWL.
38 Classes A utilização de ontologias depende da capacidade em raciocinar sobre as classes, as instâncias, objetos, indivíduos. Para que isto ocorra de maneira útil, necessita-se de um mecanismo para a descrição de classes e suas propriedades. O mais básico dos conceitos acerca de um domínio corresponde às classes, que são as raízes das árvores de taxinomia. Cada objeto na linguagem OWL é um membro da classe owl:thing por padrão, a qual já é predefinida na OWL. Dessa forma, cada classe definida pelo usuário é implicitamente uma subclasse de owl:thing. É como se ela fosse a classe raiz de todas as outras (Figura 12): Figura 12 Exemplo de representação da classe owl:thing As classes específicas de um domínio são declaradas simplesmente através de nomeações às mesmas. Por exemplo, observa-se três classes referentes a uma ontologia de domínio Universidade (Figura 13): Figura 13 Declaração de classes OWL Tem-se que as classes são declaradas através do elemento owl:class e seus nomes são identificados pelo atributo rdf:id, o qual é semelhante ao atributo ID do XML, servindo como identificador do recurso. Dessa forma, a classe Curso pode ser referenciada, dentro deste mesmo documento, através da utilização de rdf:resource= #Curso. Outras ontologias podem referenciá-la utilizando seu caminho completo, uma URI. Para efeitos de demonstração, consideremos o exemplo: Ou ainda, de uma forma mais
39 fácil e mais comumente utilizada, cria-se uma namespace referente a ontologia que desejase utilizar, como já foi explicitado anteriormente: 38 Dessa forma, a classe Curso definida poderá ser referenciada através da tag de indicação de namespace: uni:curso Subclasses Outro construtor fundamental na taxinomia para classes é a representação de suas subclasses, ou seja, estar relacionando uma classe mais específica a uma classe mais genérica. Dessa maneira, se uma classe A é subclasse de B, então toda instância de A também é uma instância de B. A declaração de subclasses é realizada através do elemento rdfs:subclassof. Esta tag possibilita, ainda, uma relação transitiva: se A é subclasse de B e B é subclasse de C, então A é subclasse de C. Figura 14 Declaração de subclasses OWL Tem-se, na Figura 14, a definição da classe PosGraduacao e a identificação de que ela é uma subclasse de Curso, ou seja, já havia-se definido uma classe mais genérica Curso e agora é declarada uma classe mais específica PosGraduacao. O relacionamento entre as duas classes existentes é realizada através de rdfs:subclassof, identificando, assim, essa hierarquia. Tem-se até o momento que PosGraduacao é um Curso de uma Universidade. Mas, esta definição ainda está muito incompleta. É necessário definir mais restrições para as classes, de modo que se possa obter um raciocínio lógico sobre as mesmas. Assim, além das classes, pode-se descrever seus membros, ou seja, informar os indíviduos (individuals) que também fazem parte deste domínio e tem relação com essas classes declaradas. Por exemplo, tem-se uma classe Regiao e declaramos Sul como sendo um indivíduo desta classe (Figura 15):
40 39 Figura 15 Declaração de indivíduo OWL (1) A distinção entre classe e indivíduo em OWL é a seguinte (OWL, 2003): enquanto uma classe é simplesmente um nome e uma coleção de propriedades que descrevem um conjunto de indivíduos, estes, por sua vez, são os membros (objetos, partes ou itens) destes conjuntos. As classes devem corresponder ao conjunto das coisas acerca de um domínio e, os indivíduos seriam as instâncias dessas classes, ou seja, devem corresponder às entidades reais que podem ser agrupadas em uma classe. Além da forma já apresentada para declaração de indivíduos, também pode-se fazer da seguinte maneira (Figura 16): Figura 16 Declaração de indivíduo OWL (2) A forma supracitada de representação de individual terá o mesmo sentido da maneira apresentada pela Figura 15. A propriedade RDF, rdf:type, faz uma ligação entre o indivíduo e a classe a que pertence. Na Figura 16 tem-se a especificação de uma classe Regiao, fazendo-se em seguida uma referência ao indivíduo Sul, o qual estará existente dentro da classe raiz Thing e finalmente, informa-se que Sul (uma região específica) é membro de Regiao, que contém todas as regiões geográficas Propriedades As propriedades descrevem características e relacionamentos entre classes. A propriedade é uma relação binária (OWL, 2003). Quando se define uma propriedade há diversas formas de restringir a sua relação. O domínio e o nível podem ser especificados. A propriedade pode ser definida como uma especialização (subpropriedade) de outra propriedade existente. Em OWL existem duas classes para especificar propriedades:
41 1. owl:objectproperty é utilizada para relacionar uma classe com outra classe. Por exemplo, uma propriedade pertencea poderá relacionar uma classe Disciplina com uma classe Curso (Figura 17). 40 Figura 17 Declaração de propriedade utilizando owl:objectproperty 2. owl:datatypeproperty é utilizada para especificar um tipo de dado, uma expressão literal ou um valor. Por exemplo, uma propriedade idade poderá ser relacionada com um tipo de dado específico a um número inteiro não-negativo. Os tipos de dados suportados são os especificados pelo XML Schema (Figura 18): Figura 18 Declaração de propriedade utilizando owl:datatypeproperty Características das Propriedades As propriedades podem representar características como sendo TransitiveProperty (transitivas), SymmetricProperty (simétricas), FunctionalProperty (funcionais), inverseof (inversas), inversefunctionalproperty (inversas e funcionais). Estas características podem ser organizadas hierarquicamente da seguinte forma (OWL, 2003c) (Figura 19): Figura 19 Hierarquia das caracaterísticas de propriedades OWL
42 Como já foi mencionado, a OWL é baseada no RDF e no RDFS e daí o elemento rdf:property como elemento raiz. Em conseqüência desta organização hierárquica, tem-se que (OWL, 2003c): SymmetricProperty e TransitiveProperty podem ser utilizadas para relacionar recursos com recursos. FunctionalProperty e InverseFunctionalProperty podem ser utilizadas para relacionar recursos com recursos, recursos com alguma literal do RDF Schema ou com um tipo de dado do XML Schema TransitiveProperty O elemento owl:transitiveproperty é subclasse de owl:objectproperty (OWL, 2003). Dessa forma, o seu nível (rdfs:range) somente pode ser um recurso e não pode especificar um literal ou um tipo de dado. Uma propriedade é transitiva quando se tem a intenção de demonstrar que se A está contido em B e B está contido em C, então A está contido em C: Figura 20 Exemplo de representação de transitividade Através da Figura 20, pode-se verificar que se uma propriedade P é especificada como transitiva para A, B e C, então: (P(A, B) P(B, C)) P(A, C) A sintaxe OWL para representação de uma propriedade transitiva é a que se segue (Figura 21):
43 42 Figura 21 Sintaxe para declaração de propriedade transitiva (1) Tem-se na Figura 21, na linha sublinhada, a identificação de que a propriedade localizadoem trata-se de uma propriedade transitiva. Assim, pelo exemplo, pode-se inferir que, como Jalapão é uma região que está localizadaem Tocantins, então ela também está localizadaem Brasil. Ao invés de se representar como na figura anterior, também pode-se declarar a propriedade transitiva diretamente através do elemento owl:transitiveproperty (Figura 22): Figura 22 Sintaxe para declaração de propriedade transitiva (2) Teria-se o mesmo efeito ao utilizar a sintaxe da Figura 22, como a constante na Figura 21, pois ambas são equivalentes. 2. SymmetricProperty O elemento owl:symmetricproperty é subclasse de owl:objectproperty (OWL, 2003). Uma propriedade é simétrica quando procura representar correspondência entre A e B. Por exemplo, duas cidades A e B são adjacentes se são próximas, vizinhas. Isso porque, estando as cidades próximas, se a cidade A for vizinha da cidade B, é impossível que B não seja vizinha de A. Essa propriedade é definida como: P(A,B) P(B,A) Ou seja, a simetria acontece, nesse contexto, quando P(A,B) é necessário e suficiente para a existência de P(B,A).
44 43 Figura 23 Sintaxe para declaração de propriedade simétrica Inicialmente, na Figura 23, há a declaração da propriedade regiaoadjacente, na qual indica-se, através da primeira linha sublinhada, que ela trata-se de uma propriedade simétrica. Da mesma forma, como foi explicado na propriedade transitiva, também podería-se ter utilizado diretamente o elemento owl:symmetricproperty. Na segunda linha sublinhada, apresenta-se a utilização da propriedade referenciando que Palmas é uma região adjacente a de Paraíso. 3. FunctionalProperty O elemento FunctionalProperty indica que para cada instância existe somente um valor para a propriedade caracterizando, assim, a propriedade funcional. É como se falasse que ela possui a cardinalidade mínima de 0 (zero) e máxima de 1 (um): Figura 24 Sintaxe para declaração de propriedade funcional 4. inverseof O elemento inverseof referencia que uma propriedade é inversa de outra. Assim, pode-se inferir que se está relacionando um indivíduo A a outro B por uma propriedade P1, e P2 é o inverso de P1, então B se relaciona a A, possuindo, assim, uma relação inversa. P1(A,B) P2(B,A)
45 44 Por exemplo: Figura 25 Sintaxe para declaração de propriedade inversa Na Figura 25, tem-se a declaração de duas propriedades ministra e ministradapor, sendo que, nesta última, define-se que ela é uma inversa (inverseof) a ministra. Ou seja, se atribuirmos a propriedade ministra a uma classe Professor relacionando-a com Disciplina, pode-se inferir que Disciplina é ministradapor tal Professor, e vice-versa: Figura 26 Representação da propriedade inversa 5. InverseFunctionalProperty A propriedade funcional inversa define que uma propriedade representa unicamente determinado indivíduo, ou seja, o valor atribuído a ela identifica somente a referida instância. Figura 27 Sintaxe para declaração de propriedade funcional inversa
46 45 Considerando que a propriedade pertence ao domínio da classe Pessoa, assim, tem-se que, na Figura 27, é funcional inversa por ser associada a uma única pessoa, ou seja, não tem-se o mesmo para outra pessoa. A fim de explicitar melhor, considera-se uma propriedade "datanascimento", sendo que ela não é funcional inversa, pois muitas pessoas podem ter a mesma data e, caso fosse funcional inversa, somente uma pessoa poderia ter aquela data aplicada a ela. Outros exemplos de propriedades que podem ser funcionais inversas são: CPF, número do seguro social, chave primária em um banco relacional, entre outras Restrições sobre Propriedades Além de fornecer declarações de características sobre as propriedades, é possível refinar ainda mais essas propriedades em contextos específicos (OWL, 2003c). Isto é realizado através das restrições sobre as propriedades com o elemento owl:restriction, sendo que o elemento owl:onproperty indica qual a propriedade que está sendo restrita. Estas restrições podem ser definidas através de: cardinality (cardinalidade), maxcardinality (cardinalidade máxima), mincardinality (cardinalidade mínima), allvaluesfrom (todos os valores de), somevaluesfrom (alguns valores de) e hasvalue (classes definidas por restrições de valor). 1. cardinality / maxcardinality / mincardinality A cardinalidade é uma forma de estar restrigindo a quantidade mínima e máxima para determinada propriedade. Figura 28 Sintaxe para declaração de cardinalidade sobre uma propriedade
47 Por exemplo, na Figura 28, tem-se a definição de uma propriedade temanosafra para a classe safra, sendo que esta propriedade está sendo restringida através do elemento owl:cardinality, o qual está indicando que terá a ocorrência de apenas 1 (um) no documento. Ou seja, para cada safra será associado apenas um ano. A OWL fornece, também, a possibilidade de estar se estabelecendo a quantidade mínima de ocorrências, bem como a máxima. 46 Figura 29 Sintaxe para declaração de cardinalidade máxima e mínima Nesse ponto, Figura 29, pode-se observar a utilização simultânea dos elementos owl:mincardinality e owl:maxcardinality, os quais definem um intervalo de valores possíveis (entre 0 e 1000) para a propriedade fruto. Também, há a possibilidade de utilizar-se somente um dos elementos por vez, sendo que se fosse utilizado somente o mincardinality estaria-se indicando que era o mínimo de ocorrência possível, se fosse o maxcardinality indicaría-se que poderia ter no máximo determinado valor. 2. allvaluesfrom Diversas maneiras para restringir os tipos dos elementos sobre uma propriedade já foram anteriormente explicitadas. Todos essas formas para os dados foram globais, visto que aplicam-se a todas as instâncias das propriedades. O elemento owl:allvaluesfrom, como owl:somevaluesfrom e owl:hasvalue (a serem apresentados subseqüencialmente), são locais às classes que contêm tal propriedade. A restrição owl:allvaluesfrom indica que todas as instâncias das classes que tiverem essa propriedade especificada, os valores da propriedade devem ser membros da classe referenciada por ela.
48 47 Figura 30 Sintaxe para restrição de propriedade utilizando owl:allvaluesfrom A Figura 30 especifica que a classe "Moveis" possui uma propriedade "temfabricante", sendo que essa propriedade é restrita no sentido de que todo fabricante de móveis deve ser uma "FabricaDeMoveis". A restrição allvaluesfrom é sobre a propriedade "temfabricante" somente para esta classe "Moveis", ou seja, se ela for aplicada a outra classe, essa restrição não é válida, tendo, assim, validade somente localmente. A restrição allvaluesfrom não indica que "Moveis" tenha um fabricante, mas se tiver um ou mais, todos devem ser uma fábrica de móveis. 3. somevaluesfrom A restrição owl:somevaluesfrom é similar a anterior. Utilizando o mesmo exemplo dado pela Figura 30, substituindo, simplesmente, allvaluesfrom por somevaluesfrom, ele significa que ao menos um dos fabricantes seja uma fábrica de móveis. Figura 31 Sintaxe para restrição de propriedade utilizando owl:somevaluesfrom A restrição somevaluesfrom requer que para cada instância da classe que está sendo definida, possua ao menos um valor da classe descrita pela restrição, ou seja, é necessário que haja ao menos um fabricante que é uma fábrica de móveis, mas podem haver fabricantes que não a sejam.
49 48 4. hasvalue A restrição owl:hasvalue permite especificar classes baseadas na existência de valores particulares para propriedades (OWL, 2003). Dessa forma, através do elemento hasvalue pode-se definir uma limitação de valores para a propriedade restrita, de modo que os indivíduos da classe com esse tipo de declaração tenham a propriedade especificada com o valor declarado. Figura 32 Sintaxe para restrição de propriedade utilizando owl:hasvalue Pode-se determinar uma classe C através da propriedade P com valor Z, sendo que, qualquer indivíduo Y que estiver relacionado com o valor Z através da propriedade P inferese este indivíduo como pertencente a classe C (Carneiro, 2003). Assim, de acordo com a Figura 32, tem-se que todo indivíduo, da classe VinhoItaliano, que for instanciado deve ter Italia como valor para a propriedade produzidoem e que indivíduos que contiverem este valor, Italia, na referida propriedade, pode ser classificado como VinhoItaliano Classes Complexas A OWL fornece um conjunto de construtores adicionais com os quais pode-se dar mais forma às classes, impondo-lhes mais definições (OWL, 2003). A OWL suporta um conjunto básico de operações: união, intersecção e complemento, sendo que as mesmas são expressas através de, respectivamente, owl:unionof, owl:intersectionof e owl:complementof. Pode-se, ainda, indicar extensões de classes através do elemento oneof e afirmar que extensões de classes são disjuntas (disjointwith). Extensões de classes em OWL referem-se aos conjuntos de indivíduos que são membros da classe. A OWL permite manipular essas extensões de classes através do conjunto de operações supracitados.
50 49 1. Intersecção A intersectionof pode ser demonstrado através do seguinte exemplo: Figura 33 Sintaxe para utilização do elemento intersectionof Como exposto na Figura 33, pode-se declarar classes através da intersecção de outras classes com definições de restrições. No exemplo anterior, tem-se a definição da classe VinhoBranco, em que ela é formada através da intersecção da (intersectionof) classe Vinho e da restrição da propriedade possuicor que define um valor para a mesma ( Branca ). Isto quer dizer que, se algo é vinho e é branco, então ele é uma instância de VinhoBranco. Figura 34 Representação da Intersecção O intersectionof é análoga a conjunção em Lógica. Ou seja, dado que V é um conjunto que designa elementos do tipo vinho e B, um conjunto que designa elementos da cor branca, então temos, x(vx Bx). Desta forma, é informado que para algo ser designado VinhoBranco deve existir pelo menos um elemento que, num dado momento, tenha a característica de ser vinho e branco, simultaneamente. Vale, ainda, ressaltar que o elemento rdf:parsetype= Collection é requerido automaticamente pelo owl:intersectionof. 2. União A utilização de unionof é semelhante a construção sintática de intersectionof. Considera-se o seguinte exemplo:
51 50 Figura 35 Sintaxe para utilização do elemento unionof Conforme a Figura 35, tem-se que a classe Pessoa é formada pela união das extensões (subclasses) Homem e Mulher. Figura 36 Representação da União A unionof é análoga a disjunção em Lógica. Ou seja, utilizando H para designar o conjunto dos indivíduos homens e M para designar o conjunto de indíviduos mulheres, temos que: x (Hx Mx). Qualquer coisa que seja ou homem ou mulher é considerada uma pessoa. 3. Complemento A owl:complementof descreve uma classe na qual sua extensão contém exatamente aqueles indivíduos que não pertencem à extensão da classe designada pela owl:complementof. É análoga à negação na Lógica. <owl:class rdf:id="naofilmefrances"> <owl:intersectionof rdf:parsetype="collection"> <owl:class rdf:about="#filme"/> <owl:class> <owl:complementof> <owl:restriction> <owl:onproperty rdf:resource="#dirigidopor" /> <owl:hasvalue rdf:resource="#diretorfrances" /> </owl:restriction> </owl:complementof> </owl:class> </owl:intersectionof> </owl:class> Figura 37 Sintaxe para utilização do elemento complementof
52 51 Na Figura 37, é definida que a classe NaoFilmeFrances é a interseção da classe Filme com o conjunto de todas as coisas não são dirigidas por um diretor francês. Figura 38 Representação do Complemento Para uma melhor visualização, de acordo com a Figura 38, dados os conjuntos A e B, onde B está contido em A, denomina-se o complemento de B em relação a A o conjunto formado pelos elementos que pertencem a A e não pertencem a B, ou seja, é o conjunto resultante de A B (representado pela parte sombreada). 4. Enumeração A OWL fornece os meios para especificar uma classe através de uma enumeração direta de seus componentes. Isto é feito usando o construtor oneof. Esta definição especifica completamente a extensão da classe, de modo que nenhum outro indivíduo possa ser declarado pertecente à classe. <owl:class rdf:id="corvinho"> <rdfs:subclassof rdf:resource="#descricaovinho"/> <owl:oneof rdf:parsetype="collection"> <CorVinho rdf:about="#branco" /> <CorVinho rdf:about="#rose" /> <CorVinho rdf:about="#vermelho" /> </owl:oneof> </owl:class> Figura 39 Sintaxe para utilização do elemento oneof De acordo com o código apresentado na Figura 39, é estabelecido que nenhum outro indivíduo, além daqueles que foram enumerados na classe, podem pertencer ao conjunto designado CorVinho.
53 52 5. Disjunção A disjunção de um conjunto de classes pode ser expressado usando o construtor owl:disjointwith. Desta forma, é estabelecido que um indivíduo que seja um membro de uma classe não pode simultaneamente pertencer a outra classe. É análogo a disjunção exclusiva em Lógica. Figura 40 Sintaxe para utilização do elemento disjointwith O exemplo da Massa (Figura 40) apresenta múltiplas classes disjuntas. É necessário observar que isto afirma somente que Massa é disjunta de todas as outras classes apresentadas, mas não afirma, por exemplo, que a Carne e a Ave são disjuntas. A disjunção pode ser visualizada através do conjunto resultante de uma intersecção entre conjuntos distintos, ou seja, eles não possuem elementos em comum tornando o resultado nulo (A B = ): <owl:class rdf:id="massa"> <rdfs:subclassof rdf:resource="#coisacomestível"/> <owl:disjointwith rdf:resource="#carne"/> <owl:disjointwith rdf:resource="#ave"/> <owl:disjointwith rdf:resource="#peixe"/> <owl:disjointwith rdf:resource="#sobremesa"/> <owl:disjointwith rdf:resource="#fruta"/> </owl:class> Figura 41 Representação da Disjunção 6. EquivalentClass A propriedade equivalentclass indica que duas classes têm precisamente as mesmas instâncias.
54 53 <owl:class rdf:id="coisasdotocantins"> <owl:equivalentclass> <owl:restriction> <owl:onproperty rdf:resource="#localizadoem" /> <owl:allvaluesfrom rdf:resource="#estadotocantins" /> </owl:restriction> </owl:equivalentclass> </owl:class> Figura 42 Sintaxe para utilização do elemento equivalentclass De acordo com a Figura 42, é observado que CoisasDoTocantins são exatamente as coisas situadas no Estado do Tocantins. A diferença entre usar owl:equivalentclass e rdfs:subclassof é que, na primeira, uma condição deve ser suficiente e necessária, enquanto na segunda, apenas necessária numa dada situação. Assim, tem-se que, com subclassof, as coisas localizadas no Estado do Tocantins não são necessariamente coisas do Tocantins; apenas o inverso é verdadeiro. No entanto, na utilização de equivalentclass, se algo foi localizado no Tocantins, já é necessariamente uma coisa do Tocantins. Para um maior esclarecimento, tem-se a letra T, para representar CoisasDoTocantins e E, para representar coisas localizadas no Estado do Tocantins. Na tabela abaixo, é demonstrada a diferença entre as situações supracitadas. Tabela 2 - Diferença entre subclassof e equivalentclass Relação subclassof equivalentclass Implicação x (Tx Ex) x ((Tx Ex) (Ex Tx)) 2.7 Protégé Uma ferramenta extensível para construção de ontologias e desenvolvimento de aplicações que utilizam ontologias (Protégé, 2003b), assim foi definida a Protégé em um tutorial, referente ao seu plugin OWL, na Segunda Conferência Internacional da Web Semântica (2nd International Semantic Web Conference) realizada em outubro de 2003 nos Estados Unidos. Protégé é uma ferramenta que permite sua utilização para (Protégé, 2003): construir uma ontologia; ajustar a forma de aquisição de conhecimento; entrar com um domínio de conhecimento. Dentre suas características principais destacam-se (Protégé, 2003):
55 geração automática de interfaces gráficas para os usuários, baseada nos modelos definidos por eles, para aquisição das instâncias para os domínios; arquitetura e modelo de conhecimento extensíveis; possibilidade de utilizar outras aplicações com o ambiente de desenvolvimento do Protégé, ou vice-versa. Protégé é um ambiente que pode ser estendido com recursos gráficos como tabelas, diagramas, componentes de animação para acessar outras aplicações com sistemas baseados em conhecimento. É ainda uma biblioteca que pode ser utilizada e acessada por outras aplicações para exibição de suas bases de conhecimento. Os objetivos do Protégé são (Protégé, 2003): permitir interoperabilidade com outros sistemas de representação de conhecimento; ser uma ferramenta de aquisição de conhecimento fácil de configurar e utilizar; ser extensível. Uma ontologia Protégé consiste basicamente de: classes: são as entidades do domínio a ser modelado; slots: descrevem propriedades de classes e instâncias, bem como as relações; facets: descrevem propriedades dos slots, é uma forma de especificar restrições (constraints) nos valores dos slots; instâncias: são declarações de determinada classe. 54 Figura 43 - Interface da Protégé
56 Protégé foi desenvolvida, inicialmente (na década de 80) (Protégé, 2003b), pelo departamento de informática médica da University of Stanford, sendo amplamente utilizada nessa área nos dias atuais. Ela está em constante desenvolvimento e, atualmente, oferece suporte à Web Semântica através da utilização de um plugin para a OWL (em desenvolvimento, tendo sua última atualização em 04 de dezembro do corrente ano). Não muito antigamente era chamada de Protégé-2000, sendo renomeada somente para Protégé a partir de sua versão 2.0 (beta) lançada no segundo semestre de A ferramenta Protégé é um software free e open-source. Ela fornece diversos plugins de modo a lhe dar maiores características e fornecer suporte às necessidades dos programadores. Através dela, há a possibilidade de conversão em vários formatos como XML, XMLSchema, RDF, RDFS, Topic Maps, UML, OIL, DAML+OIL, OWL (Protégé,2003), entre outros, fornecendo, assim, maior flexibilidade à aplicação. O Protégé tem sua instalação livre, é desenvolvido em Java, necessitando, assim, do JVM (Java Virtual Machine) e está disponível para diversas plataformas, caracterizando sua interoperabilidade, como: Windows (95, 98, NT, 2000, ME e XP); Linux; Solaris; AIX; HP-UX; Mac OS X v Considerações Finais O projeto de aplicações semânticas tem o seu foco nos conteúdos. O ponto central das aplicações semânticas é o sentido dos conceitos, contextos e relações. Elas definem modelos de conhecimento as quais são chamadas de ontologias (Lustosa, 2003). A partir de tecnologias como a XML e RDF e da representação explícita da semântica dos dados, aliados à teoria de domínios ou ontologias, é possível oferecer um serviço Web com um maior nível de qualidade. As ontologias apresentam meios para estabelecer uma base concisa de conceitos. A integração de ontologias é muito relevante hoje para a viabilização do desenvolvimento pleno da Web Semântica (SW, 2001) de
57 forma a consolidar diversas atividades na Web como: fornecer maior suporte ao serviço de comércio eletrônico, oferecer maior precisão aos mecanismos de buscas, prover a conexão semântica e a interoperabilidade entre os conteúdos das páginas, de maneira a ser utilizado cooperativamente por máquinas e humanos. Assim, diversas pesquisas envolvendo ontologias tendem para a definição de uma linguagem para sua criação e manipulação. Entre elas, a de maior destaque é a OWL, do Web Ontology Working Group, parte do projeto da Web Semântica da W3C. Ela habilita a máquina a compreender o dado, ou seja, ela oferece a capacidade de processamento semântico pela máquina, através de sua potencialidade em descrever os relacionamentos e propriedades entre os conceitos de um domínio. Juntamente com o padrão RDF, a OWL expressa a parte semântica das informações e a XML, DTD e XML Schemas ficam responsáveis pela estruturação dos dados, pela sua parte sintática. A OWL tem a intenção de prover uma linguagem que pode ser utilizada para descrever as classes e suas relações que são inerentes a aplicações e documentos Web. 56
58 57 3 MATERIAIS E MÉTODOS Para o desenvolvimento desse trabalho foram utilizados diversos recursos bibliográficos, de hardware e software, que aliados às orientações permitiram a finalização do mesmo. 3.1 Local e Período Este trabalho foi desenvolvido durante o segundo semestre de 2003, como parte da disciplina Prática em Sistemas de Informação II. Os locais utilizados para sua elaboração foram os laboratórios de informática do curso de Sistemas de Informação, sendo que os mais utilizados foram o Laboratório de Multimídia (LabMídia) e Núcleo de Desenvolvimento de Software (NDS) do Centro Universitário Luterano de Palmas. Bem como, destacando também, a utilização de um computador pessoal. 3.2 Materiais Os recursos utilizados para o desenvolvimento do trabalho foram disponibilizados pelo próprio curso Sistemas de Informação do CEULP/ULBRA em seus laboratórios, tais como hardware e software licenciados. As demais ferramentas free foram adquiridas via Internet Hardware Pentium III, 750 Mhz e 128 Mb de RAM (Disponível no laboratório); Pentium IV, 2.4 Ghz e 256 Mb de RAM (Disponível no laboratório);
59 58 Athlon XP (1.8 Ghz) e 256Mb de RAM (Computador pessoal) Software Microsoft Windows 2000 Professional; Microsoft Office 2000 Professional; Internet Explorer 6.0; Acrobat Reader 6.0; Protégé versão 2.0 (Beta) Fontes Bibliográficas Teses de Mestrados; Trabalhos de Conclusão de Curso; Publicações Científicas; Artigos; Site da W3C (World Wide Web Consortium) (W3C, 2003); Sites diversos. 3.3 Metodologia Diversas pesquisas foram realizadas no sentido de recolher informações referentes ao domínio do trabalho desenvolvido, de maneira que permitisse oferecer uma sustentação teórica necessária para a sua conclusão. Assim, foram abordados conceitos e técnicas alusivas ao escopo do trabalho, para que fosse possível apresentar uma proposta de definição de um domínio de ontologia, como forma de concretização de parte do que foi explanado na Revisão de Literatura.
60 59 4 RESULTADOS E DISCUSSÃO Esta seção tem o objetivo de apresentar uma proposta de desenvolvimento de uma ontologia através da linguagem OWL e sua aplicação sobre um domínio, abordando, assim, a camada de esquema da arquitetura da Web Semântica (Figura 2). Nesta camada define-se a hierarquia e os relacionamentos entre os termos e, como apoio à elaboração da mesma, utilizou-se um editor de ontologias, o Protégé, a fim de explicitar parte dos elementos propostos pela OWL apresentados no decorrer da seção 2.6. Esta linguagem foi escolhida por ser uma das recomendações da W3C (W3C, 2003) para construções de ontologias. Maiores detalhes referentes às definições dos conceitos envolvidos na modelagem podem ser obtidos no código completo na seção dos anexos. 4.1 Definição da Ontologia O desenvolvimento de uma ontologia é um processo iterativo [Protégé, 2003b]. Para a modelagem de uma ontologia, é necessária a definição do escopo, para que sejam identificadas suas classes e propriedades, bem como os relacionamentos entre elas e então possa, a partir dessas definições, criar as instâncias relativas a ontologia modelada. A ontologia a ser demonstrada nas próximas seções refere-se ao domínio de um módulo para um portal Web de universidades. Esse módulo refere-se a parte relacionada ao Curso com suas disciplinas e turmas. Para o seu desenvolvimento foi utilizada uma das ferramentas disponíveis para edição de ontologias, o Protégé 2.0. Ela foi escolhida por ser muito bem citada nos materiais relacionados ao tema e por ter atendido as necessidades para a conclusão do trabalho. Esse ambiente para criação de ontologias é um software free, desenvolvido pela
61 Universidade de Stanford, que foi adquirido via Internet através de seu site oficial < O código completo referente a ontologia modelada pode ser encontrado nos anexos deste trabalho Protégé A Protégé está em constante atualização de forma a estar aprimorando-se e podendo dar maior suporte à Web Semântica. Atualmente está em sua versão 2.0 (beta) e conta com diversos plugins. O plugin OWL foi o utilizado para o desenvolvimento deste trabalho, de modo a oferecer um apoio para a definição de ontologias baseadas nessa linguagem Plugin OWL O projeto referente ao desenvolvimento do plugin OWL foi iniciado em Abril de 2003 (Protégé, 2003b), baseado em idéias de projetos anteriores como do RDF, OilTab e DAML+OIL. O plugin OWL fornece uma extensão ao Protégé de forma a permitir edição de ontologias em OWL. Conta, atualmente, com uma versão beta disponível em < As características gerais oferecidas pelo mesmo são: executar e salvar arquivos OWL; utilizar editores gráficos para expressões de classes. Para sua utilização é necessário que se tenha a última versão do Protégé 2.0, e, conseqüentemente, como já foi comentado anteriormente (seção 2.7), a JVM (Java Virtual Machine) versão ou superior. Tendo essa configuração inicial, pode-se realizar o download do arquivo compactado contendo o plugin OWL a partir de < O referido arquivo deverá ser descompactado no diretório de plugins onde a Protégé está instalada. A partir desse ponto, já pode-se utilizá-lo, sendo que ele será carregado na próxima vez que se executar a Protégé. A interface após a instalação do mesmo é a seguinte:
62 61 Figura 44 - Interface Protégé do módulo de manipulação de classes Figura 45 - Interface Protégé do módulo de manipulação de slots
63 Modelagem da Ontologia O desenvolvimento de uma ontologia no Protégé consiste basicamente nos seguintes passos: primeiramente é definido um esquema com as classes (class), subclasses (subclass), propriedades e relações (slots) referentes ao domínio que se deseja modelar, neste caso do domínio de parte de um portal Web para universidades. O modelo utilizado como referência para a modelagem da referida ontologia foi o que se segue: Figura 46 Modelo da ontologia definida
64 Definição das Classes As classes OWL são definidas no seguinte módulo do Protégé: Figura 47 Definição de Classes no Protégé Na figura anterior, referência representada pelo número 1, está a área destinada à manipulação das classes e subclasses. Essa manipulação refere-se à criação e exclusão de classes e definição de o que é classe e o que é subclasse (hierarquia). O número 2 refere-se a inserção de comentários ou informações acerca da própria classe selecionada (metadados), ou seja, dados como seu nome, documentações e anotações referentes a versão, autor, entre outros. O número 3 está relacionado ao painel dedicado à inclusão e exclusão dos slots correspondentes a cada classe ou subclasse. Para que esses slots sejam inclusos, primeiramente eles têm que ser criados, podendo fazer isso nesse próprio painel ou na área destinada à manipulação de slots (Figura 45). Ele lista todos os slots que podem ser atribuídos a tal classe. As referências 4 e 5 são dedicadas às definições lógicas, às regras, ou seja, o número 4 é para declaração das restrições locais para as propriedades de determinada classe e o 5 para declaração, por exemplo, de equivalências e disjunções para as classes.
65 Foram definidas, ao total, doze classes e subclasses, as quais são as que estão na árvore definida na referência indicada pelo número 1 da Figura 47. Como exemplo da sintaxe de definição classes, considera-se os seguintes exemplos: <owl:class rdf:id="curso"/> 2. <owl:class rdf:id="funcionario"> 2. <rdfs:subclassof> 3. <owl:class rdf:id="pessoa"/> 4. </rdfs:subclassof> </owl:class> Figura 48 Declaração de Classes e Subclasses A Figura 48 demonstra a declaração de duas classes, sendo uma na linha 1 e a outra iniciada na linha 2. Primeiramente, na linha 1, tem-se uma declaração da classe Curso através do elemento owl:class. Na linha 2, há a definição da classe Funcionário, indicando, ainda, que a mesma é subclasse de Pessoa nas linhas de 3 a 6. As... indicam que pode-se ter mais código entre o elemento owl:class, como, por exemplo, as definições das propriedades para a classe em questão Definição das Propriedades As propriedades OWL são definidas no seguinte módulo do Protégé: Figura 49 Definição de Slots no Protégé
66 A área representada pelo número 1 refere-se à lista dos slots já criados, sendo que as classes, as quais o slot selecionado pertence, são apresentadas na área de número 3, no campo Domain, o qual se refere ao domínio a que o slot pode ser aplicado. Um slot (propriedade) pode atribuir valores aos indivíduos ou definir relacionamentos entre eles. O número 2 refere-se a inserção de comentários ou informações acerca do próprio slot selecionado (metadados), assim, como ocorre na Figura 47, ou seja, dados como seu nome, documentações e anotações referentes a versão, autor, entre outros. O número 3 é a área destinada às características e restrições globais, ou seja, todas as definições realizadas nessa região, serão aplicadas a todos os slots independente das classes que os contenham. Para que seja realizado as restrições locais, somente ao slot de determinada classe, devem ser realizadas na área de 4 da Figura 47. Ainda no retângulo número 3, define-se o tipo do valor do slot (Range). Esses tipos podem ser: - Booleanos (True ou False); - Class (Representam alguma classe definida na base); - Float (Números reais); - Instance (Instância de alguma classe definida na base); - Integer (Números inteiros); - String (Caracteres alfanuméricos). No exemplo da Figura 49, o tipo do slot ministradapor foi instance, sendo assim é necessário especificar a lista de classes que conterá as instâncias de que se necessita. Isso é definido no campo Classes, que nesse caso foi Professor. Pode-se perceber que o Domain deste slot é Turma, logo temos o seguinte relacionamento: Turma é ministradapor Professor. Podendo inferir, ainda, que um Professor ministra uma Turma. Assim, temos uma propriedade inversa, ou seja, ministradapor é inversa a ministra. O código, para essa restrição sobre a propriedade, é o seguinte: 65 <owl:objectproperty rdf:id="ministraturma"> <owl:inverseof> <owl:objectproperty rdf:about="#ministradapor"/> </owl:inverseof> <rdfs:range rdf:resource="#turma"/> <rdfs:domain rdf:resource="#professor"/> </owl:objectproperty> Figura 50 Exemplo de utilização da característica inverseof Há, também, a possibilidade de especificar a cardinalidade da propriedade, que, no caso do Protégé, é indicado da seguinte forma: se é marcado a opção multiple, múltiplos
67 valores podem ser atribuídos ao slot; caso seja marcado a opção required, é necessário preencher os campos at least (pelo menos) e at most (no máximo) o valor indicado no campo de edição. Sendo que, por default, a cardinalidade é multiple. Se nenhuma das opções é determinada, a propriedade fica com cardinalidade de 0..1, sendo chamada de propriedade funcional. Diversas propriedades funcionais foram definidas na ontologia em questão. As propriedades funcionais são aquelas em são aplicadas no máximo uma vez a cada instância. Segue o exemplo: <owl:datatypeproperty rdf:id="datanascimento"> 2. <rdfs:range rdf:resource=" 3. <rdfs:domain rdf:resource="#pessoa"/> 4. rdf:resource=" 5. </owl:datatypeproperty> Figura 51 Exemplo de propriedade funcional A propriedade datanascimento é indicada como sendo funcional na linha 4, isso significa que para cada Pessoa (seu domínio, na linha 3) irá existir somente uma data de nascimento. Diversas outras propriedades podem ser observadas no código completo (Anexo 1) como sendo funcionais, por exemplo, RG e orgaoemissor (domínio: Pessoa ) e ano e semestre (domínios: Turma e MatrizCurricular ). Além de funcionais, as propriedades também podem ser funcionais inversas, ou somente funcionais inversas. Observa-se cada caso: 1. <owl:datatypeproperty rdf:id="cpf"> 2. <rdfs:range rdf:resource=" 3. <rdfs:domain rdf:resource="#pessoa"/> 4. rdf:resource=" 5. rdf:resource=" 6. </owl:datatypeproperty> Figura 52 Exemplo de utilização da característica InverseFunctionalProperty e FunctionalProperty A propriedade CPF além de ser definida como funcional (Figura 52, linha 4), também é especificada como funcional inversa (linha 5). Para cada pessoa existe somente uma propriedade CPF, sendo, assim, funcional. E é aplicada a somente uma pessoa, pois muitas pessoas não podem ter o mesmo valor de CPF, caracterizando a propriedade funcional inversa.
68 67 Como exemplo de uma propriedade somente funcional inversa, segue o código: 1. <owl:datatypeproperty rdf:id=" "> 2. <rdfs:range rdf:resource=" 3. <rdfs:domain rdf:resource="#pessoa"/> 4. rdf:resource=" 5. </owl:datatypeproperty> Figura 53 Exemplo de utilização da característica InverseFunctionalProperty Nesse caso, Figura 53, temos a propriedade que é somente funcional inversa, ou seja, ela aplica-se a somente uma pessoa. Essa propriedade não é funcional porque uma pessoa pode ter múltiplos s. Como restrição à propriedades, pode-se demonstrar a utilização de allvaluesfrom: 1. <owl:class rdf:id="curso"> 2. <rdfs:subclassof> 3. <owl:restriction> 4. <owl:onproperty> 5. <owl:objectproperty rdf:about="#possuiprofessor"/> 6. </owl:onproperty> 7. <owl:allvaluesfrom rdf:resource="#professor"/> 8. </owl:restriction> 9. </rdfs:subclassof> </owl:class> Figura 54 Exemplo de utilização da restrição allvaluesfrom O elemento allvaluesfrom é aplicado localmente à propriedade de determinada classe, ou seja, a restrição somente tem validade na classe que a propriedade pertence. Na Figura 54, a propriedade, em que a restrição é definida, é possuiprofessor (linhas 3 a 8), sendo que a classe é Curso. Tem-se, então, que a referida propriedade somente pode possuir valores que sejam instâncias da classe Professor (linha 7) Definição de Classes Complexas Alguns exemplos utilizando elementos para definição de classes complexas serão demonstradas no decorrer dessa seção. Nem todos os elementos oferecidos pela OWL foram possíveis de ser aplicados ao domínio em questão, pelo fato de não apresentarem a viabilidade de utilização nos conceitos identificados na modelagem da ontologia. A exemplificação da utilização de unionof pode ser dada da seguinte forma:
69 68 <owl:class rdf:id="departamento"> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#curso" /> <owl:class rdf:about="#funcionario" /> </owl:unionof> </owl:class> Figura 55 Exemplo de utilização de unionof A utilização de unionof, na Figura 55, está estabelecendo a união de duas classes Curso e Funcionario, para que através dessa relação seja definida a classe Departamento. <owl:class rdf:id="funcionarioprofessor"> <owl:intersectionof rdf:parsetype="collection"> <owl:class rdf:about="#funcionario" /> <owl:restriction> <owl:onproperty rdf:resource="#possuicargo" /> <owl:hasvalue rdf:resource="#professor" /> </owl:restriction> </owl:intersectionof> </owl:class> Figura 56 Exemplo de utilização de intersectionof A declaração da classe FuncionarioProfessor (Figura 56) apresenta que ela é formada pela intersecção da classe Funcionario e da propriedade possuicargo que contém o valor Professor. A Figura 57 apresenta a classe dos funcionários que não são professores: 1. <owl:class rdf:id="naofuncionarioprofessor"> 2. <owl:intersectionof rdf:parsetype="collection"> 3. <owl:class rdf:about="#funcionario"/> 4. <owl:class> 5. <owl:complementof> 6. <owl:restriction> 7. <owl:onproperty rdf:resource="#possuicargo" /> 8. <owl:hasvalue rdf:resource="#professor" /> 9. </owl:restriction> 10. </owl:complementof> 11. </owl:class> 12. </owl:intersectionof> 13. </owl:class> Figura 57 Exemplo de utilização de complementof Através da utilização do elemento complementof podem-se obter os indivíduos que não pertencem a classe que foi definida. Assim, conseguem-se as instâncias que não satisfazem a restrição de que possuicargo contenha Professor através de
70 complementof (linhas 5 a 10) e é então realizada a intersecção do resultado dessa inferência com a classe Funcionario, obtendo a classe que se está definindo NaoFuncionarioProfessor Instanciação da Ontologia Após a definição da ontologia, há a criação de instâncias para as classes que foram declaradas: Figura 58 Formulário para declaração de instâncias As instâncias são inseridas a partir de um formulário que o Protégé fornece automaticamente (Figura 58), conforme o esquema primeiramente desenvolvido para a ontologia. <Cargo rdf:id="auxiliarbiblioteca"> <nome>auxiliarbiblioteca</nome> <descricao>auxiliar na Biblioteca</descricao> <codigo>2</codigo> </Cargo> Figura 59 Declaração de indivíduos A Figura 59 exemplifica a definição de indivíduos, declarando auxiliarbiblioteca como uma instância da classe Cargo. Todas as suas propriedades também são instanciadas, cada uma assumindo um determinado valor.
71 Considerações Finais Todas as definições para a ontologia darão suporte semântico às aplicações que envolvam o domínio abordado, visto que, com as determinações destes relacionamentos entre classes e propriedades, pode-se obter um maior nível de compreensão pela máquina, para que se possa inferir conhecimentos semânticos através do processamento realizado sobre o que se foi estabelecido. É importante ressaltar que a modelagem de uma ontologia requer um nível extenso de abstrações e pode ser que a mesma possa não abordar todas as questões necessárias, como a definição de todos os termos envolvidos em um domínio, para tal sucesso no processamento semântico. Através da modelagem realizada, por exemplo, observa-se o tratamento dado para a inferência de funcionários. A partir das regras estabelecidas para este recurso, é possível responder a uma consulta do tipo: Necessito de uma relação de todos os funcionários administrativos. Isso acontece em virtude da classe identificada como NaoFuncionarioProfessor. Ou seja, o complemento de todos que tem a característica de possuir cargo professor, seria a resposta a tal inferência. A partir da definição das classes complexas, é possível verificar os axiomas da ontologia. Ou seja, algumas verdades são estabelecidas. Conforme observado nos exemplos supracitados, as relações existentes nas subclasses fornecem circunstâncias de necessidade entre classes. Por exemplo, para ser um professsor, um indivíduo necessita também ser um funcionário. Desta forma, ainda que a ontologia para a universidade não tenha sido desenvolvida em toda a sua extensão (dada a característica complexa de tal domínio), o entendimento das caracterísicas e restrições para propriedades e relacionamentos entre classes oferecidas pela OWL é de extrema relevância e o ponto-chave inicial para que se venha a modelar ontologias com um conjunto complexo de regras que possibilitem a inferência semântica por aplicativos sem o auxílio humano.
72 71 5 CONSIDERAÇÕES FINAIS O desenvolvimento da Web Semântica é um grande desafio enfrentado pelos pesquisadores científicos da área, pois envolve a transformação da atual Web somente de exibição de informações para uma Web onde as informações sejam apresentadas, interpretadas e processadas por agentes de software, auxiliando o homem em suas atividades. Observa-se que as pesquisas nessa área estão tendendo, gradualmente, para o tema ontologia, visto que diversas linguagens e ferramentas têm sido criadas no sentido de promover sua definição. A ferramenta empregada, neste trabalho, para demonstração de como utilizar um ambiente para construção de ontologias, a Protégé, foi utilizada com o seu plugin OWL, para que fornecesse suporte a referida linguagem. Além da modelagem de uma ontologia, com a definição de suas classes, subclasses, slots, este software possibilita a personalização de um formulário de dados para a entrada de instâncias conforme a ontologia modelada. Grande parte da infra-estrutura de suporte a Web Semântica está em fase de desenvolvimento, sendo, ainda, necessários muitos esforços no sentido de se obter a sua concretização. Este trabalho descreveu o desenvolvimento de uma ontologia, abordando a parte relacionada a camada de esquema da Web Semântica, a fim de exemplificar os conceitos, abordados na revisão de literatura, referentes as propriedades oferecidas pela linguagem OWL, detalhando ainda, a metodologia necessária para sua definição na ferramenta Protégé, através do processo para construção de uma ontologia com a determinação da hierarquia de classes, propriedades e seus relacionamentos referentes a um domínio. É importante lembrar que não existe uma única ontologia correta para um domínio (Ontology, 2003). Diferentes pessoas podem modelar ontologias diferentes para um
73 mesmo domínio. A linguagem utilizada como apoio à definição do modelo ontológico, a OWL, foi escolhida por ser uma das recomendações da W3C (W3C, 2003) para construções de ontologias. Como sugestões para trabalhos futuros recomenda-se uma comparação entre as linguagens existentes para descrição de ontologias, bem como de suas ferramentas, abordando as potencialidades que cada uma oferece ou suprime e estudos mais aprofundados referentes a ontologias aplicadas a serviços Web. 72
74 73 6 REFERÊNCIAS BIBLIOGRÁFICAS (Abel, 2001) (Berners-Lee, 2001) (Bézivin, 1998) (Bortz, 1997) (Carneiro, 2003) Abel, M., Estudo da perícia em petrografia sedimentar e sua importância para a engenharia de conhecimento. In: Programa de Pós-Graduação em Ciência da Computação UFRGS. Porto Alegre, BERNERS-LEE, Tim. HENDLER, James. LASSILA, Ora. The Semantic Web. Maio de Disponível em: < Acesso em 04/12/2003. BÉZIVIN, Jean. Who s Afraid of Ontologies? Disponível em: < Acesso em 04/12/2003. BORST, W. N. Construction of engineering ontologies. In: University of Twente: Enschede, CARNEIRO, Márcio Rodrigo de Freitas. Ontologias, Web Semântica e Aplicações. Junho de Monografia apresentada ao IME-USP (Instituto de Matemática e Estatística da Universidade de São Paulo). Disponível em < /Relatorios/Marcio.monografia.Carneiro.pdf>. Acesso em: 04/12/2003. (DAML, 2003) THE DARPA AGENT MARKUP LANGUAGE HOMEPAGE. Junho
75 de Disponível em < Acesso em: 04/12/ (DAML+OIL, 2001) (Duineveld, 1999) (FOOD, 2003) (Gómez-Pérez, 1999) (Grubber, 1999) (Guarino, 1998) DAML+OIL (MARCH 2001) REFERENCE DESCRIPTION. Dezembro de Disponível em: < Acesso em: 04/12/2003. DUINEVELD, A. STOTER, R., WEIDEN, M. KENEPA, B., BENJAMINS, R. Wondertools? A comparative study of ontological engineering tools. In: Proceedings of the 12 th Workshop on Knowledge Acquisition, Modeling and Management (KAW 99). Banff: Canadá, Outubro de OWL WEB ONTOLOGY LANGUAGE - GUIDE. Disponível em: < Acesso em 24/11/2003. GÓMEZ-PÉREZ, A. BENJAMINS, V. R. Overview of knowledge sharing and reuse components: Ontologies and problem-solving methods. In: International Joint Conference on Artificial Intelligence(IJCAI-99),Workshop on Ontologies and Problem- Solving Methods (KRR5), V.R. Benjamins, et al., Editors. Stockolm, Sweden, GRUBBER, T. What is an Ontology?. Disponível em: < Acesso em 04/12/2003. GUARINO, N. Formal Ontology and Information Systems. In: Formal Ontology in Information Systems (FOIS 98). Trento, Itália, (HTML, 2003) HYPERTEXT MARKUP LANGUAGE (HTML). Maio de Disponível em: < Acesso em: 04/12/2003. (Lustosa, 2003) LUSTOSA, Pollyane de Almeida. Estudo e documentação dos
76 conceitos, linguagens e ferramentas relacionadas a Ontologia. Relatório de Estágio. Curso de Bacharel em Sistemas de Informação. Centro Universitário Luterano de Palmas CEULP/ULBRA, Palmas, (Moura, 2001) MOURA, Ana Maria de C. A Web Semântica: fundamentos e tecnologias. Rio de Janeiro: Instituto Militar de Engenharia, Set Disponível em: < congresos/cicc/cicc2001/datos/tutoriales/tutorial4/t4.pdf>. Acesso em 04/12/2003. (Namespaces, 2003) NAMESPACES IN XML 1.1. Novembro de Disponível em: < Acesso em: 04/12/2003. (Novello, 2002) NOVELLO, Taisa Carla. Ontologias, Sistemas baseados em conhecimento e modelos de banco de dados Disponível em: < pdf>. Acesso em: 04/12/2003. (OIL, 2000) DESCRIPTION OF OIL. Disponível em: Acesso em: 04/12/2003. (OILEd, 2003) OILED. Fevereiro de Disponível em: < Acesso em: 04/12/2003. (OntoEdit, 2003) (Ontology, 2003) ONTOEDIT DESIGNING THE SEMANTIC WEB. Disponível em: < Acesso em: 04/12/2003. ONTOLOGY DEVELOPMENT 101: A GUIDE TO CREATING YOUR FIRST ONTOLOGY. Stanford University. (OWL, 2003) OWL WEB ONTOLOGY LANGUAGE GUIDE. Agosto de Disponível em: < />. Acesso em: 04/12/2003.
77 76 (OWL, 2003b) (OWL, 2003c) OWL WEB ONTOLOGY LANGUAGE REFERENCE. Agosto de Disponível em: < Acesso em: 04/12/2003. OWL WEB ONTOLOGY LANGUAGE. Disponível em: < Acesso em: 04/12/2003. (Protégé, 2003) PROTÉGÉ. Junho de Disponível em: < Acesso em: 04/12/2003. (Protégé, 2003b) PROTÉGÉ. Outubro de Disponível em: < Tutorial-ISWC03.pdf>. Acesso em: 04/12/2003. (RDF, 2000) (RDFS, 2003) RESOURCE DESCRIPTION FRAMEWORK (RDF) SCHEMA SPECIFICATION 1.0. Março de Disponível em: < Acesso em 04/12/2003. RDF VOCABULARY DESCRIPTION LANGUAGE 1.0: RDF SCHEMA Disponível em: < Acesso em 04/12/2003. (SHOE, 2000) SHOE 1.01 PROPOSED SPECIFICATION. Abril de Disponível em: < Acesso em: 04/12/2003. (Studer, 1998) STUDER, R., V.R. BENJAMINS, and D. FENSEL, Knowledge engineering: principles and methods, In: Data & Knowledge Engineering. Amsterdam, (SW, 2001) SEMANTIC WEB Disponível em: < Acesso em 04/12/2003.
78 77 (W3C, 2003) WORLD WIDE WEB CONSORTIUM. Disponível em: < Acesso em 04/12/2003. (WINE, 2003) (XML, 2003) OWL WEB ONTOLOGY LANGUAGE - GUIDE. Disponível em: < Acesso em 24/11/2003. EXTENSIBLE MARKUP LANGUAGE Disponível em: < Acesso em 04/12/2003. (XOL, 1999) XOL ONTOLOGY EXCHANGE LANGUAGE. Agosto de Disponível em: < Acesso em: 04/12/2003.
79 ANEXOS 78
80 79 Anexo 1 1. Código OWL da Ontologia modelada <rdf:rdf xmlns=" xmlns:rdf=" xmlns:rdfs=" xmlns:owl=" <owl:ontology rdf:about=""/> <owl:class rdf:id="professor"> <rdfs:subclassof> <owl:class rdf:about="#funcionario"/> </rdfs:subclassof> </owl:class> <owl:class rdf:id="turma"/> <owl:class rdf:id="disciplina"/> <owl:class rdf:id="cursodisciplina"/> <owl:class rdf:id="curso"> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#possuiprofessor"/> </owl:onproperty> <owl:allvaluesfrom rdf:resource="#professor"/> </owl:restriction> </rdfs:subclassof> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#possuimatrizcurricular"/> </owl:onproperty> <owl:allvaluesfrom> <owl:class rdf:id="matrizcurricular"/> </owl:allvaluesfrom> </owl:restriction> </rdfs:subclassof> </owl:class> <owl:class rdf:id="planoensino"> <rdfs:comment>plano de Ensino referente a uma disciplina</rdfs:comment> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#bibliografiabasica"/> </owl:onproperty> <owl:somevaluesfrom> <owl:class rdf:id="livro"/> </owl:somevaluesfrom> </owl:restriction> </rdfs:subclassof> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#bibliografiacomplementar"/> </owl:onproperty> <owl:somevaluesfrom rdf:resource="#livro"/> </owl:restriction>
81 80 </rdfs:subclassof> </owl:class> <owl:class rdf:id="funcionarioprofessor"> <owl:intersectionof rdf:parsetype="collection"> <owl:class rdf:about="#funcionario" /> <owl:restriction> <owl:onproperty rdf:resource="#possuicargo" /> <owl:hasvalue rdf:resource="#professor" /> </owl:restriction> </owl:intersectionof> </owl:class> <owl:class rdf:id="naofuncionarioprofessor"> <owl:intersectionof rdf:parsetype="collection"> <owl:class rdf:about="#funcionario"/> <owl:class> <owl:complementof> <owl:restriction> <owl:onproperty rdf:resource="#possuicargo" /> <owl:hasvalue rdf:resource="#professor" /> </owl:restriction> </owl:complementof> </owl:class> </owl:intersectionof> </owl:class> <owl:class rdf:id="funcionario"> <rdfs:subclassof> <owl:class rdf:id="pessoa"/> </rdfs:subclassof> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#possuicargo"/> </owl:onproperty> <owl:allvaluesfrom> <owl:class rdf:id="cargo"/> </owl:allvaluesfrom> </owl:restriction> </rdfs:subclassof> </owl:class> <owl:class rdf:id="departamento"> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#possuicurso"/> </owl:onproperty> <owl:allvaluesfrom rdf:resource="#curso"/> </owl:restriction> </rdfs:subclassof> <rdfs:subclassof> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#possuifuncionario"/> </owl:onproperty> <owl:allvaluesfrom rdf:resource="#funcionario"/> </owl:restriction> </rdfs:subclassof> </owl:class> <owl:objectproperty rdf:id="credito"/>
82 <owl:objectproperty rdf:id="possuidisciplina"> <rdfs:domain rdf:resource="#cursodisciplina"/> <rdfs:range rdf:resource="#disciplina"/> </owl:objectproperty> <owl:objectproperty rdf:id="constaem"/> <owl:objectproperty rdf:id="bibliografiacomplementar"> <rdfs:domain rdf:resource="#planoensino"/> <rdfs:range rdf:resource="#livro"/> </owl:objectproperty> <owl:objectproperty rdf:id="ministraturma"> <owl:inverseof> <owl:objectproperty rdf:about="#ministradapor"/> </owl:inverseof> <rdfs:range rdf:resource="#turma"/> <rdfs:domain rdf:resource="#professor"/> </owl:objectproperty> <owl:objectproperty rdf:id="pertenceaodpto"> <owl:inverseof> <owl:objectproperty rdf:about="#possuicurso"/> </owl:inverseof> <rdfs:domain rdf:resource="#curso"/> <rdfs:range rdf:resource="#departamento"/> </owl:objectproperty> <owl:objectproperty rdf:id="recomendadoaoplanoensino"> <rdfs:range rdf:resource="#planoensino"/> <rdfs:domain rdf:resource="#livro"/> </owl:objectproperty> <owl:objectproperty rdf:id="prerequisito"> <rdfs:domain rdf:resource="#cursodisciplina"/> <rdfs:range rdf:resource="#cursodisciplina"/> </owl:objectproperty> <owl:objectproperty rdf:id="possuiplanoensino"> <owl:inverseof> <owl:objectproperty rdf:about="#pertencedisciplina"/> </owl:inverseof> <rdfs:range rdf:resource="#planoensino"/> <rdfs:domain rdf:resource="#disciplina"/> </owl:objectproperty> <owl:objectproperty rdf:id="bibliografiabasica"> <rdfs:domain rdf:resource="#planoensino"/> <rdfs:range rdf:resource="#livro"/> </owl:objectproperty> <owl:objectproperty rdf:id="ministradapor"> <owl:inverseof rdf:resource="#ministraturma"/> <rdfs:domain rdf:resource="#turma"/> <rdfs:range rdf:resource="#professor"/> <rdfs:comment>propriedade de relacionamento entre Turma e Professor</rdfs:comment> rdf:resource=" </owl:objectproperty> <owl:objectproperty rdf:id="pertenceturma"> <owl:inverseof> <owl:objectproperty rdf:about="#possuicursodisciplina"/> </owl:inverseof> <rdfs:domain rdf:resource="#cursodisciplina"/> <rdfs:range rdf:resource="#turma"/> </owl:objectproperty> <owl:objectproperty rdf:id="possuicargo"> <owl:inverseof> 81
83 <owl:objectproperty rdf:about="#possuifuncionario"/> </owl:inverseof> <rdfs:domain rdf:resource="#funcionario"/> <rdfs:range rdf:resource="#cargo"/> rdf:resource=" </owl:objectproperty> <owl:objectproperty rdf:id="possuicurso"> <owl:inverseof rdf:resource="#pertenceaodpto"/> <rdfs:range rdf:resource="#curso"/> <rdfs:domain rdf:resource="#departamento"/> </owl:objectproperty> <owl:objectproperty rdf:id="possuiprofessor"> <rdfs:domain rdf:resource="#curso"/> <rdfs:range rdf:resource="#professor"/> </owl:objectproperty> <owl:objectproperty rdf:id="possuifuncionario"> <owl:inverseof rdf:resource="#possuicargo"/> <rdfs:domain rdf:resource="#departamento"/> <rdfs:range rdf:resource="#funcionario"/> </owl:objectproperty> <owl:objectproperty rdf:id="possuicursodisciplina"> <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#turma"/> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#turma"/> <owl:class rdf:about="#matrizcurricular"/> </owl:unionof> </owl:class> <owl:class rdf:about="#matrizcurricular"/> </owl:unionof> </owl:class> </rdfs:domain> <owl:inverseof rdf:resource="#pertenceturma"/> <rdfs:range rdf:resource="#cursodisciplina"/> </owl:objectproperty> <owl:objectproperty rdf:id="pertencematrizcurricular"> <owl:inverseof rdf:resource="#possuicursodisciplina"/> <rdfs:domain rdf:resource="#cursodisciplina"/> <rdfs:range rdf:resource="#matrizcurricular"/> </owl:objectproperty> <owl:objectproperty rdf:id="possuimatrizcurricular"> <owl:inverseof> <owl:objectproperty rdf:about="#pertenceaocurso"/> </owl:inverseof> <rdfs:domain rdf:resource="#curso"/> <rdfs:range rdf:resource="#matrizcurricular"/> </owl:objectproperty> <owl:objectproperty rdf:id="pertenceaocurso"> <owl:inverseof rdf:resource="#possuimatrizcurricular"/> <rdfs:range rdf:resource="#curso"/> <rdfs:domain rdf:resource="#matrizcurricular"/> </owl:objectproperty> <owl:objectproperty rdf:id="pertencedisciplina"> <owl:inverseof rdf:resource="#possuiplanoensino"/> <rdfs:domain rdf:resource="#planoensino"/> <rdfs:range rdf:resource="#disciplina"/> 82
84 </owl:objectproperty> <owl:datatypeproperty rdf:id="endereco"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#pessoa"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="sala"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#turma"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="anoedicao"> rdf:resource=" <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#livro"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="autor"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#livro"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="vagas"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#turma"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="avaliacao"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#planoensino"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="descricao"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#cargo"/> <owl:class rdf:about="#matrizcurricular"/> </owl:unionof> </owl:class> <owl:class rdf:about="#matrizcurricular"/> <owl:class rdf:about="#cargo"/> </owl:unionof> </owl:class> </rdfs:domain> 83
85 </owl:datatypeproperty> <owl:datatypeproperty rdf:id="semestre"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#turma"/> <owl:class rdf:about="#matrizcurricular"/> </owl:unionof> </owl:class> <owl:class rdf:about="#turma"/> <owl:class rdf:about="#matrizcurricular"/> </owl:unionof> </owl:class> </rdfs:domain> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="horario"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#turma"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="agencia"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#funcionario"/> rdf:resource=" <rdfs:comment>agência Bancária</rdfs:comment> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="volume"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#livro"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="programa"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#planoensino"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="mercadotrabalho"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#curso"/> 84
86 </owl:datatypeproperty> <owl:datatypeproperty rdf:id="datanascimento"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#pessoa"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="titulo"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#livro"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="periodo"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#cursodisciplina"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="ano"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#turma"/> <owl:class rdf:about="#matrizcurricular"/> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#turma"/> <owl:class rdf:about="#matrizcurricular"/> </owl:unionof> </owl:class> </owl:unionof> </owl:class> </rdfs:domain> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="perfilprofissional"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#curso"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="remuneracaosalarial"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#funcionario"/> 85
87 rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="horaaula"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#cursodisciplina"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="editora"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#livro"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="isbn"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#livro"/> rdf:resource=" rdf:resource=" ty"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id=" "> <rdfs:domain rdf:resource="#pessoa"/> <rdfs:range rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="sigla"> <rdfs:range rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="ementa"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#planoensino"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="objetivodisciplina"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#planoensino"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="nome"> <rdfs:range rdf:resource=" <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#disciplina"/> <owl:class rdf:about="#cargo"/> 86
88 <owl:class rdf:about="#departamento"/> <owl:class rdf:about="#curso"/> </owl:unionof> </owl:class> </rdfs:domain> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="tipo"> rdf:resource=" <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#cursodisciplina"/> <owl:class rdf:about="#curso"/> </owl:unionof> </owl:class> <owl:class rdf:about="#cursodisciplina"/> <owl:class rdf:about="#curso"/> </owl:unionof> </owl:class> </rdfs:domain> <rdfs:range rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="objetivo"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#curso"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="metodologia"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#planoensino"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="diferencial"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#curso"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="conta"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#funcionario"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="matricula"> 87
89 <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#funcionario"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="codigo"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class> <owl:unionof rdf:parsetype="collection"> <owl:class rdf:about="#disciplina"/> <owl:class rdf:about="#cargo"/> <owl:class rdf:about="#planoensino"/> </owl:unionof> </owl:class> <owl:class rdf:about="#departamento"/> <owl:class rdf:about="#cargo"/> <owl:class rdf:about="#disciplina"/> <owl:class rdf:about="#matrizcurricular"/> <owl:class rdf:about="#planoensino"/> </owl:unionof> </owl:class> </rdfs:domain> rdf:resource=" rdf:resource=" ty"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="orgaoemissor"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#pessoa"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="creditos"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#cursodisciplina"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="numero"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#turma"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="cpf"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#pessoa"/> 88
90 rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="rg"> <rdfs:range rdf:resource=" <rdfs:domain rdf:resource="#pessoa"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="telefone"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#pessoa"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="localedicao"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#livro"/> rdf:resource=" </owl:datatypeproperty> <owl:datatypeproperty rdf:id="cargahoraria"> <rdfs:range rdf:resource=" rdf:resource=" <rdfs:domain rdf:resource="#professor"/> </owl:datatypeproperty> <owl:functionalproperty rdf:id="objetivocurso"> <rdfs:domain rdf:resource="#planoensino"/> rdf:resource=" <rdfs:range rdf:resource=" </owl:functionalproperty> <owl:functionalproperty rdf:id="nomepessoa"> <rdfs:domain rdf:resource="#pessoa"/> rdf:resource=" <rdfs:range rdf:resource=" </owl:functionalproperty> <Disciplina rdf:id="bd3"> <nome>banco de Dados 3</nome> <codigo>1</codigo> <possuiplanoensino> <PlanoEnsino rdf:id="planoensino1"> <objetivocurso>o Curso de Bacharelado em Sistemas de Informação propõe-se a fornecer uma noção abrangente das áreas relacionadas às ciências da computação, acrescentado de uma formação que permita ao aluno gerir, administrar e, principalmente, criar empresas ou atividades de cunho comércio-empresarial que se utilizam destas ciências.</objetivocurso> <codigo>1</codigo> <avaliacao>g1: 7,0 e G2: 7,0, Trabalhos: 3,0</avaliacao> 89
91 <objetivodisciplina>transmitir ao aluno conhecimentos básicos de Dados Semi-Estruturados; Introduzir o aluno à linguagem XML, apresentando formas de estruturação, armazenamento e acesso aos dados; capacitar o aluno para o desenvolvimento de aplicações XML. </objetivodisciplina> <ementa>conceitos de Banco de Dados e Sistema de Gerência de Banco de Dados; introdução a dados semi-estruturados; noções de XML; linguagens de consulta e esquemas para dados semiestruturados; apresentação de produtos comerciais (Tamino, Lore, etc). Desenvolvimento de aplicações com bancos de dados semiestruturados. </ementa> <programa>1. Conceitos de Banco de Dados e Sistema de Gerência de Banco de Dados 2. Introdução a dados semi-estruturados 3. Noções de XML 4. Esquemas para dados XML 4. Linguagens de consulta 5. Apresentação de produtos comerciais (Tamino, Lore, etc) 6. Construção de aplicações com bancos de dados XML. </programa> <metodologia>aulas Expositivas, Trabalhos em Grupo Extra- Classe e Aulas Práticas em Laboratório </metodologia> </PlanoEnsino> </possuiplanoensino> </Disciplina> <Turma rdf:id="portal_individual_2"> <ano>2003</ano> <semestre>2</semestre> <sala>201</sala> <vagas>30</vagas> <horario>3.1</horario> <ministradapor> <Professor rdf:id="professor1"> <agencia>1000-0</agencia> <conta> </conta> <CPF> </CPF> <datanascimento>27/04/1970</datanascimento> <nomepessoa>mariana Vasconcelos</nomePessoa> <orgaoemissor>ssp-to</orgaoemissor> <RG> </RG> < >[email protected]</ > <endereco>206 Sul</endereco> <telefone> </telefone> <matricula>12345</matricula> <remuneracaosalarial> </remuneracaosalarial> <cargahoraria>100</cargahoraria> </Professor> </ministradapor> <numero>201</numero> </Turma> <Livro rdf:id="ontologias"> <titulo>ontologias</titulo> <anoedicao>2003</anoedicao> <editora>ulbra</editora> <ISBN>1245</ISBN> <localedicao>palmas</localedicao> <autor>deise Saccol</autor> <volume>1</volume> <recomendadoaoplanoensino rdf:resource="#planoensino1"/> </Livro> <Cargo rdf:id="auxiliarbiblioteca"> <nome>auxiliarbiblioteca</nome> <descricao>auxiliar na Biblioteca</descricao> 90
92 <codigo>2</codigo> </Cargo> <CursoDisciplina rdf:id="si_bd3"> <horaaula>60</horaaula> <creditos>4</creditos> <tipo>opcional</tipo> <tipo>simpleinstance(si_contabilidade of Cls(CursoDisciplina))</tipo> <periodo>6</periodo> <pertenceturma rdf:resource="#portal_individual_2"/> <possuidisciplina rdf:resource="#bd3"/> <pertencematrizcurricular> <MatrizCurricular rdf:id="mc1"> <ano>2003</ano> <semestre>2</semestre> <codigo>1</codigo> <descricao>matriz Curriciular para o curso de Sistemas de Informacao</descricao> </MatrizCurricular> </pertencematrizcurricular> </CursoDisciplina> <Cargo rdf:id="assistenteadminsitrativo"> <nome>assistenteadministrativo</nome> <codigo>1</codigo> <descricao>auxiliar na Administracao</descricao> </Cargo> <Curso rdf:id="cursosi"> <nome>sistemas de Informacao</nome> <perfilprofissional>o profissional de Sistemas de Informação é preparado para investigar conceitos e técnicas de informática, contribuindo na solução de problemas de tratamento de informações nas organizações. Ele também é capaz de desenvolver sistemas de informação em concordância com as estruturas organizacionais e com ênfase em informática e sua aplicação, além de contribuir para o desenvolvimento científico e tecnológico da área de Sistemas de Informação. O curso do CEULP/ULBRA forma profissionais empreendedores, capazes de projetar, implantar e gerenciar a infraestrutura da tecnologia de informação, envolvendo computadores, comunicação de dados em sistemas organizacionais. </perfilprofissional> <mercadotrabalho>o mercado de trabalho para o bacharel em Sistemas de Informação é bastante promissor. De uma maneira geral, este profissional é capaz de desempenhar funções como projetista de software, consultor de tecnologia e cargos de gerência em centros de informática. São, também, candidatos potenciais aos cursos de pós-graduação responsáveis pelo desenvolvimento científico da área de Informática e Computação. </mercadotrabalho> <diferencial>o curso trabalha, conjuntamente, o ensino, a pesquisa e a extensão. Dessa forma, as ações realizadas por professores, alunos e demais colaboradores objetivam: - intensificar a vida universitária através de seminários e grupos de estudos, desenvolvendo tópicos extra-curriculares; - preparar os alunos para a pós-graduação ou para especialização em novas tecnologias, estimulando sua participação em congressos científicos; - desenvolver a linguagem escrita e oral através de exposições e seminários; - inserir os alunos em atividades de desenvolvimento de software, oferecimento de consultoria, planejamento e organização de redes, entre outras; - estabelecer vínculos de contato com a comunidade empresarial, utilizando o conhecimento específico do aluno para suprir necessidades em 91
93 relação ao trabalho prático; - desenvolver habilidades empreendedoras de caráter empresarial, incentivando o surgimento de novas idéias, sempre com espírito crítico e inovador. </diferencial> <tipo>graduacao</tipo> <objetivo>o Curso de Bacharelado em Sistemas de Informação propõe-se a fornecer uma noção abrangente das áreas relacionadas às ciências da computação, acrescentado de uma formação que permita ao aluno gerir, administrar e, principalmente, criar empresas ou atividades de cunho comércio-empresarial que se utilizam destas ciências. </objetivo> <possuiprofessor rdf:resource="#professor1"/> <possuimatrizcurricular rdf:resource="#mc1"/> </Curso> </rdf:rdf> 92
OWL e Protégé-2000 na definição de uma ontologia para o domínio Universidade
OWL e Protégé-2000 na definição de uma ontologia para o domínio Universidade Pollyane de Almeida Lustosa 1, Fabiano Fagundes 2, Parcilene F. de Brito 2 1 Acadêmica do curso de Bacharel em Sistemas de Informação
PROJETO DE REDES www.projetoderedes.com.br
PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro
Web de hoje (2.0) Porquê WEB 2.0?
WEB 2.0 Conceitos O termo Web 2.0 refere-se a mudança para uma Internet como plataforma e um entendimento das regras para obter sucesso nesta nova plataforma. Segundo Tim O'Reilly, um dos criadores do
L A C Laboratory for Advanced Collaboration
Publicação de Dados Governamentais no Padrão Linked Data 2.3 Web Ontology Language (OWL) Karin Breitman José Viterbo Edgard Marx Percy Salas L A C Laboratory for Advanced Collaboration Objetivo deste módulo
Semântica para Sharepoint. Busca semântica utilizando ontologias
Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA
Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos
RDF e RDF Schema na representação de páginas do portal CEULP/ULBRA
RDF e RDF Schema na representação de páginas do portal CEULP/ULBRA Danilo de Abreu Noleto 1, Parcilene Fernandes de Brito 1 1 Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA)
Uma ontologia para a representação do domínio de agricultura familiar na arquitetura AgroMobile. Roger Alves Prof. Me.
Uma ontologia para a representação do domínio de agricultura familiar na arquitetura AgroMobile Roger Alves Prof. Me. Vinícius Maran O que é uma ontologia? Palavra vinda do grego, advinda da união entre
Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.
1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para
Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica
Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica Ernesto F. Veiga, Márcio V. Oliveira Sena, Renato de F. Bulcão Neto [email protected] [email protected]
FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>
FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido
Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.
Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever
DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3
DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil [email protected], [email protected] Resumo.
Protégé-OWL Tutorial. Adriano Melo André Chagas Fred Freitas. Sistemas Inteligentes http://www.cin.ufpe.br/~if684
Protégé-OWL Tutorial Adriano Melo André Chagas Fred Freitas Sistemas Inteligentes http://www.cin.ufpe.br/~if684 Instalação Download do Protégé public de astm stanford.edu (site oficial) Protégé 3.4.4 OWL
UFG - Instituto de Informática
UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares [email protected] Aula 13 Web Services Web Services
2 Engenharia de Software
20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite
Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.
Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Web Semântica. Web Semântica. uma introdução @yaso
Web Semântica uma introdução @yaso O que é SEMÂNTICA Semântica é o estudo do signifcado. Incide sobre a relação entre signifcantes, tais como palavras, frases, sinais e símbolos, e o que eles representam,
Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica
Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica Ernesto F. Veiga, Márcio V. Oliveira Sena, Renato de F. Bulcão Neto [email protected] [email protected]
Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:
MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação
Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília
Ontologias Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Origem Teoria sobre a natureza da existência Ramo da filosofia que lida com a natureza e organização da realidade.
3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica
3 Modelo de Controle de Acesso no Projeto de Aplicações na Web Semântica Este trabalho tem o objetivo de integrar o controle de acesso no projeto de aplicações na web semântica. Uma arquitetura de software
04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais
2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Uma Ontologia para Gestão de Segurança da Informação
Uma Ontologia para Gestão de Segurança da Informação Paulo Fernando da Silva, Henrique Otte, José Leomar Todesco, Fernando A. O. Gauthier Programa de Pós-Graduação em Engenharia e Gestão do Conhecimento
O padrão RDF na descrição de imagens
O padrão RDF na descrição de imagens Edeilson Milhomem da Silva 1, Parcilene Fernandes de Brito 1 1 Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Cx. Postal 160 77054-970
Requisitos de Software
Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama [email protected] Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,
OWL-DL Propriedades. Tópicos Especiais em Ontologias UTFPR/CPGEI/Prof. Tacla
OWL-DL Propriedades Tópicos Especiais em Ontologias UTFPR/CPGEI/Prof. Tacla PROPRIEDADES Propriedades são relações entre dois indivíduos. Tipos de propriedades em OWL Object properties: liga um indivíduos
ONTOLOGIA DE DOMÍNIO PARA ANÁLISE DE BLOGS
Centro Universitário Feevale ONTOLOGIA DE DOMÍNIO PARA ANÁLISE DE BLOGS Fernando Mertins Prof. Orientador: Rodrigo Rafael Villarreal Goulart Dezembro de 2007 Roteiro da Apresentação Introdução Objetivos
3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR
Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,
Anexo I Formulário para Proposta
PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura
Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.
Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: [email protected] CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0
AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: [email protected] CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento
Web Semântica e PLN. Paulo Gomes DEI FCTUC
Web Semântica e PLN Paulo Gomes DEI FCTUC 1 Sumário Motivação da Web Semântica Conceitos base da WS WS vs. PLN Sinergias entre WS e PLN Conclusão 2 Motivação Limitações da Web actualmente: Overflow de
D2R EDITOR: HABILITANDO A PUBLICAÇÃO AUTOMÁTICA DE ANOTAÇÕES SEMÂNTICAS DE SITES DINÂMICOS
UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO André Guerreiro Cantarelli D2R EDITOR: HABILITANDO A PUBLICAÇÃO AUTOMÁTICA DE ANOTAÇÕES SEMÂNTICAS DE SITES DINÂMICOS
Ontologias - OWL (Web Ontology Language) Júnio César de Lima Cedric Luiz de Carvalho
Ontologias - OWL (Web Ontology Language) Júnio César de Lima Cedric Luiz de Carvalho Technical Report - RT-INF_004-05 - Relatório Técnico June - 2005 - Junho The contents of this document are the sole
ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA
ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do
Introdução a listas - Windows SharePoint Services - Microsoft Office Online
Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição
Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação
Internet Gabriela Trevisan Bacharel em Sistemas de Infomação Histórico da Web World Wide Web o nosso www é o meio de comunicação mais utilizado no mundo atualmente. Através da WWW qualquer usuário conectado
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo
Sistemas de Informação I
+ Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto [email protected] + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas
Orientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados
1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,
Uso de taxonomias na gestão de conteúdo de portais corporativos.
Gestão de Conteúdo web através de ontologias: conceitos e aplicações Fernando Silva Parreiras Contextualização O que? Uso de taxonomias na gestão de conteúdo de portais corporativos. Quem? Gerentes, consultores
Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA
Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]
1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto
Dadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação [email protected] Conceitos Preliminares
UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula
Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:
Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código
Introdução 17. 1 Introdução
Introdução 17 1 Introdução O volume de informações que gerenciamos tem crescido a cada dia. Realizamos milhões de pesquisas na Web, postamos mensagens em blogs, enviamos mensagens de correio eletrônico,
Microsoft Access XP Módulo Um
Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo
Conceitos de Banco de Dados
Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.
Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis
SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00
SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00 Conteúdo 1. INTRODUÇÃO...3 1.1 CONVENÇÕES, TERMOS E ABREVIAÇÕES... 3 1.1.1 Identificação dos Requisitos... 3 1.1.2 Prioridades
Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados
Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses
04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância
5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância
5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo
Análise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado
PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. [email protected]
PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. [email protected] ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes
HTML Página 1. Índice
PARTE - 1 HTML Página 1 Índice HTML A HISTÓRIA... 2 O COMEÇO E A INTEROPERABILIADE... 3 Primeira Página... 4 Entendendo seu código... 5 Abrindo o código fonte da sua página... 6 Comentários na página...
Requisitos de Software
Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil [email protected], [email protected] Resumo.
Introdução ao Paradigma Orientado a Objetos. Principais conceitos
Introdução ao Paradigma Orientado a Objetos Principais conceitos Paradigmas de Programação PROGRAMAÇÃO ESTRUTURADA X PROGRAMAÇÃO ORIENTADA A OBJETOS Paradigma Programação estruturada Na programação estrutura
Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos
Microsoft Access: Criar consultas para um novo banco de Vitor Valerio de Souza Campos Conteúdo do curso Visão geral: consultas são essenciais Lição: inclui sete seções Tarefas práticas sugeridas Teste.
Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto
PADRÕES PARA O DESENVOLVIMENTO NA WEB
PADRÕES PARA O DESENVOLVIMENTO NA WEB Ederson dos Santos Cordeiro de Oliveira 1,Tiago Bonetti Piperno 1, Ricardo Germano 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR- Brasil [email protected],
MÓDULO 6 INTRODUÇÃO À PROBABILIDADE
MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para
www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00
www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br
Web Semântica e Matching de Ontologias: Uma Visão Geral
Web Semântica e Matching de Ontologias: Uma Visão Geral Hélio Rodrigues de Oliveira Departamento de Computação Universidade Federal do Ceará [email protected] Bernadette Farias Lóscio Departamento
Persistência e Banco de Dados em Jogos Digitais
Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem
DATA WAREHOUSE. Introdução
DATA WAREHOUSE Introdução O grande crescimento do ambiente de negócios, médias e grandes empresas armazenam também um alto volume de informações, onde que juntamente com a tecnologia da informação, a correta
Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL
Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL Diretoria de Sistema - DS Superintendência de Arquitetura de Sistemas - SAS Gerência de Arquitetura de Informação - GAAS
1 http://www.google.com
1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou
Este relatório tem por objetivo, abordar a sintaxe XML.
Relatório do GPES Este relatório tem por objetivo, abordar a sintaxe XML. XML Estrutura do documento Um documento XML é uma árvore rotulada onde um nó externo consiste de: [1] Dados de caracteres (uma
Revisão de Banco de Dados
Revisão de Banco de Dados Fabiano Baldo 1 Sistema de Processamento de Arquivos Antes da concepção dos BDs o registro das informações eram feitos através de arquivos. Desvantagens: Redundância e Inconsistência
Wilson Moraes Góes. Novatec
Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,
MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Sistemas de Informação RENATO SULZBACH MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES
Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.
1 Introdução Testes são importantes técnicas de controle da qualidade do software. Entretanto, testes tendem a ser pouco eficazes devido à inadequação das ferramentas de teste existentes [NIST, 2002].
OBJETOS DE APRENDIZAGEM
MEDs e METADADOS OBJETOS DE APRENDIZAGEM O que é um objeto de aprendizagem? Segundo Wiley, D.A.,2000 Qualquer entidade DIGITAL que pode ser usada, reusada ou referenciada durante um processo de aprendizagem
XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi
XML e Banco de Dados de Internet Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi Motivação Diversas aplicações Web utilizam Fontes de Dados (BD); Arquitetura Cliente-Servidor (2
Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais.
Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais. Tales Henrique José MOREIRA 1 ; Gabriel da SILVA 2 ; 1 Estudante de Tecnologia em Sistemas para
SISTEMA GERENCIADOR DE BANCO DE DADOS
BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos [email protected] SISTEMA GERENCIADOR
Desenvolvendo plugins WordPress usando Orientação a Objetos
Desenvolvendo plugins WordPress usando Orientação a Objetos por Daniel Antunes danieldeveloper.com @danieldeveloper Introdução Desenvolver plugins WordPress é mais que programar: é obter grandes resultados
Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon ([email protected].
Sistemas da Informação Banco de Dados I Edson Thizon ([email protected]) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel
gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado
O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado
ADM041 / EPR806 Sistemas de Informação
ADM041 / EPR806 Sistemas de Informação UNIFEI Universidade Federal de Itajubá Prof. Dr. Alexandre Ferreira de Pinho 1 Sistemas de Apoio à Decisão (SAD) Tipos de SAD Orientados por modelos: Criação de diferentes
5 Mecanismo de seleção de componentes
Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações
Agregadores de Conteúdo
Agregadores de Conteúdo São programas ou sites capazes de interpretar e mostrar o conteúdo dos Feeds RSS. Essa é uma forma de facilitar a leitura de vários sites e blogs, acessando o que há de novo em
Orientação à Objetos. Aécio Costa
Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual
Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: ([email protected]) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Serviços Web Semânticos
Serviços Web Semânticos Paulo Vitor Antonini Orlandin [email protected] Resumo O grande crescimento na utilização de Serviços Web torna imprescindível o desenvolvimento de uma forma de melhoria
