SlideShare une entreprise Scribd logo
1  sur  37
CONSTRUINDO SUA 
PRIMEIRA 
ONTOLOGIA
Quem somos 
Engenheiro de SW Sr do 
Portal globoesporte.com 
Desenvolveu as ontologia de 
combate, corridas de rua e 
olimpíadas 
[twitter, linkedin, github] 
romulojales 
<.com>
Quem somos 
Engenheiro Eletrônico e de 
Computação pela UFRJ e 
mestre em Informática pela 
PUC-Rio, Desenvolvedor 
sênior no globoesporte.com, 
o maior site de esportes do 
Brasil e o site oficial da Copa 
do Mundo FIFA Brasil 2014. 
@victorpantoja 
github.com/victorpantoja
Objetivos 
Desmistificar Web Semântica
Como 
Apresentação de forma prática dos 
conceitos de web semântica 
através da criação de uma 
ontologia que descreve Fórmula 1.
9780470396797
9780470396797 
• número? 
• string? 
• CNPJ? 
• CPF? 
• ID de banco
ISBN
Fórmula 1
Fórmula 1 
• Campeonato 
• Edições anuais 
• Construtores (Equipes) 
• Torneio de Pilotos 
• Torneio de construtores 
• Corrida
Vocabulários Básicos 
• OWL - Web Ontology Language 
• Vocabulário estrutural para coisas complexas 
• RDFS - Resource Descriptor Framework 
• Vocabulário descritor das coisas complexas
:Campeonato rdf:type owl:Class ; 
rdfs:label "Campeonato"; 
rdfs:subClassOf 
[ rdf:type owl:Restriction ; 
owl:onProperty :slug_topico ; 
owl:onDataRange rdf:XMLLiteral ; 
owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger 
], 
[ rdf:type owl:Restriction ; 
owl:onProperty :nome ; 
owl:onDataRange rdf:XMLLiteral ; 
owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger 
].
:slug rdf:type owl:DatatypeProperty ; 
rdfs:label "Slug da Entidade" ; 
rdfs:range rdf:XMLLiteral ; 
rdfs:domain :EdicaoCampeonato; 
rdfs:domain :Piloto; 
rdfs:domain :Campeonato. 
:nome rdf:type owl:DatatypeProperty ; 
rdfs:label "Nome da Entidade" ; 
rdfs:range rdf:XMLLiteral ; 
rdfs:domain :Autodromo; 
rdfs:domain :EdicaoCampeonato; 
rdfs:domain :Equipe; 
rdfs:domain :Piloto; 
rdfs:domain :GP; 
rdfs:domain :Campeonato.
:do_campeonato 
rdf:type owl:ObjectProperty ; 
rdfs:domain :EdicaoCampeonato ; 
rdfs:label "Do campeonato" ; 
rdfs:range :Campeonato.
le wild Virtuoso 
Versão 6.x 
http://bit.ly/virtuoso61 
Dependência: 
https://github.com/romulojales/Sua-primeira-ontologia
le wild Virtuoso 
IP:8890
Exercício 1: LOAD DA 
ONTOLOGIA
SPARQL 
?s ?p ?o
Inserção de indivíduos
https://github.com/openlink/virtuoso-opensource/ 
issues/181 
GRANT EXECUTE ON 
DB.DBA.SPARUL_LOAD_SERVICE_DATA TO 
"SPARQL"; 
GRANT EXECUTE ON DB.DBA.SPARQL_SD_PROBE 
TO "SPARQL"; 
GRANT EXECUTE ON DB.DBA.L_O_LOOK TO 
“SPARQL"; 
GRANT EXECUTE ON DB.DBA.RDF_QUAD to 
SPARQL_UPDATE;
Exercício 2: Sparql 
Consultar piloto com 
nome “Felipe Massa”
select * where{ ?s 
rdfs:label “Felipe Massa”}
Exercicio 3: Sparql 
associar um piloto numa equipe
prefix grafo: <http://graph.onto/> 
INSERT INTO grafo: 
{ 
grafo:faz_parte_equipe 
rdfs:domain 
<http://graph.onto/Piloto>; 
rdf:range 
<http://graph.onto/Equipe> 
}
prefix grafo: <http://graph.onto/> 
INSERT INTO grafo: 
{ 
<http://graph.onto/Piloto/1> grafo:da_equipe 
<http://graph.onto/Equipe/1> 
}
Exercício 4: Consultar 
tudo que pertence a uma 
equipe
select * where{ 
?s ?p 
<http://graph.onto/Equipe/1>}
:slug rdf:type owl:DatatypeProperty ; 
rdfs:label "Slug da Entidade" ; 
rdfs:range rdf:XMLLiteral ; 
rdfs:domain :EdicaoCampeonato; 
rdfs:domain :Piloto; 
rdfs:domain :Campeonato; 
rdfs:domain :FabricantePneu 
:nome rdf:type owl:DatatypeProperty ; 
rdfs:label "Nome da Entidade" ; 
rdfs:range rdf:XMLLiteral ; 
rdfs:domain :Autodromo; 
rdfs:domain :EdicaoCampeonato; 
rdfs:domain :Equipe; 
rdfs:domain :Piloto; 
rdfs:domain :GP; 
rdfs:domain :Campeonato; 
rdfs:domain :FabricantePneu.
FabricantePneu => Equipe 
:fornece_pneu rdf:type owl:ObjectProperty ; 
rdfs:label “Fornece Pneu" ; 
rdfs:range :Equipe; 
rdfs:domain :FabricantePneu. 
Equipe => FabricantePneu 
:compra_pneu_de rdf:type owl:ObjectProperty ; 
rdfs:label “Recebe Pneu" ; 
rdfs:range :FabricantePneu; 
rdfs:domain :Equipe.
:FabricantePneu rdf:type owl:Class ; 
rdfs:label “Fabricante de pneu"; 
rdfs:subClassOf 
[ rdf:type owl:Restriction ; 
owl:onProperty :slug_topico ; 
owl:onDataRange rdf:XMLLiteral ; 
owl:maxQualifiedCardinality 
"1"^^xsd:nonNegativeInteger 
], 
[ rdf:type owl:Restriction ; 
owl:onProperty :nome ; 
owl:onDataRange rdf:XMLLiteral ; 
owl:maxQualifiedCardinality 
"1"^^xsd:nonNegativeInteger 
].
Exercício 5: 
construir a classe fabricante de 
pneus associando a equipe
Exercício 6 
Qual o fabricante de pneu que 
Felipe Massa correu numa dada 
edição. 
obs.: vc não sabe de qual equipe 
Felipe Massa é piloto
Semântica no 
globoesporte.com
Estamos contratando 
http://bit.ly/quero-trabalhar-globo 
https://github.com/globocom/IWantToWorkAtGloboco 
m 
talentos@corp.globo.com 
romulo.jales@corp.globo.com 
victor.pantoja@corp.globo.com

Contenu connexe

En vedette

Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009
Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009
Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009Gisele Dziekaniak
 
O CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comO CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comAlexandre Saboia Fuziyama
 
07 mutação e reparo do dna
07 mutação e reparo do dna07 mutação e reparo do dna
07 mutação e reparo do dnaEliane Cardoso
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
recombinant DNA technology enzymes
recombinant DNA technology enzymesrecombinant DNA technology enzymes
recombinant DNA technology enzymesshldtpaul2
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Henrique Gabriel Gularte Pereira
 

En vedette (8)

Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009
Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009
Introdução às ontologias por Gisele Dziekaniak EDUTEC FURG 2009
 
Ontologias
OntologiasOntologias
Ontologias
 
O CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comO CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.com
 
Ontologia
OntologiaOntologia
Ontologia
 
07 mutação e reparo do dna
07 mutação e reparo do dna07 mutação e reparo do dna
07 mutação e reparo do dna
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
recombinant DNA technology enzymes
recombinant DNA technology enzymesrecombinant DNA technology enzymes
recombinant DNA technology enzymes
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
 

Similaire à Construindo Sua Primeira Ontologia

Brainiak: Um plano maligno de dominação semântica hipermídia
Brainiak: Um plano maligno de dominação semântica hipermídiaBrainiak: Um plano maligno de dominação semântica hipermídia
Brainiak: Um plano maligno de dominação semântica hipermídiaRodrigo Senra
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
SEO Para Desenvolvedores
SEO Para Desenvolvedores SEO Para Desenvolvedores
SEO Para Desenvolvedores Umbler
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007Claudio Gamboa
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoDavid Robert Camargo de Campos
 
Usando o i report como gerador de relatórios para php
Usando o i report como gerador de relatórios para phpUsando o i report como gerador de relatórios para php
Usando o i report como gerador de relatórios para phpbrunocf007
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7tdc-globalcode
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3Alex Miranda
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas InternetLuiz Domingues
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]Filipe Ximenes
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com SpringMateus Malaquias
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 

Similaire à Construindo Sua Primeira Ontologia (20)

Brainiak: Um plano maligno de dominação semântica hipermídia
Brainiak: Um plano maligno de dominação semântica hipermídiaBrainiak: Um plano maligno de dominação semântica hipermídia
Brainiak: Um plano maligno de dominação semântica hipermídia
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0Mashups: Criando Valor na Web 2.0
Mashups: Criando Valor na Web 2.0
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
SEO Para Desenvolvedores
SEO Para Desenvolvedores SEO Para Desenvolvedores
SEO Para Desenvolvedores
 
LDAP
LDAPLDAP
LDAP
 
Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Sistemas de Gestão de Ciência e Repositórios - DSpaceCRIS
Sistemas de Gestão de Ciência e Repositórios - DSpaceCRISSistemas de Gestão de Ciência e Repositórios - DSpaceCRIS
Sistemas de Gestão de Ciência e Repositórios - DSpaceCRIS
 
Usando o i report como gerador de relatórios para php
Usando o i report como gerador de relatórios para phpUsando o i report como gerador de relatórios para php
Usando o i report como gerador de relatórios para php
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas Internet
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]O que é esse tal de rest? [PyBR2016]
O que é esse tal de rest? [PyBR2016]
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 

Construindo Sua Primeira Ontologia

  • 2. Quem somos Engenheiro de SW Sr do Portal globoesporte.com Desenvolveu as ontologia de combate, corridas de rua e olimpíadas [twitter, linkedin, github] romulojales <.com>
  • 3. Quem somos Engenheiro Eletrônico e de Computação pela UFRJ e mestre em Informática pela PUC-Rio, Desenvolvedor sênior no globoesporte.com, o maior site de esportes do Brasil e o site oficial da Copa do Mundo FIFA Brasil 2014. @victorpantoja github.com/victorpantoja
  • 5. Como Apresentação de forma prática dos conceitos de web semântica através da criação de uma ontologia que descreve Fórmula 1.
  • 7. 9780470396797 • número? • string? • CNPJ? • CPF? • ID de banco
  • 10. Fórmula 1 • Campeonato • Edições anuais • Construtores (Equipes) • Torneio de Pilotos • Torneio de construtores • Corrida
  • 11. Vocabulários Básicos • OWL - Web Ontology Language • Vocabulário estrutural para coisas complexas • RDFS - Resource Descriptor Framework • Vocabulário descritor das coisas complexas
  • 12. :Campeonato rdf:type owl:Class ; rdfs:label "Campeonato"; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty :slug_topico ; owl:onDataRange rdf:XMLLiteral ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ], [ rdf:type owl:Restriction ; owl:onProperty :nome ; owl:onDataRange rdf:XMLLiteral ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ].
  • 13. :slug rdf:type owl:DatatypeProperty ; rdfs:label "Slug da Entidade" ; rdfs:range rdf:XMLLiteral ; rdfs:domain :EdicaoCampeonato; rdfs:domain :Piloto; rdfs:domain :Campeonato. :nome rdf:type owl:DatatypeProperty ; rdfs:label "Nome da Entidade" ; rdfs:range rdf:XMLLiteral ; rdfs:domain :Autodromo; rdfs:domain :EdicaoCampeonato; rdfs:domain :Equipe; rdfs:domain :Piloto; rdfs:domain :GP; rdfs:domain :Campeonato.
  • 14. :do_campeonato rdf:type owl:ObjectProperty ; rdfs:domain :EdicaoCampeonato ; rdfs:label "Do campeonato" ; rdfs:range :Campeonato.
  • 15. le wild Virtuoso Versão 6.x http://bit.ly/virtuoso61 Dependência: https://github.com/romulojales/Sua-primeira-ontologia
  • 16. le wild Virtuoso IP:8890
  • 17. Exercício 1: LOAD DA ONTOLOGIA
  • 20. https://github.com/openlink/virtuoso-opensource/ issues/181 GRANT EXECUTE ON DB.DBA.SPARUL_LOAD_SERVICE_DATA TO "SPARQL"; GRANT EXECUTE ON DB.DBA.SPARQL_SD_PROBE TO "SPARQL"; GRANT EXECUTE ON DB.DBA.L_O_LOOK TO “SPARQL"; GRANT EXECUTE ON DB.DBA.RDF_QUAD to SPARQL_UPDATE;
  • 21. Exercício 2: Sparql Consultar piloto com nome “Felipe Massa”
  • 22. select * where{ ?s rdfs:label “Felipe Massa”}
  • 23. Exercicio 3: Sparql associar um piloto numa equipe
  • 24. prefix grafo: <http://graph.onto/> INSERT INTO grafo: { grafo:faz_parte_equipe rdfs:domain <http://graph.onto/Piloto>; rdf:range <http://graph.onto/Equipe> }
  • 25. prefix grafo: <http://graph.onto/> INSERT INTO grafo: { <http://graph.onto/Piloto/1> grafo:da_equipe <http://graph.onto/Equipe/1> }
  • 26. Exercício 4: Consultar tudo que pertence a uma equipe
  • 27. select * where{ ?s ?p <http://graph.onto/Equipe/1>}
  • 28. :slug rdf:type owl:DatatypeProperty ; rdfs:label "Slug da Entidade" ; rdfs:range rdf:XMLLiteral ; rdfs:domain :EdicaoCampeonato; rdfs:domain :Piloto; rdfs:domain :Campeonato; rdfs:domain :FabricantePneu :nome rdf:type owl:DatatypeProperty ; rdfs:label "Nome da Entidade" ; rdfs:range rdf:XMLLiteral ; rdfs:domain :Autodromo; rdfs:domain :EdicaoCampeonato; rdfs:domain :Equipe; rdfs:domain :Piloto; rdfs:domain :GP; rdfs:domain :Campeonato; rdfs:domain :FabricantePneu.
  • 29. FabricantePneu => Equipe :fornece_pneu rdf:type owl:ObjectProperty ; rdfs:label “Fornece Pneu" ; rdfs:range :Equipe; rdfs:domain :FabricantePneu. Equipe => FabricantePneu :compra_pneu_de rdf:type owl:ObjectProperty ; rdfs:label “Recebe Pneu" ; rdfs:range :FabricantePneu; rdfs:domain :Equipe.
  • 30. :FabricantePneu rdf:type owl:Class ; rdfs:label “Fabricante de pneu"; rdfs:subClassOf [ rdf:type owl:Restriction ; owl:onProperty :slug_topico ; owl:onDataRange rdf:XMLLiteral ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ], [ rdf:type owl:Restriction ; owl:onProperty :nome ; owl:onDataRange rdf:XMLLiteral ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ].
  • 31. Exercício 5: construir a classe fabricante de pneus associando a equipe
  • 32. Exercício 6 Qual o fabricante de pneu que Felipe Massa correu numa dada edição. obs.: vc não sabe de qual equipe Felipe Massa é piloto
  • 34.
  • 35.
  • 36.
  • 37. Estamos contratando http://bit.ly/quero-trabalhar-globo https://github.com/globocom/IWantToWorkAtGloboco m talentos@corp.globo.com romulo.jales@corp.globo.com victor.pantoja@corp.globo.com

Notes de l'éditeur

  1. Engenheiro Eletrônico e de Computação pela UFRJ e mestre em Informática pela PUC-Rio, Desenvolvedor sênior no globoesporte.com, o maior site de esportes do Brasil e o site oficial da Copa do Mundo FIFA Brasil 2014.
  2. Que número é este? A idéia é provocar o espectador a pensar no significado dos números
  3. Que número é este? A idéia é provocar o espectador a pensar no significado dos números
  4. Que número é este? A idéia é provocar o espectador a pensar no significado dos números
  5. continuando a provocação
  6. Respondendo o que é o número e mostrando o valor de ter um significado
  7. Lembrar que ainda não tem vinculo entre equipe e piloto. Modificar o predicado da_equipe