1. PIPCA - Computação Aplicada
Web Semântica: Conceitos e Tecnologias
João Pablo Silva da Silva
(jpabloss@gmail.com)
19/05/2010
2. PIPCA - Computação Aplicada
Roteiro
• Web Semântica
• Visão Geral, Estruturas e Aplicações
• Ontologias
• Definição, Elementos e Engenharia
• OWL
• Definição e Estrutura
• Consultas
• Consultas DL e SPARQL
20/05/2010 Web Semântica: Conceitos e Tecnologias 2
3. PIPCA - Computação Aplicada
Visão Geral
• Extensão da Web que permite que humanos e
computadores trabalhem em cooperação.
• Surgiu em 2001 quando Tim Berners-Lee, James Hendler
e Ora Lassila publicaram um artigo na revista Scientific
American.
• Tem como finalidade atribuir um significado aos
conteúdos publicados na Internet de modo que seja
perceptível tanto pelo humano como pelo computador.
• Objetiva desenvolver tecnologias e linguagens que tornem
a informação legível para as máquinas.
20/05/2010 Web Semântica: Conceitos e Tecnologias 3
4. PIPCA - Computação Aplicada
Estrutura da Rede Semântica
20/05/2010 Web Semântica: Conceitos e Tecnologias 4
5. PIPCA - Computação Aplicada
A Onda Semântica
20/05/2010 Web Semântica: Conceitos e Tecnologias 5
6. PIPCA - Computação Aplicada
Aplicações Web Semântica (1)
• Freebase: Uma base de dados aberta, onde as pessoas criam
dados e conectam esses dados entre si, onde são
classificados por temas e seções.
• Powerset: É um motor de busca de linguagem natural. Pode
processar perguntas, por exemplo.
• Twine: Aprende sobre você e os seus interesses a partir do
conteúdo que você cria e compartilha, fazendo um grafo desse
conteúdo.
• AdaptiveBlue: Um plug-in que oferece links de acordo com o
contexto da página que se está navegando.
• Hakia: Apontado como um dos mais promissores motores de
busca em alternativa ao Google, faz a análise de sentenças na
hora de fazer uma busca.
20/05/2010 Web Semântica: Conceitos e Tecnologias 6
7. PIPCA - Computação Aplicada
Aplicações Web Semântica (2)
• Talis: Plataforma para criação de aplicações semânticas na
web, sendo possível criar, compartilhar e reutilizar informações
nessa plataforma.
• TrueKnowledge: Tenta responder as suas perguntas a partir
de uma base de dados com conhecimentos e conexões.
• TripIt: Organizador de viagens, sendo possível criar viagens e
receber informações do flickr e wikipedia, dentre outras coisas.
• ClearForest: Permite identificar pessoas, países, tecnologias,
companhias, organizações, produtos e dados geográficos em
um texto.
• Spock: Permite buscar por pessoas e obter informações
associadas a essas pessoas.
20/05/2010 Web Semântica: Conceitos e Tecnologias 7
8. PIPCA - Computação Aplicada
Roteiro
• Web Semântica
• Visão Geral, Estruturas e Aplicações
• Ontologias
• Definição, Elementos e Engenharia
• OWL
• Definição e Estrutura
• Consultas
• Consultas DL e SPARQL
20/05/2010 Web Semântica: Conceitos e Tecnologias 8
9. PIPCA - Computação Aplicada
Definindo Ontologias
• Especificação explicita de conceitualizações.
• Define primitivas representacionais de um determinado
domínio de conhecimento.
• Conceitos, Atributos e Associações.
• São representações formais, explicitas e compartilhadas.
• Formais, pois são manipuláveis por computadores.
• Explicitas, pois são uma forma de representação.
• Compartilhadas, pois viabilizam a colaboração
20/05/2010 Web Semântica: Conceitos e Tecnologias 9
10. PIPCA - Computação Aplicada
Elementos de uma Ontologia (1)
• Conceitos
• Também chamado de classes.
• São abstrações que caracterizam o que se quer
representar.
• Exemplo: Pessoa, Cidade, Profissão, etc.
• Atributos
• Também chamado de propriedades.
• São características aplicáveis a um conceito.
• Exemplo: Nome da Pessoa, População da Cidade, etc.
20/05/2010 Web Semântica: Conceitos e Tecnologias 10
11. PIPCA - Computação Aplicada
Elementos de uma Ontologia (2)
• Associações
• Também chamado de relacionamentos.
• Estabelecem as relações entre os conceitos.
• Exemplo: Pessoa pertence a Cidade, etc.
• Indivíduos
• Também chamado de instâncias.
• São as ocorrências de cada conceito.
• Exemplo: João, Maria, Porto Alegre, Motorista, etc.
20/05/2010 Web Semântica: Conceitos e Tecnologias 11
12. PIPCA - Computação Aplicada
Bibliotecas de Ontologias
• A DAML Ontology Library mantém um legado de
ontologias em DAML.
• O SchemaWeb é um diretório de esquemas RDF
expressos em RDFS, OWL e DAML+OIL.
• O Swoogle é um diretório e mecanismo de busca para
todos os recursos RDF disponíveis na Web, incluindo
ontologias.
• A biblioteca OntoSelect oferece um serviço similar para
ontologias em RDF/S, DAML e OWL.
• O Ontaria é um "diretório pesquisável e navegável de
dados da web semântica", que foca em vocabulários RDF
com ontologias OWL.
20/05/2010 Web Semântica: Conceitos e Tecnologias 12
13. PIPCA - Computação Aplicada
Engenharia de Ontologias (1)
Ontology Development 101
20/05/2010 Web Semântica: Conceitos e Tecnologias 13
14. PIPCA - Computação Aplicada
Engenharia de Ontologias (2)
• Determinar Domínio e Escopo, onde é definido o
domínio de conhecimento que se quer representar e qual
o escopo da aplicação que se deseja construir.
• Considerar Reuso de Ontologias, a qual faz pensar
sobre questões de reuso de ontologias já definidas.
• Enumerar Termos Importantes, que leva ao
levantamento de termos do domínio sem a preocupação
de classificá-los como conceito ou propriedade.
20/05/2010 Web Semântica: Conceitos e Tecnologias 14
15. PIPCA - Computação Aplicada
Engenharia de Ontologias (3)
• Definir Classes e Hierarquias, onde, a partir da listagem
de termos, eliminam-se redundâncias e definem-se as
classes da ontologia organizadas em uma hierarquia.
• Definir Propriedades de Classes, sendo definidas
propriedades que complementam a descrição dos
conceitos da ontologia.
• Definir Restrições de Propriedades, onde são
estabelecidas restrições para cada propriedade.
• Criar Instâncias da Ontologia, que estabelece a criação
de indivíduos para a ontologia.
20/05/2010 Web Semântica: Conceitos e Tecnologias 15
16. PIPCA - Computação Aplicada
Roteiro
• Web Semântica
• Visão Geral, Estruturas e Aplicações
• Ontologias
• Definição, Elementos e Engenharia
• OWL
• Definição e Estrutura
• Consultas
• Consultas DL e SPARQL
20/05/2010 Web Semântica: Conceitos e Tecnologias 16
17. PIPCA - Computação Aplicada
Definição
• OWL propõe uma linguagem padrão para descrever
classes e seus relacionamentos, os quais podem ser
usados por aplicações e documentos web.
• Derivada das linguagens OIL e DAML+OIL.
• Desenvolvida para aumentar capacidade de expressar
semântica disponível em XML, RDF e RDFS.
• OWL é capaz de:
• formalizar um domínio de conhecimento;
• definir indivíduos para um domínio de conhecimento;
• inferir sobre um domínio de conhecimento.
20/05/2010 Web Semântica: Conceitos e Tecnologias 17
18. PIPCA - Computação Aplicada
Sublinguagens: OWL Lite
• Suporta usuários que necessitam de uma classificação
hierárquica e restrições simples.
• Embora suporte restrições de cardinalidade, ela só
permite valores de cardinalidade 0 ou 1.
• É mais simples fornecer ferramentas que suportem OWL
Lite que seus parentes mais expressivos.
• Também permite um caminho de migração mais rápido de
tesauros e outras taxonomias.
• Tem uma menor complexidade formal que OWL DL.
20/05/2010 Web Semântica: Conceitos e Tecnologias 18
19. PIPCA - Computação Aplicada
Sublinguagens: OWL DL
• Suporta usuários que querem a máxima expressividade,
enquanto mantém a:
• computabilidade: todas as conclusões sejam computáveis;
• decidibilidade: todas as computações tem tempo finito.
• Inclui todas as construções da linguagem OWL, porém
elas somente podem ser usadas com algumas restrições:
• embora uma classe possa ser subclasse de muitas classes,
uma classe não pode ser instância de outra classe.
• É assim chamada devido a sua correspondência com as
lógicas de descrição.
20/05/2010 Web Semântica: Conceitos e Tecnologias 19
20. PIPCA - Computação Aplicada
Sublinguagens: OWL Full
• Suporta usuários que querem a máxima expressividade e
a liberdade sintática do RDF sem nenhuma garantia
computacional:
• em OWL Full uma classe pode ser tratada simultaneamente
como uma coleção de indivíduos e como um indivíduo por
si mesma.
• Permite que uma ontologia aumente o vocabulário pré-
definido de RDF ou OWL.
• É improvável que algum software de inferência venha a
ser capaz de suportar completamente cada recurso da
OWL Full.
20/05/2010 Web Semântica: Conceitos e Tecnologias 20
21. PIPCA - Computação Aplicada
Relações entre as Sublinguagens
• Toda ontologia OWL Lite válida é uma ontologia OWL DL válida.
• Toda ontologia OWL DL válida é uma ontologia OWL Full válida.
• Toda conclusão OWL Lite válida é uma conclusão OWL DL válida.
• Toda conclusão OWL DL válida é uma conclusão OWL Full válida.
20/05/2010 Web Semântica: Conceitos e Tecnologias 21
22. PIPCA - Computação Aplicada
Namespaces
• Componentes iniciais necessários indicar qual
vocabulário será utilizado.
• Provê a correta interpretação, desambiguação, dos
termos utilizados na ontologia.
20/05/2010 Web Semântica: Conceitos e Tecnologias 22
23. PIPCA - Computação Aplicada
Cabeçalhos
• Após os namespaces uma série de outras definições a
respeito da ontologia podem ser feitas.
• Tags de comentário, versionamento, importação, dentre
outras, podem ser usadas.
• Propriedades usadas como anotações também podem ser
declaradas.
20/05/2010 Web Semântica: Conceitos e Tecnologias 23
24. PIPCA - Computação Aplicada
Classes
• O conceito mais básico em um domínio corresponde as
classes raízes da ontologia.
• Cada indivíduo em OWL pertence a classe owl:Thing.
• Cada classe definida é subclasses de owl:Thing.
• A tag rdf:Class nada diz sobre a classe. É apenas um
identificador pode ser um número, um caractere, etc.
20/05/2010 Web Semântica: Conceitos e Tecnologias 24
25. PIPCA - Computação Aplicada
Subclasses
• Outro conceito fundamental é o de subclasses, o qual
permite definir a hierarquia da taxonomia através de
generalizações/especializações.
• A tag rdfs:label permite dar um nome mais significativo
para a classe.
• Nomes podem ser dados de acordo com o idioma.
20/05/2010 Web Semântica: Conceitos e Tecnologias 25
26. PIPCA - Computação Aplicada
Indivíduos
• São instâncias das classes.
20/05/2010 Web Semântica: Conceitos e Tecnologias 26
27. PIPCA - Computação Aplicada
Propriedades
• As classes e os indivíduos não seriam interessantes se
fossem definidas somente por taxonomias.
• As propriedades permitem definir fatos sobre classes e
indivíduos. Sendo de dois tipos:
• DataType Properties: relação entre instâncias de classes e
literais;
• Object Properties: relação entre instâncias de duas classes.
• Para restringir uma propriedade utiliza-se domain e range:
20/05/2010 Web Semântica: Conceitos e Tecnologias 27
28. PIPCA - Computação Aplicada
Herança entre Propriedades
• Diferentemente das linguagens de programação, onde
os tipos são utilizados para verificar consistência, em
OWL, o tipo pode ser usado para inferir.
• Desta forma, pode-se inferir que “SaltonChardonnay1998” é
vinho pois o domínio de <feitoDaUva> é vinho.
20/05/2010 Web Semântica: Conceitos e Tecnologias 28
29. PIPCA - Computação Aplicada
Herança entre Propriedades
• Assim como classes, propriedades podem ser
organizadas hierarquicamente:
• O Descritor relaciona o vinho aos seus componentes, como:
gosto, suavidade, corpo e sabor. A Cor é uma sub-
propriedade de Descritor.
20/05/2010 Web Semântica: Conceitos e Tecnologias 29
30. PIPCA - Computação Aplicada
Restrições de Propriedades
• É possível expandir a definição de Vinho, para indicar
que um Vinho é feito de pelo menos uma uva vinífera.
• Esta subclasse anônima representa o conjunto de coisas
com pelo menos uma propriedade feitoDaUva.
20/05/2010 Web Semântica: Conceitos e Tecnologias 30
31. PIPCA - Computação Aplicada
Tipos de Dados
• A OWL utiliza a maioria dos tipos de dados do XML
Schema, como:
• Exemplo:
20/05/2010 Web Semântica: Conceitos e Tecnologias 31
32. PIPCA - Computação Aplicada
Propriedade de Indivíduo
• Primeiro descreve-se os indivíduos Região e Vinícola,
para então definir o vinho CabernetSauvignon.
20/05/2010 Web Semântica: Conceitos e Tecnologias 32
33. PIPCA - Computação Aplicada
Propriedades Transitivas
• P(x,y) e P(y,z) implica P(x,z).
• A propriedade localizadoEm é transitiva.
20/05/2010 Web Semântica: Conceitos e Tecnologias 33
34. PIPCA - Computação Aplicada
Propriedades Simétricas
• P(x,y) iff P(y,x).
• A propriedade regiaoAdjacente é simétrica.
• A região do ValeDosVinhedos é adjacente à
CapitalDoChampagne, e vice-versa.
20/05/2010 Web Semântica: Conceitos e Tecnologias 34
35. PIPCA - Computação Aplicada
Propriedades Funcionais
• Propriedade Funcional: P(x,y) e P(x,z) implica y = z.
• temFabricante é funcional. Um vinho tem um único
Fabricante, isto é, um Vinho pode ser associado apenas
com um Fabricante.
20/05/2010 Web Semântica: Conceitos e Tecnologias 35
36. PIPCA - Computação Aplicada
Propriedades Inversas
• P1(x,y) iff P2(y,x).
• A iff B significa que (A implica em B) e (B implica em A).
• Vinhos possuem fabricantes, que na definição de Vinhos são
restritos à Vinícolas. Então cada Vinícola produz um conjunto
de vinhos que as identifica como fabricantes.
20/05/2010 Web Semântica: Conceitos e Tecnologias 36
37. PIPCA - Computação Aplicada
Propriedades Inversamente Funcional
• P(y,x) e P(z,x) implica que y = z.
• O inverso de uma Propriedade Funcional é uma
Propriedade inversamente funcional.
• owl:InverseFunctional implica que os elementos do
range provêm um identificador único para cada elemento
do domínio.
20/05/2010 Web Semântica: Conceitos e Tecnologias 37
38. PIPCA - Computação Aplicada
Restrições Aplicadas ao Contexto (1)
• Os mecanismos vistos até o momento para restringir
TIPO são globais, já que se aplicam à todas as
instâncias da propriedade.
• Os mecanismos allValuesFrom e someValuesFrom se
aplicam somente ao contexto local onde foram definido.
20/05/2010 Web Semântica: Conceitos e Tecnologias 38
39. PIPCA - Computação Aplicada
Restrições Aplicadas ao Contexto (2)
• O fabricante do Vinho deve ser uma Vinicola. A restrição
allValuesFrom aplica-se na propriedade temFabricante
somente da classe Vinho. Outros fabricantes não são
atingidos por esta restrição.
• Se utilizar someValuesFrom, quer dizer que pelo menos
uma das propriedades temFabricante deve ser uma
Vinicola.
20/05/2010 Web Semântica: Conceitos e Tecnologias 39
40. PIPCA - Computação Aplicada
Cardinalidades
• É possível definir um número de elementos EXATO na
cardinalidade.
• Um Vinho deve ter apenas 1 Ano de Fabricação.
20/05/2010 Web Semântica: Conceitos e Tecnologias 40
41. PIPCA - Computação Aplicada
hasValue
• É possível definir uma classe a partir da existência de indivíduos
com algumas propriedades específicas.
• Um indivíduo será membro desta classe se possuir pelo menos
uma de suas propriedades que satisfaça uma condição.
• Aqui, é declarado que todos vinhos Tannat são secos.
Isto é, sua propriedade temAcucar deve ter pelo menos
um valor igual à Seco.
20/05/2010 Web Semântica: Conceitos e Tecnologias 41
42. PIPCA - Computação Aplicada
Equivalência entre Classes e Propriedades
• Utiliza-se a propriedade owl:equivalentClass para indicar
que duas classes possuem a mesma instância.
• Com objetivo de agrupar uma série de componentes de
ontologias, como sendo parte de uma terceira ontologia,
pode ser útil afirmar que uma primeira classe ou
propriedade em particular é equivalente a uma segunda
classe ou propriedade.
20/05/2010 Web Semântica: Conceitos e Tecnologias 42
43. PIPCA - Computação Aplicada
Equivalência entre Classes e Propriedades
• Aqui afirma-se que uma classe Vinho na ontologia Food
estabelece um link com as características da ontologia
Vinho, através da definição de uma classe na ontologia
Food (&food;Vinho), e posteriormente declarando-a
equivalente a classe vinho, da ontologia Vinho.
• Da mesma forma pode-se utilizar owl:equivalentProperty
para relacionar propriedades.
20/05/2010 Web Semântica: Conceitos e Tecnologias 43
44. PIPCA - Computação Aplicada
Declaração de Indivíduos Iguais
• A utilização é parecida com a das classes, porém através
deste se afirma que dois indivíduos são idênticos.
• Utilizado para identificar indivíduos em diferentes
documentos a um outro, com objetivo de unificar duas
ontologias.
• Para OWL, dois diferentes nomes não significa que eles
referem-se a indivíduos diferentes.
20/05/2010 Web Semântica: Conceitos e Tecnologias 44
45. PIPCA - Computação Aplicada
Declaração de Indivíduos Diferentes
• Utilizado para declarar que dois indivíduos são diferentes.
• Utilizado para declarar que todos indivíduos são diferentes.
20/05/2010 Web Semântica: Conceitos e Tecnologias 45
46. PIPCA - Computação Aplicada
Classes Complexas
• OWL fornece construtores com os quais é possível formar
classes.
• Estes construtores são utilizados para criar as “class
expressions”.
• OWL suporta:
• “set operations”
• “namely union”
• “intersection”
• “complement”
20/05/2010 Web Semântica: Conceitos e Tecnologias 46
47. PIPCA - Computação Aplicada
Operações: Intersecção
• intersectionOf Identifica que tudo o que for vinho e
branco, é uma instancia de Vinho Branco.
20/05/2010 Web Semântica: Conceitos e Tecnologias 47
48. PIPCA - Computação Aplicada
Operações: União
• unionOf utilizado para identificar que a classe Fruta
inclui as extensões de FrutaDoce e as extensões de
FrutaNaoDoce.
20/05/2010 Web Semântica: Conceitos e Tecnologias 48
49. PIPCA - Computação Aplicada
Operações: Complemento
• complementOf é utilizado para identificar indivíduos de
um domínio que não pertencem a algumas classes.
• A classes NaoAlimento inclui como seus membros todos os
indivíduos que NÃO pertencem a extensão de Alimento.
20/05/2010 Web Semântica: Conceitos e Tecnologias 49
50. PIPCA - Computação Aplicada
Classes Enumeradas
• oneOf fornece meios para especificar uma classe
através da enumeração direta de seus membros. O
seguinte define que a classe CorDoVinho possui os
membros Branco, Rose e Tinto.
• Cada elemento do construtor oneOf deve ser um individuo
declarado.
• Um indivíduo deve pertencer a alguma classe, no exemplo
acima cada indivíduo foi referenciado pelo nome.
20/05/2010 Web Semântica: Conceitos e Tecnologias 50
51. PIPCA - Computação Aplicada
Classes Disjuntas
• Definindo Fruta como sendo a união entre FrutaDoce e
FrutaNaoDoce.
• disjointWith parciona Fruta em duas sub-classes
distintas, por elas não são conectadas.
20/05/2010 Web Semântica: Conceitos e Tecnologias 51
52. PIPCA - Computação Aplicada
Roteiro
• Web Semântica
• Visão Geral, Estruturas e Aplicações
• Ontologias
• Definição, Elementos e Engenharia
• OWL
• Definição e Estrutura
• Consultas
• Consultas DL e SPARQL
20/05/2010 Web Semântica: Conceitos e Tecnologias 52
53. PIPCA - Computação Aplicada
Sintaxe Manchester
• Sintaxe suportada pelo Protégé-OWL para realização de
consultas baseadas em lógica de descrição.
20/05/2010 Web Semântica: Conceitos e Tecnologias 53
54. PIPCA - Computação Aplicada
Exemplo de Consultas DL (1)
20/05/2010 Web Semântica: Conceitos e Tecnologias 54
55. PIPCA - Computação Aplicada
Exemplo de Consultas DL (2)
20/05/2010 Web Semântica: Conceitos e Tecnologias 55
56. PIPCA - Computação Aplicada
Exemplo de Consultas DL (3)
20/05/2010 Web Semântica: Conceitos e Tecnologias 56
57. PIPCA - Computação Aplicada
Cláusulas SPARQL
• Similar ao SQL e serve para realizar consultas em grafos
RDF ou OWL.
20/05/2010 Web Semântica: Conceitos e Tecnologias 57
58. PIPCA - Computação Aplicada
Exemplo de Consulta SPARQL (1)
20/05/2010 Web Semântica: Conceitos e Tecnologias 58
59. PIPCA - Computação Aplicada
Exemplo de Consulta SPARQL (2)
20/05/2010 Web Semântica: Conceitos e Tecnologias 59
60. PIPCA - Computação Aplicada
Exemplo de Consulta SPARQL (3)
20/05/2010 Web Semântica: Conceitos e Tecnologias 60