SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
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 
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.
Objetivos 
Desmistificar Web Semântica 
Que número é este? A idéia é provocar o espectador a pensar no significado dos números
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. 
Que número é este? A idéia é provocar o espectador a pensar no significado dos números
9780470396797 
Que número é este? A idéia é provocar o espectador a pensar no significado dos números
9780470396797 
• número? 
• string? 
• CNPJ? 
• CPF? 
• ID de banco 
continuando a provocação
ISBN 
Respondendo o que é o número e mostrando o valor de ter um significado
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 
Lembrar que ainda não tem vinculo entre equipe e piloto. Modificar o predicado da_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/ 
IWantToWorkAtGlobocom 
talentos@corp.globo.com 
romulo.jales@corp.globo.com 
victor.pantoja@corp.globo.com

Weitere ähnliche Inhalte

Ähnlich wie Construindo sua primeira ontologia

Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007
Claudio Gamboa
 

Ähnlich wie Construindo sua primeira ontologia (20)

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
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
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
 
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
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017
 
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)
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com python
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Desenvolvendo plugin para WordPress
Desenvolvendo plugin para WordPressDesenvolvendo plugin para WordPress
Desenvolvendo plugin para WordPress
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007
 
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
 

Mehr von Rômulo Jales

Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
Rômulo Jales
 
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
Rômulo Jales
 
Implementação UHCI para Memtest86+
Implementação UHCI para Memtest86+Implementação UHCI para Memtest86+
Implementação UHCI para Memtest86+
Rômulo Jales
 

Mehr von Rômulo Jales (10)

Conhecimentos básicos para construir um portal que atenda 10milhões de pesoas
Conhecimentos básicos para construir um portal que atenda 10milhões de pesoasConhecimentos básicos para construir um portal que atenda 10milhões de pesoas
Conhecimentos básicos para construir um portal que atenda 10milhões de pesoas
 
Introdução a Model Based User Interface Design
Introdução a Model Based User Interface DesignIntrodução a Model Based User Interface Design
Introdução a Model Based User Interface Design
 
Bridge GoF Patern
Bridge GoF PaternBridge GoF Patern
Bridge GoF Patern
 
Usando Django para servir 12 milhões de usuários
Usando Django para servir 12 milhões de usuáriosUsando Django para servir 12 milhões de usuários
Usando Django para servir 12 milhões de usuários
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 
Implementação de
Implementação de Implementação de
Implementação de
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
DKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module SupportDKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module Support
 
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...IMPLEMENTAÇÃO DO UNIVERSEAL  HOST CONTROLLER INTERFACE    (UHCI) PARA O MEMTE...
IMPLEMENTAÇÃO DO UNIVERSEAL HOST CONTROLLER INTERFACE (UHCI) PARA O MEMTE...
 
Implementação UHCI para Memtest86+
Implementação UHCI para Memtest86+Implementação UHCI para Memtest86+
Implementação UHCI para Memtest86+
 

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 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.
  • 4. Objetivos Desmistificar Web Semântica Que número é este? A idéia é provocar o espectador a pensar no significado dos números
  • 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. Que número é este? A idéia é provocar o espectador a pensar no significado dos números
  • 6. 9780470396797 Que número é este? A idéia é provocar o espectador a pensar no significado dos números
  • 7. 9780470396797 • número? • string? • CNPJ? • CPF? • ID de banco continuando a provocação
  • 8. ISBN Respondendo o que é o número e mostrando o valor de ter um significado
  • 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 Lembrar que ainda não tem vinculo entre equipe e piloto. Modificar o predicado da_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/ IWantToWorkAtGlobocom talentos@corp.globo.com romulo.jales@corp.globo.com victor.pantoja@corp.globo.com