Engenharia de Ontologia
para Web Semântica
José Leomar Todesco
Baseado no trabalho de Natalya F. Noy - A large part of this tutorial is based on “Ontology Development 101: A Guide to Creating Your First
Ontology” by Natalya F. Noy and Deborah L. McGuinness
http://protege.stanford.edu/publications/ontology_development/ontology101.html Vinhos Franceses e regiões vinículas Vinhos da California e regiões vinícolas Qual vinho eu devo servir com frutos do
mar hoje? Uma
ONTOLOGIA Comum de Vinho e comida
Tópicos
O que é uma ontologia?
Tipos de ontologia
Porquê desenvolver uma ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
ontologia
O que é uma ontologia
Uma ontologia é uma descrição explícita de um
domínio:
conceitos
propriedades e conceitos de atributos
Restrições nas propriedades e atributos
Individuos/instâncias (as vezes, mas nem sempre)
Uma ontologia define
um vocabulário comum
um entendimento compartilhado
Fundamentos teóricos da ontologia
Ontologias são largamente usados na engenharia do
conhecimento, inteligência artificial e ciência da
computação em aplicações relacionadas a gestão do conhecimento, processamento de linguagem natural,
e-commerce, integração de informação inteligente,
recuperação de informação, integração e projeto de banco de dados, bio-informática, educação e mais recentemente a um campo emergente chamado Web Semântica.
Fundamentos teóricos da ontologia
Em 1991, o DARPA teve a visão de construir sistemas inteligentes. Eles propuseram o seguinte: “Building knowledge-based systems today usually entails
constructing new knowledge bases from scratch. It could be instead done by
assembling reusable components. Systems developers would then only need to worry about creating the specialized knowledge and reasoners new to the specific
task of their system. This new system would interoperate with existing systems, using then to perform some of its reasoning. In this way, declarative knowledge,
problem-solving techniques and reasoning services would all be shared among systems. This approach would facilitate building bigger and better systems and
Fundamentos teóricos da ontologia
No mesmo período da apresentação da idéia do DARPA, vários projetos surgiram com propostas de metodologias para desenvolver sistemas baseados em conhecimento. Nem todos tratam ontologias, mas fundamentam as noções na comunidade da Engenharia do Conhecimento. Este projetos incluem:
Estruturas de tarefas (Chandrasekaran et al., 1992); Métodos de role-limiting
(McDermott, 1988); CommonKADS (Schreiber et al., 1994); Protégé (Musen, 1993); MIKE (Angele et al., 1998); IDEAL (Gómez-Perez et al., 1997);
Componentes de Expertise (Steels, 1990); EXPECT (Swartout an Gil, 1995); GDM (Terpstra et al., 1993); VITAL (Domingue et al., 1993)
Definições de ontologia
Neches e colegas (1991): “An ontology defines the basic terms and relations
comprising the vocabulary of a topic area as well as the rules for combining terms and relations to define extensions to the vocabulary.”
Alguns anos depois Gruber (1993): “An ontology is an explicit specification of
a conceptualization.”
Borst modificou a definição de Gruber em 1997: “Ontologies are defined as a
formal specification of a shared conceptualization”
Bernaras e colegas. (1996): “It [an ontology] provides the means for describing
explicitly the conceptualization behind the knowledge represented in a knowledge base.”
Definições de ontologia
Swartout et al. (1997): “An ontology is a hierarchically structured set of terms
for describing a domain that can be used as a skeletal foundation for a knowledge base.”
Guarino (1998): “A set of logical axioms designed to account for the intended
meaning of a vocabulary.”
Uschold e Jasper (1999): “An ontology may take a variety of forms, but it will
necessarily include a vobabulary of terms and some specification of their meaning. This includes definitions and an indication of how concepts are inter-related which collectivelly impose a structure on the domain and constrain the possible interpretations of terms.”
Principais componentes de uma
ontologia
Ontologias heavyweight e lightweight podem ser modeladas com diferentes técnicas de modelagem e implementadas em várias linguagens.
Altamente informal: expressada em linguagem natural
Semi-informal: expressada em linguagem natural estruturada e restrita
Semi-formal: expressada em uma linguagem artificial e definida formalmente (Ontolingua, OWL)
Rigorosamente formal: provem termos definidos meticulosamente com semântica formal, teoremas e provas de propriedades tais como inspirados na terminologia clássica da lógica de primeira ordem (soundness).
No início da década de 90, ontologias foram feitas usando principalmente técnicas de modelagem de IA baseadas em frames e lógica de 1ª ordem.
Nos últimos anos, técnicas de representação de conhecimento baseadas description
logics (DL) tem sido usada para construir ontologias e novas linguagens DL como OIL,
DAML+OIL e OWL tem aparecido no contexto da Web Semântica.
Principais componentes de uma
ontologia
Modelando ontologias heavyweight
Gruber (1993) propôs modelar ontologias usando frames e lógica de 1ª ordem, identificando 5 tipos de componentes: classes, relações, funções, axiomas formais e instâncias.
Classes: representam conceitos, que são definidos de senso comum.
Relações: representam um tipo de associação entre conceitos de um domínio.
Funções: são um caso especial de relações em que o n-ésimo elemento da relação é único para o n-1-ésimo elemento precedente. (Ex. Pagar, que obtém o preço após aplicar desconto)
Axiomas formais: serve para modelar sentenças que são sempre verdadeiras.
Instâncias: são usadas para representar elementos ou indivíduos em uma ontologia.
Modelando ontologias heavyweight com DL
Description Logics é um formalismo lógico cuja teoria é dividida em duas partes: TBox e ABox
TBox: contém conhecimento intensional (teminologias). Contém definições de conceitos e papéis/funções (roles).
ABox: provem conhecimento extensional (assertivo) que é específico para o indivíduo. Indivíduos representam instâncias.
Principais componentes de uma
ontologia
Modelando ontologias lightweight
Com técnicas de engenharia de software: A UML de Rumbaugh et al. (1998) pode ser usada como uma técnica para modelar ontologias. Uma das razões é o fácil entendimento e uso que a UML proporciona para as pessoas de fora da comunidade de IA.
Empregam diagramas de classes para representar conceitos (e seus atributos) e OCL (Object Constraint Language) para representar reláções entre conceitos e aximas.
Exemplos de ontologia
Taxonomias na Web
Yahoo! categorias
Catalogos para vendas on-line
Amazon.com (produtos catálogos)
Terminologia padrão de domínio-específico
Unified Medical Language System (UMLS)
UNSPSC – terminologia para produtos e serviços
O que é “Ontology Engineering”?
Ontology Engineering: Define termos no domínio e relationamentos entre eles
Definir conceitos no domínio (classes)
Arranjando os conceitos na hierarquia (hierarquia de subclasse-superclasse)
Definir quais atributos e propriedades (slots) que as classes podem ter e restrições em seus valores Definir individuos/instâncias e preencher os valores
do slot
Tópicos
O que é uma ontologia?
Tipos de ontologia
Porquê desenvolver uma ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
ontologia
Tipos de ontologia
Nível de Representação:
Vocabulário: consiste de uma lista de termos e respectivas definições. Corresponde a uma definição em XML Schema, por exemplo;
Taxonomia: definição de hierarquias sobre os termos do vocabulário. Cada termo em uma taxonomia pode estar relacionado a uma ou mais relações do tipo “pai-filho”;
Sistema Relacional: prevê relacionamentos arbitrários além dos hierárquicos entre os termos do vocabulário.
Teoria Axiomática: além dos relacionamentos, suporta a definição de regras de inferência e de restrições através de axiomas (DACONTA, 2003 p. 206). Um axioma é uma afirmação lógica que não pode ser comprovada a partir de outras afirmações, mas que pode servir para a construção de sistemas e para a formulação de teorias (como a teoria de conjuntos).
Tipos de ontologias (Mizoguchi e
colegas)
Tipos de Ontologias (Guarino)
Tipos de Ontologias (Lassila e
McGuinnes)
Tipos de Ontologias (Goméz-Pérez)
Ontologias de Representação do Conhecimento (KR): captura as primitivas de representação usadas para formalizar conhecimento sobre um dado paradigma de KR. (Frame ontology e OKBC ontology). Ontologias geral ou comum: são usadas para representar conhecimento
de senso comum reutilizáveis através do domínio. (Metereology ontology). Ontologias top-level ou upper-level: descrevem conceitos bem gerais e provêm noções gerais sobre quais termos da raiz na ontologia existente deve ser linkado. (IEEE Standard Upper Ontology – SUO).
Ontologias de domínio: são reusadas em um dado domínio específico.
(Médica, farmaceutica, engenharia, leis, empresas, automóveis, etc).
Proporcionam vocabulários sobre conceitos dentro do domínio.
Tipos de Ontologias (Goméz-Pérez)
Ontologias de tarefa: descrevem o vocabulário relacionado a uma tarefa genérica ou atividade pela especialização de termos nas ontologias top-level. (diagnóstico, scheduling, etc).
Ontologias de tarefa de domínio (domínio específico): são tarefas de domínio reutilizáveis em um dado domínio, mas não em outros domínios, são aplicações independentes.
Ontologias de métodos: dão definições de conceitos relevantes e relações aplicadas para especificar um processo de raciocíneo assim como realizar uma tarefa particular. (Scheduling pela decomposição em tarefas). Ontologias de aplicação: são aplicações dependentes que contém todas
as definições necessárias para modelar o conhecimento requerido para uma aplicação particular. (Metereology ontology).
Usabilidade X Reusabilidade
Tópicos
O que é uma ontologia?
Tipos de ontologia
Porquê desenvolver uma ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
Porquê desenvolver uma ontologia?
Para compartilhar entendimento comum
da estrutura da informação
entre pessoas
entre agentes de software
Para possibilitar reuso do conhecimento
do domínio
evitar “re-inventar a roda”
Introduzir padrões para interoperabilidade
Mais Razões
Para fazer suposições explícitas do domínio
facilitar mudanças das hipóteses do domínio
(considerar uma base de conhecimento genética)
facilitar entendimento e atualização de dados legados
Para separar o conhecimento do domínio do
conhecimento operacional
reusar o conhecimento do domínio e operacional
separadamente (e.g., configuração baseada nas restrições)
Uma ontologia as vezes é só o
começo
Ontologias Agentes de Software Métodos de resolução de problemas Aplicações independentes de domínio Databases Declara a estrutura Bases de conhecimento Proporciona Descrição do domínioTópicos
O que é uma ontologia?
Tipos de ontologia
Porquê desenvolver uma ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
ontologia
Vinhos e Vinícolas
Processo de devenvolvimento de
ontologia
Neste exemplo: determinar escopo considerar reuso enumerar termos definir classes definir propriedades definir restrições criar instânciasNa realidade – um processo iterativo:
determinar escopo
considerar reuso
enumerar
Ontology Engineering versus
Object-Oriented Modeling
Uma ontologia reflete a estrutura do mundo é as vezes sobre aestrutura dos conceitos
a representação física
atual não é o caso
Uma estrutura de classe OO reflete a estrutura do dado e do código geralmente sobre o comportamento (métodos) descreve a representação física do dado (long int, char, etc.)
Ferramentas
Todas as telas a seguir do exemplo de vinhos são do:
Protégé-2000, que é:
uma ferramenta gráfica de desenvolvimento de ontolgogias
suporta um modelo de conhecimento rico
é open-source e disponível para uso livremente (http://protege.stanford.edu)
Algumas outras ferramentas disponíveis:
Ontolingua e Chimaera
OntoEdit
OilEd
Determinar Domínio e Escopo
Qual é o domínio que a ontologia irá cobrir?
Para que nós estaremos usando a ontologia?
Quais tipos de questões a informação na
ontologia deve prover respostas (questões de competência)?
Respostas para estas questões podem mudar durante o ciclo de vida
determinar escopo considerar reuso enumerar termos definir classes definir propriedades definir restrições criar instâncias
Questões de Competência
Quais características de vinho eu devo considerar
quando escolher um vinho?
Bordeaux é um vinho tinto ou branco?
Cabernet Sauvignon vai bem com frutos do mar?
Qual a melhor escolha de vinho para carne grelhada?
Quais as características de um vinho que afetam sua
relação com um prato (comida)?
O sabor ou corpo de um específico vinho muda com o
ano da safra?
Qual foi a melhor safra do Napa Zinfandel?
Considerar Reuso
Porquê reusar outras ontologias?
economizar esforço
interagir com as ferramentas que usam
outras ontologias
usar ontologias que tenham sido validadas
através do uso em aplicações determinar escopo considerar reuso enumerar termos definir classes definir propriedades definir restrições criar instâncias
O que Reusar?
Bibliotecas de Ontologias
DAML ontology library (www.daml.org/ontologies)
Ontolingua ontology library
(www.ksl.stanford.edu/software/ontolingua/) Protégé ontology library
(protege.stanford.edu/plugins.html)
Ontologias Upper
IEEE Standard Upper Ontology (suo.ieee.org)
O que Reusar?(II)
Ontologia Geral
DMOZ (www.dmoz.org)
WordNet(www.cogsci.princeton.edu/~wn/)
Ontologias de domínio-específico
UMLS Semantic Net
GO (Gene Ontology) (www.geneontology.org)
Enumerar termos importantes
Quais são os termos que são falados?
Quais são as propriedades destes termos?
O que nós queremos dizer sobre os termos?
considerar reuso determinar escopo enumerar termos definir classes definir propriedades definir restrições criar instâncias
Enumerando Termos – A ontologia
de vinho
vinho, uva, vinícola, localização,
cor do vinho, corpo do vinho, sabor do
vinho, quantidade de açucar
vinho branco, vinho tinto, vinho Bordeaux
comida, frutos do mar, peixe, carne,
vegetais, queijo
Definir Classes e hierarquia de
Classes
Uma classe é um conceito no domínio
uma classe de vinhos
uma classe de vinícolas
uma classe de vinhos tinto
Uma classe é uma coleção de elementos com
propriedades similares
Instâncias de classes
uma garrafa de vinho da California para um almoço
considerar reuso determinar escopo definir classes definir propriedades definir restrições criar instâncias enumerar termos
Herança de Classes
Classes geralmente constituem uma taxonomia
hierárquica (uma hierarquia de subclasse-superclasse)
Uma hierarquia de classe é geralmente uma
hierarquia IS-A:
uma instância de uma subclasse é uma
instância de uma superclasse
Se você pensa uma classe como um conjunto
de elementos, uma subclasse é um subconjunto
Herança de Classe - Exemplo
Maçã é uma subclasse de Frutas
Toda maçã é uma fruta
Vinho tinto é uma subclasse de Vinho
Toda vinho tinto é um vinho
Vinho Chianti é uma subclasse de vinho tinto
Níveis na Hierarquia
Middle level Top level Bottom levelModos de Desenvolvimento
top-down – define os conceitos mais
gerias primeiro e então especializa-os
bottom-up – define os conceitos mais
específicos e então organiza-os em
classes mais gerais
combinação – define os conceitos mais
salientes primeiro e então generaliza e
especializa-os
Documentação
Classes (e propriedades) geralmente tem
documentação
Descrever as classes em linguagem natural
Listar suposições relevantes do domínio para as
definições de classe
Listar sinônimos
Documentar classes e propriedades é tão
importante quanto documentar código em programas!
Definir Propriedades de Classes –
Slots
Propriedades (slot) em uma definição de
classe descreve atributos de instâncias da
classe e relações a outras instâncias
Cada vinho terá cor, quantidade de açucar, produtores, etc. considerar reuso determinar escopo definir restriçõess criar instâncias enumerar termos definir classes definir propriedades
Propriedades (Slots)
Tipos de propriedades
propriedade “intrínsica” : sabor e cor do vinho
Propriedade “extrínsica” : nome e preço do vinho
partes: ingredientes em um prato
relações com outros objetos: produtores de vinho
(vinícola)
Propriedades simples e complexas
propriedade simples (atributos): contém valores primitivos (strings, numbers)
propriedade complexas: contém (ou aponta para)
outros objetos (e.g., uma instância de vinícola)
Propriedades para a Classe
Vinho
Propriedade e herança de Classe
Uma subclasse herda todos as
propriedades da superclasse
Se um vinho tem o mesmo nome e gosto, um vinho tinto também tem o mesmo nome e gosto
Se uma classe tem múltiplas
superclasses, ela herda propriedades de
todas
Port é tanto um vinho suave quanto um vinho tinto. Ele herda “conteúdo de açucar: high” do primeiro e “cor: tinto” do último
Restrições de Propriedade
Restrições de propriedade (facets)
descrevem ou limitam o conjunto de
valores possíveis para um slot
O nome de um vinho é uma string
O produtor de vinho é uma instância de vinícola Uma vinícola tem uma localização explícita
considerar reuso determinar escopo criar instâncias enumerar termos definire classes definir restrições definire propriedades
Restrições para propriedades na
Classe vinho
Restrições comuns
Cardinalidade da propriedade – o número
de valores que uma propriedade tem
Tipo de valor da propriedade – o tipo de
valor que uma propriedade tem
Valores mínimo e máximo – um range de
valores para uma propriedade numérica
Valor default – valor que uma propriedade
tem caso não explicitamente especificado
Restrições comuns:
Cardinalidade da propriedade
Cardinalidade
Cardinalidade N significa que a propriedade deve ter N valores
Cardinalidade mínima
Cardinalidade mínima 1 significa que a propriedade deve ter um valor (requerido)
Cardinalidade mínima 0 significa que o valor da propriedade é opcional
Cardinalidade máxima
Cardinalidade máxima 1 significa que a propriedade deve ter ao menos um valor (slot de valor simples)
Cardinalidade máxima maior do que 1 significa que a propriedade tem mais do que um valor (slot de valor múltiplo)
Restrições comuns: Tipo de valor
String: uma string de caracteres (“Château Lafite”)
Número: um integer ou um float (15, 4.5)
Boolean: uma flag true/false
Tipo enumerated: uma lista de valores (high, medium,
low)
Tipo complex: uma instância de outra classe
Especifica a classe para qual as instâncias pertencem
Domínio e Range da propriedade
Domínio de uma propriedade – uma
classe (ou classes) que tem a propriedade
Mais precisamente: instâncias de classe (ou
classes) da qual uma propriedade pode ter
Range de uma propriedade – uma classe
(ou classes) para qual valores podem
pertencer a uma propriedade
Restrições e heranças de Classe
Uma subclasse herda todos as propriedades da
superclasse
Uma subclasse pode sobrescrever as restrições
para “aproximar” a lista de valores permitidos
Tornar o range da cardinalidade menor
Substituir uma classe no range com uma subclasse
Vinho Vinho Francês Vinícola Vinícola Francesa is-a is-a produtor produtor
Criar Instâncias
Criar uma instância de uma classe
A classe torna-se um tipo direto de instância Qualquer superclasse do tipo direto é um tipo de
instância
Atribuir valores da propriedade para a instância
Valores das propriedades devem obedecer as
restrições da mesma
Ferramentas de aquisição de conhecimento as vezes
fazem isto considerar reuso determinar escopo criar instâncias enumerar termos definir classes definir propriedades definir restrições
Criar uma Instância: Exemplo
Sumário
O que é uma ontologia?
Tipos de ontologia
Porquê desenvolver uma ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
ontologia
Aprofundando
Cobertura da primeiro largura
determinar escopo considerar reuso enumerar termos definir classes definir propriedades definir restrições criar instâncias determinar escopo considerar reuso enumerar termos def ini r cl asses def ini r pr opr ie dades def ini r rest ri ções criar instâncias
Definir Classes e uma hierarquia de
Classe
Coisas para lembrar:
Não existe uma única hierarquia de classe
Mas existem alguns guidelines
A questão a ser perguntada:
“Uma instância da subclasse é uma instância de sua superclasse?”
Herança múltipla
Uma classe pode ter mais do
que uma superclasse
Uma subclasse herda slots e
restrições facet de todos os pais
Sistemas diferentes resolvem
conflitos diferentemente
Classes disjuntas
Classes são disjuntas se elas não podem ter instâncias
comuns
Classes disjuntas não pode ter qualquer outras
subclasses comuns
Vinho tinto, Vinho branco, Vinho rose são disjuntos Vinho suave e vinho tinto
não são disjuntos
Vinho Vinho tinto Vinho rose Vinho branco Vinho suave Port
Evitando Classes Cíclicas
O perigo de herança múltipla:
ciclos na hierarquia de classe
Classes A, B, e C tem
conjuntos equivalentes de
instâncias
Para muitas definições, A, B, e
C são portanto equivalentes
Irmãos na hierarquia de Classe
Todos os irmãos na
hierarquia de classe deve
estar no mesmo nível de
generalidade
Compare as seções e
subseções em um livro
O tamanho da família perfeita
Se uma classe tem sómente
um filho, pode ser um problema modelar
Se o único tinto Burgundy
que nós temos é Côtes d’Or, porque introduzir na
subhierarquia?
O tamanho da família perfeita (II)
Se uma classe tem
mais do que uma dúzia de filhos, subcategorias adicionais pode ser necessários
Contudo, se não
existe classificação, a lista longa pode ser mais natural
Nome de Classe Simples ou Plural
Um “vinho” não é um tipo
“vinhos”
Um vinho é uma instância da
classe de Vinhos
Nomes de Classe de ser um
dos dois
tudo singular tudo plural Class Instance instance-ofClasses e seus Nomes
Classes representam conceitos no domínio, não seus
nomes
O nome da classe pode mudar, mas ainda se referirá ao
mesmo conceito
Nomes sinônimos para o mesmo conceito não são
classes diferentes
Muitos sistemas permitem listas de sinônimos como parte da definição da classe
Uma hierarquia
completa de
Vinhos
De volta as propriedades:
Domínio e Range
Quando definindo um domínio ou range para
uma propriedade (slot), procure a classe (ou classes) mais geral
Considere a propriedade sabor
Domínio: Vinho tinto, vinho branco, vinho rose
Domínio: Vinho
Considere a propriedade produtores para uma
Vinícola:
Range: Vinho tinto, vinho branco, vinho rose
Range: Vinho
Quando definindo um domínio ou range para uma
propriedade, ache as classes ou classe mais geral
Considere a propriedade sabor
Domínio: Vinho tinto, vinho branco, vinho rose
Domínio: Vinho
Considere a propriedade produtor para uma vinícola:
Range: Vinho tinto, vinho branco, vinho rose
Range: Vinho
propriedade
classe valores permitidos
DOMÍNIO RANGE
Definindo Domínio e Range
Uma classe e uma
superclasse – substitua com a superclasse Todas as subclasses de uma classe – substitua com a superclasse Muitas subclasses de uma classe – considere substituir pela superclasse
Valores Default
Valor default - um valor para a propriedade
quando uma instância é criada
O valor default pode ser mudado
O valor default é um valor comum para a
propriedade, mas não é um valor requerido
Por exemplo, o valor default para corpo do
vinho pode ser FULL
Limitando o Escopo
Uma ontology não deve conter todas as
informações possíveis sobre o domínio
Não necessitam especializar ou generalizar
mais do que a aplicação requer
Não necessitam incluir todas as propriedades
possíveis da classe
Sómente as propriedades mais salientes
Sómente as propriedades que a aplicação requer
Limitando o Escopo (II)
Ontologia de vinho, comida, e seus pares
provavelmente não incluem
Tamanho da garrafa
Côr do rótulo da garrafa
Comida e vinho preferido
Uma ontologia de experimentos biológicos
conterão
Organismos biológicos
Experimentos
A classe Experimento é uma subclasse de
Organismo Biológico?
Tópicos
O que é uma Ontologia?
Tipos de ontologia
Porquê desenvolver uma Ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
ontologia
Ontologias e as linguagens WS
Muitas linguagens de Web Semântica são
Linguagens da WS
As linguagens diferem em sua
syntaxe
Não é importante aqui – Uma ontologia é uma representação conceitual terminologia Classe-conceito Instância-objeto Slot-propriedade expressividade
O que nós podemos expressar em muitas linguagens, não se pode expressar em outras
semântica
A mesma declaração pode significar coisas diferentes em linguafens diferentes.
Tópicos
O que é uma Ontologia?
Tipos de ontologia
Porquê desenvolver uma Ontologia?
Passo-a-Passo: Desenvolvendo uma ontologia
Aprofundando: Problemas comuns e soluções
Ontologias nas linguagens de Web Semântica
Pesquisa atual e questões na engenharia da
ontologia
Questões de pesquisa na Enginharia
da Ontologia
Geração de conteúdo
Analise e avaliação
Manutenção
Linguagens de ontologia
Ferramentas de desenvolvimento
Conteúdo: Ontologias Top-Level
O que significa “top-level” ?
Objetos: tangíveis, intangíveis
Processos, eventos, atores, papéis
Agentes, organizações
Espaços, fronteiras, localizações
Tempo
Esforço da IEEE Standard Upper Ontology
Objetivo: Projetar uma ontologia simples upper-level
Processo: Unir ontologias upper-level existentes
Conteúdo: Aquisição de
conhecimento
Aquisição de conhecimento é o gargalo
Compartilhar e reusar amenizam o problema
Mas é necessários automatizar as técnicas de aquisição
de conhecimento
Técnicas lingüística: aquisição de ontologia de textos
Machine-learning: gerar ontologias de documentos estruturados (e.g., documentos XML)
Explorar a estrutura WEB: gerar ontologias por sites web estruturados por crawling
Modelos de aquisição de conhecimento: especificar especialistas somente em parte do conhecimento requerido
Análises
Analises: consistência semântica Violação de restrições de propriedades
Ciclos na hierarquia de classes
Termos que são usados mas não definidos
Restrições de intervalo que produzem intervalos vazios (min > max) Analise: estilo
Classes com uma simples subclasse
Classes e propriedades sem definições
Propriedades sem restrições (tipo do valor, cardinalidade) Ferramentas para análise automática
Chimaera (Stanford KSL)
Onde procurar mais?
Tutoriais
Natalya F. Noy and Deborah L. McGuinness (2001) “Ontology Development 101: A Guide to Creating Your First Ontology” http://protege.stanford.edu/publications/ontology_development/o ntology101.html
Farquhar, A. (1997). Ontolingua tutorial. http://ksl-web.stanford.edu/people/axf/tutorial.pdf
Metodologia
Gómez-Pérez, A. (1998). Knowledge sharing and reuse. Handbook of Applied Expert Systems. Liebowitz, editor, CRC Press.