Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2...

74
Ontologias: Introdução Karin Breitman – PUC-Rio

Transcript of Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2...

Page 1: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Ontologias: Introdução

Karin Breitman – PUC-Rio

Page 2: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 2

Referências

• Ontology Design Patterns and Problems: Practical Ontology Engineering using Protege-OWL - Alan Rector, Natasha Noy, Holger Knublauch, Guus Schreiber, Mark Musen

• John Sowa Web Pages – John Sowa

• My Experience in Building Ontology-driven Applications - Harry Chen, eBiquity Group Meeting, February 9, 2004

• Foundations of the Semantic Web: Ontology Engineering – Alan Rector et al – CS646

• Ontology Development 101 – Noy, N.; McGuiness, D. – A guide to creating

your first ontology – KSL Technical Report, Standford University, 2001 • Ontological Engineering - Gómez-Pérez, A.; Fernadéz-Peréz, M.; Corcho, O. -

Springer Verlag - 2004.

Page 3: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

KR and methodologies

• Procedural Knowledge: Knowledge is encoded in functions/procedures. For example: function Person(X) return boolean is

if (X = ``Socrates'') or (X = ``Hillary'') then return true else return false;

Or

function Mortal(X) return boolean is return person(X);• Networks: A compromise between declarative and procedural schemes.

Knowledge is represented in a labeled, directed graph whose nodes represent concepts and entities, while its arcs represent relationships between these entities and concepts.

• Frames: Much like a semantic network except each node represents prototypical concepts and/or situations. Each node has several property slots whose values may be specified or inherited by default.

• Logic: A way of declaratively representing knowledge. For example:– person(Socrates).– person(Hillary).– forall X [person(X) ---> mortal(X)]– DL, FOL, SOL

3

Page 4: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Modeling

• Some of the knowledge is lost when it is placed into any particular structure, or may not be reusable (e.g. Frames)

• So, you may ask something that cannot be answered or inferred

• Knowledge evolves, i.e. changes• Knowledge and understanding is very often

context dependent (and discipline, language, and skill-level dependent, and …)

4

Page 5: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

And, if you are used to logic

• You are working mostly within the world of logic, whereas we are trying to represent knowledge with logic and we are usually dealing with tangible objects, such as trees, clouds, rock, storms, etc.

• Because of this, we have to be very careful when translating real things into logical symbols - this can, surprisingly, be a difficult challenge.

• Consider your method of representation (yes, we do want to compute with it) 5

Page 6: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Thus

• A person who wants to encode knowledge needs to decouple the ambiguities of interpretation from the mathematical certainty of (any form of) logic.

• The nature of interpretation is critical in formal knowledge representation and is carefully formalized by KR scientists in order to guarantee that no ambiguity exists in the logical structure of the represented knowledge.

6

Page 7: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Representing Knowledge With Objects

• Take all individuals that we need to keep track of and place them into different buckets based on how similar they are to each other. Each bucket is given a descriptive based on what objects it contains.

• Since the individuals in a given bucket are at least somewhat similar, we can avoid needing to describe every inconsequential detail about each individual. Instead, properties that are common to all individuals in a bucket can just be assigned to the entire bucket at once. Properties are typically either primitive values (such as numbers or text strings) or may be references to other buckets. 7

Page 8: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Representing Knowledge With Objects

• Some buckets will be more similar to each other than others and we can arrange the buckets into a hierarchy based on the similarity.

• If all buckets in a branch in the tree of buckets share a property, the information can be further simplified by assigning the property only to the parent bucket. Other buckets (and individuals) are said to inherit that property.

• Buckets may have different names: e.g. Classes, Frames, or Nodes

• BUT, once we move to (e.g.) DL, not all object rules apply, e.g. cannot override properties

• Multiple inheritance is not always obvious to people8

Page 9: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 9

Web Semântica

• A maior parte dos recursos primários estão em linguagem natural, compreensíveis para humanos.

Page 10: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 10

Web Semântica

• Web Semântica• “A Web Semântica é uma EXTENSÃO da web

atual na qual é dado a informação um SIGNIFICADO bem definido, permitindo com que computadores e pessoas trabalhem em cooperação.” Berners-Lee, Hendler e Lassila

• "The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation."

Page 11: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Re-enter Semantic Web

• At its core, the Semantic Web can be thought of as a methodology for linking up pieces of structured and unstructured information into commonly-shared description logics ontologies.

11

Page 12: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 12

Como humanos enxergam esta página

Page 13: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 13

Como o computador enxerga esta página

Page 14: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 14

A Web de hoje

• 8 bilhões de páginas– Mecanismos de busca: Yahoo, Google, AltaVista...– Nenhum mecanismo para “interpretar” o resultado

das buscas.

Page 15: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 15

Cenário: busca pela palavra “morango”• Did you mean: morongo  

• :: Morango :: - "As fotos aqui veiculadas, bem como os textos, frames, sinais distintivos,logotipo e marca são de propriedade do site Morango.com.br. ...

• :: Morango -... Divirta-se! "As fotos aqui veiculadas, bem como os textos, frames, sinais distintivos,logotipo e marca são de propriedade do site Morango.com.br. ...

• deviantART: morango~morango. Joana Vieira. is an Antagonist; is Female; is a deviant since Aug8, 2002, 2:02 PM; has 9,972 pageviews; is located in Portugal; ... 500kv k'pow!

• STRABERRY MorangoMORANGO - fruto produzido por erva rasteira, Fragancia vesca, origináriada Europa, possui inúmeras variedades naturais e híbridas. ...

• California Casino MorangoCalifornia Casino Morango ( Casino ). Casino Shop for Casino from 600+ merchantswith one cart. Hundreds of trusted merchants. Thousands of popular brands. ...

• vof Morango - smakelijke aardbeien, vers, vertrouwd en ...vers. aardbeien zijn het lekkerst als ze vers zijn. van eind april tot in novemberplukken wij ze dagelijks voor u. vertrouwd. van aardbeien ...

• Batida Morango recipeA delicious recipe for Batida Morango, with cachaca, strawberries, granulated sugarand crushed ice. Also lists similar drink recipes. ... Batida Morango recipe. ...

Page 16: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 16

Web Sintática

• Biblioteca Digital – Uma biblioteca de documentos chamados páginas (web pages)

interconectados por links• Base de Dados, plataforma para aplicações

– Portal comum para aplicações acessíveis através de páginas web e que apresentam resultados utilizando estas mesmas páginas.

• Plataforma multimídia– Internet Radio, Trailers de filmes, …

• Um esquema de nomeação– Identidade única para documentos

RESUMO: Um lugar onde os computadores são responsáveis pela APRESENTAÇÃO (o fácil) e as pessoas fazem a INTERPRETAÇÃO (o difícil)

Por que não fazer com que os computadores fiquem com a parte mais pesada do trabalho?

Ref: Goble

Page 17: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 17

Web Semântica

• Metadados.• Combinar recursos primários com recursos de

metadados.• Metadados em formato padronizado podem

ser entendidos por software e pessoas.

Page 18: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 18

Web Semântica - Objetivos

“enriquecer a informação disponível com semântica que pode ser entendida por máquinas “

“fornecer acesso inteligente a informação heterogênea e distribuída, permitindo que produtos de software possam fazer uma intermediação entre as necessidades do usuário e as fontes de informação disponíveis. “

ontologia

Page 19: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

19

Semantic Web Layers

http://www.w3.org/2003/Talks/1023-iswc-tbl/slide26-0.html, http://flickr.com/photos/pshab/291147522/

Page 20: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

20

Elements of KR in Semantic Web

• Declarative Knowledge• Statements as triples: {subject-predicate-object}

interferometer is-a optical instrument

Fabry-Perot is-a interferometer

Optical instrument has focal length

Optical instrument is-a instrument

Instrument has instrument operating mode

Instrument has measured parameter

Instrument operating mode has measured parameter

NeutralTemperature is-a temperature

Temperature is-a parameter

• A query: select all optical instruments which have operating mode vertical

• An inference: infer operating modes for a Fabry-Perot Interferometer which measures neutral temperature

Page 21: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Ontologia

Software Engineering Lab (LES) – PUC-Rio 21

Page 22: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 22

Tipos de ontologia

Ref: Noy

Page 23: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 23

Ontologia

• Estudo do que existe – being• Platão – metafísica• Aristóteles - 10 categorias• Ontologia: século XVII

Onto (o que existe) + Logos (conhecimento sobre)

Page 24: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 24

Categorias de Aristóteles

Substância Um gato

Qualidade O gato é preto

Quantidade O gato tem 50cm de comprimento

Relação O gato tem metade do tamanho de um....

Onde O gato está em casa

Quando O gato saiu ontem

Posição O gato está sentado

Possuir O gato tem um rato

Ação O gato está correndo

Sentimento O gato quer leite.

Page 25: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 25

Árvore de Porfírio

Page 26: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 26

Propósito

• Uma ontologia define:

– Vocabulário Compartilhado– Entendimento Comum

Page 27: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 27

Ontologia x ontologia [Guarino98]

• Filosofia– Disciplina Ontologia

• Ciência da Computação– Artefato ontologia (o minúsculo)

Page 28: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 28

Ontologia = Modelo Conceitual

Mundo Real Mundo Computacional

Gap Semântico

Page 29: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 29

Desenvolvimento de Ontologias

• Em geral é mais difícil desenvolver uma ontologia do que desenvolver software:– Não existem boas métricas de avaliação de

ontologias– Um programa é bom se roda, uma ontologia é boa

se funciona com um progarama rodando. • Em geral se escreve um programa DEPOIS de desenvolver

a ontologia• Ovo-Galinha

Ref: Harry Chen

Page 30: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 30

Ontologias X Modelos OO

• Ontologias

– Reflete a estrutura do Mundo Real

– Foco: estrutura dos conceitos

– A representação física de fato não é importante

• Modelos Orientados a Objetos

– Refletem a estrutura dos dados e do código

– Foco: comportamento (métodos)

– Descrevem a representação física dos dados (long int, char, etc...)

Ref: Noy

Page 31: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 31

Continuum Semântico

[Mike Uschold, Boeing Corp]

ConsensoHumanoCompartilhado

Implícito

Descrições textuais

Informal(explícito)

Semântica processada por humanos

Formal(para humanos)

Semântica processada por máquinas

Formal(para máquinas)

• Menos ambiguidade• Melhor interoperação• Mais robusto• Mais difícil

mais para direita

Page 32: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 32

Definição [Berners-Lee]

“an ontology is a document or file that formally defines the relationship among terms”

“ontologia é um documento ou arquivo que formalmente define os relacionamento entre termos”

• Ontologia = taxonomia + regras de inferência

Page 33: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 33

Definição [Gruber93]

“Uma ontologia é uma especificação formal explícita de uma conceitualização compartilhada.”

Conceitualização – modelo abstrato de como as pessoal pensam

Especificação explícita – os conceitos e relacionamentos utilizados neste modelo abstrato são fornecidos através de termos explícitos e bem definidos [Gruninger02]

Page 34: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 34

Definição [Maedche02]

O : = {C, R, HC, rel, AO} que consiste de:

Dois conjuntos disjuntos, C (conceitos/classes) and R (relacionamentos)

Uma hierarquia de conceitos, HC: HC é um relacionamento direto HC C x C chamado hierarquia de conceitos ou taxonomia. HC (C1,C2) significa C1 é um sub-conceito de of C2

Uma função rel : R C x C que relaciona os conceitos de modo não taxonômico

Um conjunto de axiomas AO, expressos em uma linguagem lógica apropriada.

Page 35: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 35

Para que serve uma ontologia?

Noy & McGuiness:• Compartilhar entendimento comum de uma

estrutura de informação por pessoas ou agentes de software

• Permitir o reuso de conhecimento de domínio– Evitar “reinventar a roda”

• Explicitar hipóteses sobre um domínio• Separar conhecimento de domínio de

conhecimento operacional• Análise • Estabelecimento de Regras e Políticas (SWRL)

Page 36: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 36

Para que serve uma ontologia: Busca de Informação

• Utilizar ontologias para reduzir o universo de opções em buscas na web:

– Ontologias restringem o significado de termos utilizados em buscas por palavras chave

– Auxiliam na montagem da query

Page 37: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 37

Busca “revisitada” (sobremesa, fruta, morango)

• liparte - A fruta, Salada - Busca de Ilustrações ClipeArte e... chaves tigela, alimento, comer para fora, cor, corte papel, frescor, ilustração,melão, morango, salada de fruta, sobremesa, uva, vermelho, vertical.

• Folha Online - Equilíbrio - Notícias - Festivais gastronômicos ... -... de dois tipos de fondue salgado, a casa oferece uma sobremesa como cortesia. ... O morango,fruta da estação, dá o sabor do inverno em Monte Verde, distrito da ...

• Forno... RÁPIDA SOBREMESA REFRESCANTE SOBREMESA REQUINTADA SOBREMESA TROPICAL SORVETE COM

FRUTA SORVETE CROCANTE ... COM ABACAXI SORVETE DE MORANGO SORVETE FATIADO ...

• Receitas tradicionais dos Açores de Ana Taveira - Gelados... Na hora de servir serve-se com xarope de morango ou morangos esmagados ... Gelado sobremesa. ...No fundo de um pyrex coloca-se salada de fruta (banana, ananás e outras ...

• Terra - Especial Culinária Morango com suco e casca de laranja, com vinho tinto e anis-estrelado ou com chocolate.Confira nossas sugestões e transforme essa fruta numa sobremesa ainda

• Saúde Vida On Line - Tabela de calorias -... Flan de baunilha c/ calda de morango Royal, 1 porção (130g), 136. ... Fruta c/ caldade chocolate, 2 c. sopa (50g), 90. ... Galak Nestlé sobremesa, Unidade (110g), 181

Page 38: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 38

Porque construir uma ontologia?

• Explicitar significado• Integrar recursos na Web

interoperabilidade

Page 39: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 39

Onde ontologias estão sendo utilizadas?

• e-Science, e.g., Bioinformática– Consórcio Open Biomedical Ontologies Consortium (GO, MGED)– Utilizadas para experiências “in silico” relacionando teoria e dados

• E.g., relacionando dados de fosfatases em modelos de conhecimento biológicos

• Medicina– Construção e manutenção de terminologias Snomed, NCI & Galen

• Organização de estrutras complexas e semi-estruturadas– UN-FAO, NASA, General Motors, Lockheed Martin, …

• Governo/Militares– DARPA, NIST, SAIC,

• Web Semântica• Grid Semântico

Page 40: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 40

Ciência da Computação

• O termo ONTOLOGIA foi “emprestado” pela computação para definir uma descrição explícita dos conceitos de um domínio– Conceitos– Propriedades e Atributos – Restrições em propriedades e atributos– Indivíduos *

• Em geral, um único modelo não é suficiente para representar todas as características de em sistema

• Vários tipos de modelo no desenvolvimento de software:

UML, ER, Esquemas

de BD

Ref: Rector et al

Page 41: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 41

Vocabulário

• “Classe” “Conceito” “Categoria” “Tipo”• “Instância” “Indivíduo”• “Entidade” “Objeto”, Classe ou indivíduo• “Propriedade” “Slot” “Atributo” “Papel

(role)” – Muito cuidado com o termo “role”

• Significa “propriedade” em lógica de descrição• Significa “papel desempenhado” na maioria das

ontologias– Exemplo: Funcionário, Comprador, Vendedor.

Ref: Rector CS646

Page 42: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 42

Conceitos importantes

Objetos que possuem um conjunto de características que nos permitem classificá-los como sendo membros deste grupo.

Conceito/Classe/Entidade/Categoria

Page 43: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 43

Conceitos importantes

Característica

Propriedade/Atributo/Role/Slot

Page 44: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 44

Conceitos importantes

Modo pelo qual duas ou mais classes estão relacionadas

Relacionamento/Restriction

Page 45: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 45

Generalização

tipo deVeículo

Terrestre Aquático

Carro Anfíbio Barco

Page 46: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 46

Composição

parte de

Luminária de Teto

Base Cúpula FiaçãoInterruptor

1 1 1 1

Ontologias não são modeladas através de composição!

Page 47: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 47

Contra exemplo [Welty02]

• Carro & Motor– Carro – propriedade – acomoda pessoas– Motor – propriedade – gera força rotacional

• Motor não acomoda pessoas.... não é um tipo de carro.

Page 48: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 48

Exemplo

Ser vivoEspécie

humanosIdade

Sexo

homens mulheres

crianças

X é uma subcategoria de y

Taxonomia dos seres vivos

adultos

Page 49: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 49

Prática: Criando um novo projeto

• Abra o Protégé:

• Selecione Create New Project

Page 50: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 50

Criando um novo projeto

• Selecione OWL Files (.owl or .rdf)• Selecione Finish

Page 51: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 51

Criando uma hierarquia de Classes

• Crie a seguinte hierarquia utilizando os comandos Create Subclass e Create Sibling Class da janela de Asserted Hierarchy

Page 52: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 52

CamelNotation

• Notação utilizada para uniformizar as ontologias

• Chama-se CamelNotation– Letra maiúscula para classes – Ingrediente, Animal– Letra minúscula para propriedades – temPatas,

temCobertura

• Use a convenção que quiser mas…– SEJA CONSISTENTE!

Copyright © 2005, The University of Manchester

Page 53: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 53

Criando uma hierarquia de Classes

• Crie a seguinte hierarquia de classes:

Artes e EntretenimentoMúsica, Televisão, Rádios

Ciência e Meio Ambiente

Engenharia, Física, AgropecuáriaMapas e VistasCâmeras Online

EconomiaInformática, Compras

Notícias Revistas, Televisão, Rádio

EsportesFutebol, Aquáticos, Artes Marciais,

SaúdeClínicas, Hospitais

Sociedade e CulturaReligião., Espiritualidade, TransportesAéreas, Rodoviárias, Viagens e TurismoMinas Gerais, Hospedagem,

Page 54: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 54

Mais Exemplos

• Outras taxonomias– Yahoo! categorias

• Catálogos de compras on-line – Submarino– LojasAmericanas.com– Amazon.com

• Dublin Core (Metadados)• Ontologias de Topo

– SUO– Sumo

Page 55: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 55

Estrutura das ontologias

• São todos ontologias ???• Artefatos com diversos graus de estruturação

– Taxonomias– Tesauros– Metadata Schemes – Ontologias– Lógica

Page 56: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 56

Tipos de ontologia

Ref: Noy

Page 57: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 57

Tipos de Ontologia

• Vocabulários Controlados – – Lista finita de termos. Um – Exemplo:NAICS (North American Industry Classification

System) de produtos e serviços

• Glossários – – Lista de termos com significados em linguagem natural. – Similar ao de um dicionário - termos são organizados

alfabeticamente, – Exemplo de glossário: é o NetGlos (The Multilingual Glossary

of Internet Terminology) que reúne terminologia relacionada a recursos na Internet.

• Tesauros – lista de termos e suas definições que – padroniza a utilização de palavras para indexação.

Page 58: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 58

Tipos de ontologia

• Hierarquias tipo-de informais – – Hierarquias que utilizam o relacionamento de generalização

(tipo de) de maneira informal.– Exemplo: Yahoo. – Não respeitam integralmente o relacionamento de

generalização:• “aluguel de carro” e “hotel”, não são “tipos-de-viagem”

Hierarquias tipo-de formais – Hierarquias que incluem instâncias de um domínio. Nestas hierarquias os relacionamentos de generalização são respeitados integralmente. Um exemplo é a taxonomia dos seres vivos, ilustrada na próxima seção.

• Frames – Representação proposta por Marvin Minsky. – Primitivas: classes (ou frames) – É largamente utilizado em modelagem de conhecimento.

Page 59: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 59

Diferenças: Taxonomia e Ontologia

• Taxonomia: “Classificação de entidades de informação no formato de uma hierarquia, de acordo com relacionamentos que estabelecem com entidades do mundo real que representam.” Michael Daconta

• Servem Para:– classificar informação em uma– hierarquia (árvore) – utilizando APENAS relacionamento pai-filho

(generalização ou “tipo-de”)

Page 60: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 60

Diferenças: Taxonomia e Ontologia

• Generalização: único tipo de relacionamento que existe entre os termos de uma Taxonomia.

• Não se pode:– atribuir características ou propriedades aos termos

atributos,– exprimir outros tipos de relacionamento:

• parte-de, • causa-efeito, • localização, • Associação..

• Para isto é necessário construir uma ontologia.

Page 61: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 61

Exemplo de Taxonomia

Page 62: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 62

Diferenças: Tesauro e Ontologia

• Tesauro: “um vocabulário controlado organizado segundo uma ordem conhecida e estruturado de modo a disponibilizar claramente os relacionamentos de equivalência, associação, hierárquicos e homônimos existentes entre termos.” ANSI/NISO Monolingual Thesaurus Standard

• Servem para:– Garantir que conceitos sejam descritos consistentemente – Permitir com que usuários possam refinar buscas e localizar a

informação que necessitam.

• Contam com uma lista de relacionamentos pré defidos adicionais (além do de generalização)– Sinônimo - Similar a, Equivalente,– Homônimo – mesma grafia,– Mais amplo do que – hierarquia, pai de, super classe,– Mais restrito do que - hierarquia – filho de, sub classe,– Associado - relacionado a,

Page 63: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 63

Diferenças: Tesauro e Ontologia

• Relacionamentos Pré Definidos: únicos tipos de relacionamento que podem existir entre os termos de um Tesauro

• Muitas vezes é necessário relacionar conceitos utilizando relacionamentos do tipo parte-de, membro-conjunto, fase-processo, lugar-região, material-objeto, causa-efeito

• Não se pode:– exprimir outros tipos de relacionamento além dos pré

definidos:

• Para isto é necessário construir uma ontologia.

Page 64: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 64

Exemplo de Tesauro- WordNet

• Resultado da busca ao termo “tank” (tanque) no WordNet.

Page 65: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 65

Enfoques

• Inteligência artificial – Engenharia do conhecimento

– Esforços voltados ao mapeamento de domínios, criação de grandes bases de conhecimento para mapear o conhecimento humano

– Construídas por experts

• Web semântica– Ontologias voltadas para aplicações específicas– Construídas por engenheiros de software

Page 66: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 66

IA

• Enfoque top down• Tempos antigos “divide et impera”• Sistema e sub-sistema [von Bertalanffy]• Dijkstra (programming considered a human activity)

• Especifica as partes individualmente• Satisfeito? O problema está resolvido?• Constrói as partes individualmente

Se uma das partes ainda é complexa: subdividir

Page 67: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 67

Ontologias enfoque Top-down

• Cyc upper ontology– Base de conhecimento com 3000 termos (termos

mais gerais da realidade consensual dos humanos)

• WordNet– Banco de dados léxico para a língua inglesa com

mais de 42.000 termos

Page 68: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 68

CYC

Page 69: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 69

Exemplo WordNet

WordNet 1.7.1 Search Search word:

Results for "Synonyms, ordered by estimated frequency" search of noun "dessert"

1 sense of dessert                                                      

Sense 1dessert -- (a dish served as the last course of a meal)       => course -- (part of a meal served at one time; "she prepared a three course meal")

Return to overview for dessert Return to WordNet home

Page 70: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 70

Ontologias de Topo

• Ontology Schemas– Abstrações de alto nível que restringem a

construção • Objetos e Processos (3D versus 4D)

– Grandes Controvérsias• Sumo, Dolce, Onions, GALEN, SBU,…

– Necessárias quando se trabalha em grupos muito grandes.

Page 71: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 71

Web Semântica

• Grande número de pequenas ontologias interligadas

• Em alguns anos toda empresa, universidade, agência governamental terá seu conteúdo conectado a uma ontologia

• James Hendler, Agents and the Semantic Web

Page 72: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 72

Pequenas ontologias existirão em toda parte

Todos dispositivos possuem ontologia própria

Ref: Harry Chen

Page 73: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 73

Ontologias de Domínio

• Conceitos específicos a um campo ou área de conhecimento

• Animais, Doenças, Comida, Arte, ….– Onde começar

• Enterder ontologias no sentido bottom up ou middle out.

• Níveis– Ontologias de Domínio de Topo – Pontos de partida para

aquele domínio ou área de conhecimento• Seres Vivos, Região Geográfica…

– Ontologia de Domínio – conceitos da área• Gato, Elefante, Montanha, Rio

– Instances – the things in the world• Garfield, Pico das Agulhas Negras.

Page 74: Ontologias: Introdução Karin Breitman – PUC-Rio. Software Engineering Lab (LES) – PUC-Rio 2 Referências Ontology Design Patterns and Problems: Practical.

Software Engineering Lab (LES) – PUC-Rio 74

Ontologias são apenas o começo...

OntologiasOntologias

Agentes de

Software

Agentes de

Software Métodos para

Resolução de

Problemas

Métodos para

Resolução de

Problemas

Aplicações

Independentes de

Domínio

Aplicações

Independentes de

Domínio

Bases de

Dados

Bases de

Dados

Declararestrutura

Bases de

Conhecimento

Bases de

Conhecimento

Fornecerdescrições de

Domínio

Web

Semântica

Web

Semântica

Ref: Rector et al