PIPCA - Computação Aplicada




  Web Semântica: Conceitos e Tecnologias




                  João Pablo Silva da Silva
                        (jpabloss@gmail.com)


                              19/05/2010
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
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
PIPCA - Computação Aplicada


Estrutura da Rede Semântica




20/05/2010                  Web Semântica: Conceitos e Tecnologias   4
PIPCA - Computação Aplicada


A Onda Semântica




20/05/2010                  Web Semântica: Conceitos e Tecnologias   5
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
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
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
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
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
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
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
PIPCA - Computação Aplicada


Engenharia de Ontologias (1)
Ontology Development 101




20/05/2010                                        Web Semântica: Conceitos e Tecnologias   13
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
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
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
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
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
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
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
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
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
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
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
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
PIPCA - Computação Aplicada


Indivíduos

• São instâncias das classes.




20/05/2010                  Web Semântica: Conceitos e Tecnologias   26
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
PIPCA - Computação Aplicada


Exemplo de Consultas DL (1)




20/05/2010                  Web Semântica: Conceitos e Tecnologias   54
PIPCA - Computação Aplicada


Exemplo de Consultas DL (2)




20/05/2010                  Web Semântica: Conceitos e Tecnologias   55
PIPCA - Computação Aplicada


Exemplo de Consultas DL (3)




20/05/2010                  Web Semântica: Conceitos e Tecnologias   56
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
PIPCA - Computação Aplicada


Exemplo de Consulta SPARQL (1)




20/05/2010                  Web Semântica: Conceitos e Tecnologias   58
PIPCA - Computação Aplicada


Exemplo de Consulta SPARQL (2)




20/05/2010                  Web Semântica: Conceitos e Tecnologias   59
PIPCA - Computação Aplicada


Exemplo de Consulta SPARQL (3)




20/05/2010                  Web Semântica: Conceitos e Tecnologias   60

Web Semântica: Conceitos e Tecnologias

  • 1.
    PIPCA - ComputaçãoAplicada Web Semântica: Conceitos e Tecnologias João Pablo Silva da Silva (jpabloss@gmail.com) 19/05/2010
  • 2.
    PIPCA - ComputaçãoAplicada 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çãoAplicada 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çãoAplicada Estrutura da Rede Semântica 20/05/2010 Web Semântica: Conceitos e Tecnologias 4
  • 5.
    PIPCA - ComputaçãoAplicada A Onda Semântica 20/05/2010 Web Semântica: Conceitos e Tecnologias 5
  • 6.
    PIPCA - ComputaçãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada Engenharia de Ontologias (1) Ontology Development 101 20/05/2010 Web Semântica: Conceitos e Tecnologias 13
  • 14.
    PIPCA - ComputaçãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada Indivíduos • São instâncias das classes. 20/05/2010 Web Semântica: Conceitos e Tecnologias 26
  • 27.
    PIPCA - ComputaçãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada 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çãoAplicada Exemplo de Consultas DL (1) 20/05/2010 Web Semântica: Conceitos e Tecnologias 54
  • 55.
    PIPCA - ComputaçãoAplicada Exemplo de Consultas DL (2) 20/05/2010 Web Semântica: Conceitos e Tecnologias 55
  • 56.
    PIPCA - ComputaçãoAplicada Exemplo de Consultas DL (3) 20/05/2010 Web Semântica: Conceitos e Tecnologias 56
  • 57.
    PIPCA - ComputaçãoAplicada 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çãoAplicada Exemplo de Consulta SPARQL (1) 20/05/2010 Web Semântica: Conceitos e Tecnologias 58
  • 59.
    PIPCA - ComputaçãoAplicada Exemplo de Consulta SPARQL (2) 20/05/2010 Web Semântica: Conceitos e Tecnologias 59
  • 60.
    PIPCA - ComputaçãoAplicada Exemplo de Consulta SPARQL (3) 20/05/2010 Web Semântica: Conceitos e Tecnologias 60