Professional Documents
Culture Documents
Ontology Engineering Port
Ontology Engineering Port
Franceses
para Web Semântica eu devo
servir com e regiões
frutos do vinículas
José Leomar Todesco
mar hoje? Uma
ONTOLOGIA
Comum de
Vinho e comida Vinhos da
California
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 e regiões
Ontology” by Natalya F. Noy and Deborah L. McGuinness vinícolas
http://protege.stanford.edu/publications/ontology_development/ontology101.html
Ontologias são largamente usados na engenharia do Em 1991, o DARPA teve a visão de construir sistemas inteligentes. Eles
propuseram o seguinte: “Building knowledge-based systems today usually entails
conhecimento, inteligência artificial e ciência da
constructing new knowledge bases from scratch. It could be instead done by
computação em aplicações relacionadas a gestão do
assembling reusable components. Systems developers would then only need to
conhecimento, processamento de linguagem natural, e-
worry about creating the specialized knowledge and reasoners new to the specific
commerce, integração de informação inteligente, task of their system. This new system would interoperate with existing systems,
recuperação de informação, integração e projeto de banco using then to perform some of its reasoning. In this way, declarative knowledge,
de dados, bio-informática, educação e mais recentemente problem-solving techniques and reasoning services would all be shared among
systems. This approach would facilitate building bigger and better systems and
a um campo emergente chamado Web Semântica.
chearply...”
1
Fundamentos teóricos da ontologia
Definições de ontologia
No mesmo período da apresentação da idéia do DARPA, vários projetos surgiram Neches e colegas (1991): “An ontology defines the basic terms and relations
com propostas de metodologias para desenvolver sistemas baseados em comprising the vocabulary of a topic area as well as the rules for combining
terms and relations to define extensions to the vocabulary.”
conhecimento. Nem todos tratam ontologias, mas fundamentam as noções na
Alguns anos depois Gruber (1993): “An ontology is an explicit specification of
comunidade da Engenharia do Conhecimento. Este projetos incluem:
a conceptualization.”
Estruturas de tarefas (Chandrasekaran et al., 1992); Métodos de role-limiting
Borst modificou a definição de Gruber em 1997: “Ontologies are defined as a
(McDermott, 1988); CommonKADS (Schreiber et al., 1994); Protégé (Musen,
formal specification of a shared conceptualization”
1993); MIKE (Angele et al., 1998); IDEAL (Gómez-Perez et al., 1997);
Bernaras e colegas. (1996): “It [an ontology] provides the means for describing
Componentes de Expertise (Steels, 1990); EXPECT (Swartout an Gil, 1995); explicitly the conceptualization behind the knowledge represented in a
GDM (Terpstra et al., 1993); VITAL (Domingue et al., 1993) knowledge base.”
Uschold e Jasper (1999): “An ontology may take a variety of forms, but it will primeira ordem (soundness).
necessarily include a vobabulary of terms and some specification of their 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.
meaning. This includes definitions and an indication of how concepts are inter-
related which collectivelly impose a structure on the domain and constrain the 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,
possible interpretations of terms.”
DAML+OIL e OWL tem aparecido no contexto da Web Semântica.
2
Exemplos de ontologia O que é “Ontology Engineering”?
3
Tipos de Ontologias (Lassila e
Tipos de Ontologias (Guarino) McGuinnes)
4
Porquê desenvolver uma ontologia? Mais Razões
Para compartilhar entendimento comum Para fazer suposições explícitas do domínio
da estrutura da informação facilitar mudanças das hipóteses do domínio
entre pessoas (considerar uma base de conhecimento genética)
entre agentes de software facilitar entendimento e atualização de dados legados
Processo de devenvolvimento de
Vinhos e Vinícolas ontologia
Neste exemplo:
determinar considerar enumerar definir definir definir criar
escopo reuso termos classes propriedades restrições instâncias
5
Ontology Engineering versus
Object-Oriented Modeling Ferramentas
Uma ontologia Uma estrutura de Todas as telas a seguir do exemplo de vinhos são do:
Protégé-2000, que é:
reflete a estrutura do classe OO
uma ferramenta gráfica de desenvolvimento de ontolgogias
mundo reflete a estrutura do suporta um modelo de conhecimento rico
é as vezes sobre a dado e do código é open-source e disponível para uso livremente
estrutura dos conceitos geralmente sobre o (http://protege.stanford.edu)
a representação física comportamento Algumas outras ferramentas disponíveis:
atual não é o caso (métodos) Ontolingua e Chimaera
descreve a OntoEdit
representação física do OilEd
dado (long int, char, etc.)
6
O que Reusar?(II) Enumerar termos importantes
determinar considerar enumerar definir definir definir criar
Ontologia Geral escopo reuso termos classes propriedades restrições instâncias
DMOZ (www.dmoz.org)
Quais são os termos que são falados?
WordNet (www.cogsci.princeton.edu/~wn/)
Quais são as propriedades destes termos?
Ontologias de domínio-específico
O que nós queremos dizer sobre os termos?
UMLS Semantic Net
GO (Gene Ontology) (www.geneontology.org)
vinho, uva, vinícola, localização, escopo reuso termos classes propriedades restrições instâncias
7
Níveis na Hierarquia Modos de Desenvolvimento
Top
level
top-down – define os conceitos mais
gerias primeiro e então especializa-os
Middle
level bottom-up – define os conceitos mais
Bottom específicos e então organiza-os em
level
classes mais gerais
combinação – define os conceitos mais
salientes primeiro e então generaliza e
especializa-os
documentação
Descrever as classes em linguagem natural Propriedades (slot) em uma definição de
Listar suposições relevantes do domínio para as classe descreve atributos de instâncias da
definições de classe classe e relações a outras instâncias
Listar sinônimos
Cada vinho terá cor, quantidade de açucar,
Documentar classes e propriedades é tão produtores, etc.
importante quanto documentar código em
programas!
8
Propriedade e herança de Classe Restrições de Propriedade
determinar considerar enumerar definire definire definir criar
Uma subclasse herda todos as escopo reuso termos classes propriedades restrições instâncias
propriedades da superclasse
Se um vinho tem o mesmo nome e gosto, um vinho
Restrições de propriedade (facets)
tinto também tem o mesmo nome e gosto descrevem ou limitam o conjunto de
Se uma classe tem múltiplas valores possíveis para um slot
superclasses, ela herda propriedades de O nome de um vinho é uma string
todas O produtor de vinho é uma instância de vinícola
Port é tanto um vinho suave quanto um vinho tinto. Ele
herda “conteúdo de açucar: high” do primeiro e “cor: Uma vinícola tem uma localização explícita
tinto” do último
Restrições comuns:
Cardinalidade da propriedade Restrições comuns: Tipo de valor
Cardinalidade String: uma string de caracteres (“Château Lafite”)
Cardinalidade N significa que a propriedade deve ter N valores
Número: um integer ou um float (15, 4.5)
Cardinalidade mínima
Cardinalidade mínima 1 significa que a propriedade deve ter um Boolean: uma flag true/false
valor (requerido)
Tipo enumerated: uma lista de valores (high, medium,
Cardinalidade mínima 0 significa que o valor da propriedade é
opcional low)
Cardinalidade máxima Tipo complex: uma instância de outra classe
Cardinalidade máxima 1 significa que a propriedade deve ter ao Especifica a classe para qual as instâncias pertencem
menos um valor (slot de valor simples)
A classe vinho é o tipo de valor para a propriedade “produtores” da
Cardinalidade máxima maior do que 1 significa que a
propriedade tem mais do que um valor (slot de valor múltiplo) classe vinícola
9
Domínio e Range da propriedade Restrições e heranças de Classe
Domínio de uma propriedade – uma Uma subclasse herda todos as propriedades da
superclasse
classe (ou classes) que tem a propriedade
Uma subclasse pode sobrescrever as restrições
Mais precisamente: instâncias de classe (ou para “aproximar” a lista de valores permitidos
classes) da qual uma propriedade pode ter Tornar o range da cardinalidade menor
Range de uma propriedade – uma classe Substituir uma classe no range com uma subclasse
(ou classes) para qual valores podem Vinho
produtor
Vinícola
pertencer a uma propriedade is-a is-a
Vinho produtor Vinícola
Francês Francesa
Sumário Aprofundando
O que é uma ontologia? Cobertura da primeiro largura
Tipos de ontologia
determinar considerar enumerar definir definir definir criar
Porquê desenvolver uma ontologia? escopo reuso termos classes propriedades restrições instâncias
definir
definir
definir
10
Definir Classes e uma hierarquia de
Classe Herança múltipla
11
O tamanho da família perfeita (II) Nome de Classe Simples ou Plural
Se uma classe tem Um “vinho” não é um tipo
mais do que uma “vinhos”
dúzia de filhos,
subcategorias Um vinho é uma instância da
adicionais pode ser classe de Vinhos
Class
necessários Nomes de Classe de ser um
Contudo, se não dos dois
instance-of
existe classificação, a tudo singular
lista longa pode ser Instance
12
Definindo Domínio e Range Valores Default
Uma classe e uma
superclasse – Valor default - um valor para a propriedade
substitua com a quando uma instância é criada
superclasse
Todas as subclasses O valor default pode ser mudado
de uma classe – O valor default é um valor comum para a
substitua com a
superclasse propriedade, mas não é um valor requerido
Muitas subclasses de Por exemplo, o valor default para corpo do
uma classe –
considere substituir vinho pode ser FULL
pela superclasse
13
Linguagens da WS Tópicos
As linguagens diferem em sua O que é uma Ontologia?
syntaxe
Não é importante aqui – Uma ontologia é uma representação Tipos de ontologia
conceitual
terminologia Porquê desenvolver uma Ontologia?
Classe-conceito Passo-a-Passo: Desenvolvendo uma ontologia
Instância-objeto
Slot-propriedade Aprofundando: Problemas comuns e soluções
expressividade
O que nós podemos expressar em muitas linguagens, não se pode
Ontologias nas linguagens de Web Semântica
expressar em outras
Pesquisa atual e questões na engenharia da
semântica
A mesma declaração pode significar coisas diferentes em ontologia
linguafens diferentes.
Conteúdo: Aquisição de
conhecimento Análises
Aquisição de conhecimento é o gargalo Analises: consistência semântica
Violação de restrições de propriedades
Compartilhar e reusar amenizam o problema Ciclos na hierarquia de classes
Mas é necessários automatizar as técnicas de aquisição Termos que são usados mas não definidos
de conhecimento Restrições de intervalo que produzem intervalos vazios (min > max)
Analise: estilo
Técnicas lingüística: aquisição de ontologia de textos
Classes com uma simples subclasse
Machine-learning: gerar ontologias de documentos estruturados Classes e propriedades sem definições
(e.g., documentos XML) Propriedades sem restrições (tipo do valor, cardinalidade)
Explorar a estrutura WEB: gerar ontologias por sites web Ferramentas para análise automática
estruturados por crawling Chimaera (Stanford KSL)
Modelos de aquisição de conhecimento: especificar DAML validator
especialistas somente em parte do conhecimento requerido
14
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.
Uschold, M. and Gruninger, M. (1996). Ontologies: Principles,
Methods and Applications. Knowledge Engineering Review
11(2)
15