Tutorial de Web Semântica
Bianca Pereira
Primeiro Encontro em Computação Semântica
Conteúdo
• O que esperar do Tutorial?
– O que é Web Semântica?
– RDF vs OWL
– SPARQL
– Exemplo de Aplicação
Símbolo e Conceito
Símbolo e Conceito
Símbolo e Conceito
maçã
Símbolo e Conceito
Símbolo e Conceito
manga
Por que Web Semântica?
• Imensa quantidade de dados, em geral apenas
para consumo humano.
• O dado é processável por máquina mas seu
significado não pode ser acessado por
máquinas.
• Tentativa de tornar explícito o conhecimento
compartilhado.
Símbolo e Conceito
Conceito
Símbolo
Conhecimento
Dado puro
Modelos de Representação
Semânticos
• Glossários
• Taxonomias/ Partonomias
• Redes Conceituais
• Ontologias
Glossários
Termo Descrição
Manga (ID 001) Fruta da mangueira.
Manga (ID 002) Parte da vestimenta, de forma e dimensões variáveis,
e que recobre o braço total ou parcialmente.
Maçã (ID 003) Fruta da macieira.
Taxonomias
Adaptado de http://www.mattlavery.com/photographybtqe/clasificacion-del-reino-animal
Partonomias
Rio de Janeiro (Estado)
Rio de Janeiro (Município)
Ilha do Fundão Ilha do Governador
Duque de Caxias
Redes Conceituais
Adaptado de
http://proavirtualg3.pbworks.com/w/page/18671313/Terceira%20Vers%C3%A3o%20do%20Mapa
Ontologias
Adaptado de
http://proavirtualg3.pbworks.com/w/page/18671313/Terceira%20Vers%C3%A3o%20do%20Mapa
Modelo Formal
Os dados são processáveis por
máquina
CREATE TABLE Pessoa
(
ID int,
Nome varchar(255),
Cidade_de_nascimento varchar(255) FOREIGN KEY
);
Os dados são processáveis por
máquina
ID Nome Cidade_de_Nascimento
001 Bianca Id_cidade001
ID Nome
Id_cidade001 Rio de Janeiro
Pessoa
Cidade
Como tornar o significado processável
por máquina?
“Bianca”
001
Id_cidade001 “Rio de Janeiro”
ID Nome Cidade_de_Nascimento
001 Bianca Id_cidade001
ID Nome
Id_cidade001 Rio de Janeiro
Pessoa
Cidade
nome
nome
cidade_de_nascimento
Como tornar o significado processável
por máquina?
“Bianca”
001
Id_cidade001 “Rio de Janeiro”
<001> <nome> “Bianca” .
<001> <cidade_de_nascimento> <Id_cidade001> .
<Id_cidade001> <nome> “Rio de Janeiro” .
nome
nome
cidade_de_nascimento
Como tornar o significado processável
por máquina?
“Bianca”
001
Id_cidade001 “Rio de Janeiro”
<001> <nome> “Bianca” .
<001> <cidade_de_nascimento> <Id_cidade001> .
<Id_cidade001> <nome> “Rio de Janeiro” .
<001> <type> <Pessoa> .
<Id_cidade001> <type> <Cidade> .
Pessoa
Cidade
nome
nome
cidade_de_nascimento
type
type
Como ligar o conhecimento com outra
base de dados?
ID Nome Cidade_de_Nascimento
001 Bianca Id_cidade001
ID Nome
Id_cidade001 Rio de Janeiro
Pessoa
Cidade
Como ligar o conhecimento com outra
base de dados?
• Criando mais tabelas e importando todos os
dados da Wikipédia?
Minha Base de
Dados
Como ligar o conhecimento com outra
base de dados?
• Criando mais tabelas e importando todos os
dados da Wikipédia?
Minha Base de
Dados
Desatualizado
Como ligar o conhecimento com outra
base de dados?
“Bianca”
001
Pessoa
nome
cidade_de_nascimento
type
• Ligando diretamente com O DADO na outra
base de dados.
http://en.wikipedia.org/wiki/Rio_de_Janeiro
Dados Ligados (Linked Data)
Adaptado de http://lod-cloud.net/versions/2014-08-30/lod-cloud.png
Dados Ligados (Linked Data)
• Cada recurso na Web recebe um identificador
único:
http://www.imdb.com
http://www.imdb.com/title/tt1661199/?ref_=hm_otw_t0
Dados Ligados (Linked Data)
• Cada recurso na Web recebe um identificador
único:
“Bianca”
http://meudominio.com.br/pe
ssoa/001
http://meudominio.com.br/
cidade/Rio001
“Rio de Janeiro”
nome
nome
cidade_de_nascimento
Dados Ligados
FONTE: http://en.wikipedia.org/wiki/Rio_de_Janeiro
FONTE: http://dbpedia.org/sparql
Dados Ligados (DBpedia)
“Bianca”
Pessoa
nome
cidade_de_nascimento
type
http://dbpedia.org/resource/Rio_de_Janeiro
<http://meudominio.com.br/pessoa/001> <nome> “Bianca” .
<http://meudominio.com.br/pessoa/001> <cidade_de_nascimento>
<http://dbpedia.org/resource/Rio_de_Janeiro> .
<http://meudominio.com.br/pessoa/001> <type> <Pessoa> .
http://meudominio.com.br/pe
ssoa/001
Dados Ligados (Schema)
“Bianca”
Pessoa
nome
cidade_de_nascimento
type
http://dbpedia.org/resource/Rio_de_Janeiro
<http://meudominio.com.br/pessoa/001>
<http://meudominio.com.br/vocab/nome> “Bianca” .
<http://meudominio.com.br/pessoa/001>
<http://meudominio.com.br/vocab/cidade_de_nascimento>
<http://dbpedia.org/resource/Rio_de_Janeiro> .
<http://meudominio.com.br/pessoa/001> <type> <Pessoa> .
http://meudominio.com.br/pe
ssoa/001
RDF Schema (Propriedades)
<?xml version=“1.0”?>
<rdf:RDF
xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://meudominio.com.br/vocab/">
<rdf:Property ID=”nome">
<rdfs:label xml:lang=”pt-br">nome</rdfs:label>
</rdf:Property>
<rdf:Property ID=”cidade_de_nascimento">
<rdfs:label xml:lang=”pt-br">cidade de nascimento</rdfs:label>
</rdf:Property>
</rdf:RDF>
RDF Schema (Classes)
(…)
<rdf:Description rdf:ID=”Pessoa">
<rdf:type rdf:resource="http://www.w3.org/20
00/01/rdf-schema#Class"/>
</rdf:Description>
(…)
RDF Schema (Domain and Range)
<rdf:Property ID=”propriedade">
<rdfs:range rdf:resource=”DOMAIN"/>
<rdfs:domain rdf:resource=”RANGE"/>
</rdf:Property>
DOMAIN
http://meudominio.com.br/vocab/propriedade
RANGE
RDF Schema (Domain and Range)
<rdf:Property ID=”nome">
<rdfs:range rdf:resource="http://www.w3.org/2000/01
/rdf-schema#Literal"/>
<rdfs:domain rdf:resource=”#Pessoa"/>
</rdf:Property>
“Bianca”
http://meudominio.com.br/pe
ssoa/001
http://meudominio.com.br/vocab/nome
RDF Schema (Domain and Range)
<rdf:Property ID=”nome">
<rdfs:range rdf:resource=”http://dbpedia.org/ontology/
Place"/>
<rdfs:domain rdf:resource=”#Pessoa"/>
</rdf:Property>
http://meudominio.com.br/vocab/cidade_de_nascimento
http://dbpedia.org/resource/Rio_de_Janeiro
http://meudominio.com.br/pe
ssoa/001
Dados Ligados (Schema)
“Bianca”
vocab:Pessoa
vocab:nome
vocab:cidade_de_nascimento
rdf:type
http://dbpedia.org/resource/Rio_de_Janeiro
PREFIX vocab: <http://meudominio.com.br/vocab/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
<http://meudominio.com.br/pessoa/001> <vocab:nome> “Bianca” .
<http://meudominio.com.br/pessoa/001> <vocab:cidade_de_nascimento>
<http://dbpedia.org/resource/Rio_de_Janeiro> .
<http://meudominio.com.br/pessoa/001> <rdf:type> <vocab:Pessoa> .
http://meudominio.com.br/pe
ssoa/001
Linked Open Vocabularies
FONTE: http://lov.okfn.org/dataset/lov/
Vocabulário Friend of a Friend
FONTE: http://xmlns.com/foaf/spec/
Dados Ligados (Schema)
“Bianca”
Foaf:Person
vocab:nome
vocab:cidade_de_nascimento
rdf:type
http://dbpedia.org/resource/Rio_de_Janeiro
(…)
PREFIX foaf: http://xmlns.com/foaf/0.1/
(…)
<http://meudominio.com.br/pessoa/001> <rdf:type> <foaf:Person> .
http://meudominio.com.br/pe
ssoa/001
Por que reutilizar vocabulários?
manga
RDFS
• type
• subClassOf
• subPropertyOf
• range
• domain
• label
• comment
Restrições Lógicas
• E se eu quiser adicionar outras restrições
lógicas?
– 0 < altura < 3 metros
– Pessoa é disjunto a Local
– Objetos Inanimados é o complemento de Seres
Vivos
– …
OWL
• Relacionamentos entre classes
(ex:disjointWith, complementOf)
• Igualdade (ex: sameAs)
• Propriedades mais expressivas (ex:
symmetrical, transitive, inverseOf)
• Restrições de classe (ex: allValuesFrom)
• Permite inferências
Traduzido de http://pt.slideshare.net/rlovinger/rdf-and-owl
RDF vs OWL
Maria
Pedro
Juliano
Propriedade: amigo_de
(transitivo)
Como usar os Dados Ligados?
• Perspectiva Navegacional
• Perspectiva de Base de Dados
Linguagem SPARQL
SELECT *
WHERE {
?s ?p ?o.
}
SELECT *
WHERE {
?s ?p ?o.
FILTER( ?s =
<http://dbpedia.org/resource/Rio_
de_Janeiro>)
} LIMIT 9
Consulta Federada
consulta
SPARQL Federado
Aplicações
“Bianca dará um tutorial hoje.”
http://meudominio.com.br/pessoa/001
Anotação Semântica
“Bianca dará um tutorial hoje.”
http://meudominio.com.br/pessoa/001
Busca Semântica
Bianca
Bianca Pereira
http://meudominio.com.br/pessoa/001
Pessoa
Bianca Jackson
http://dbpedia.org/resource/Bianca_Jackson
Personagem de Ficção
Busca Semântica
FONTE: https://www.google.com/?gws_rd=ssl#safe=off&q=Michael+Jackson
Entity Linking
Mention
Recognition
I just took a flight from Dublin.
Dublin
Disambiguation
Entity Linking
Ranking
Dublin
2nd
https://www.crunchbase.com/location/dubl
in/97c70aa17568ca5375122f181f0484a73rd
http://data.linkedmdb.org/page/film_loca
tion/275
1st http://sws.geonames.org/2964574
OBRIGADA
Bianca Pereira
bianca.pereira@insight-centre.org

Tutorial de Web Semântica - CompSem 2015

Notas do Editor

  • #10 Mas o conceito não é também uma string?
  • #49 Concept -> symbol -> concept
  • #50 Concept -> symbol -> concept