Construindo Sua Primeira Ontologia

543 visualizações

Publicada em

Nosso objetivo neste workshop é desmistificar a noção de Web Semântica através da criação de uma ontologia para a F1

Publicada em: Dados e análise
  • Seja o primeiro a comentar

Construindo Sua Primeira Ontologia

  1. 1. CONSTRUINDO SUA PRIMEIRA ONTOLOGIA
  2. 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. 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
  4. 4. Objetivos Desmistificar Web Semântica
  5. 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.
  6. 6. 9780470396797
  7. 7. 9780470396797 • número? • string? • CNPJ? • CPF? • ID de banco
  8. 8. ISBN
  9. 9. Fórmula 1
  10. 10. Fórmula 1 • Campeonato • Edições anuais • Construtores (Equipes) • Torneio de Pilotos • Torneio de construtores • Corrida
  11. 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. 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. 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. 14. :do_campeonato rdf:type owl:ObjectProperty ; rdfs:domain :EdicaoCampeonato ; rdfs:label "Do campeonato" ; rdfs:range :Campeonato.
  15. 15. le wild Virtuoso Versão 6.x http://bit.ly/virtuoso61 Dependência: https://github.com/romulojales/Sua-primeira-ontologia
  16. 16. le wild Virtuoso IP:8890
  17. 17. Exercício 1: LOAD DA ONTOLOGIA
  18. 18. SPARQL ?s ?p ?o
  19. 19. Inserção de indivíduos
  20. 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. 21. Exercício 2: Sparql Consultar piloto com nome “Felipe Massa”
  22. 22. select * where{ ?s rdfs:label “Felipe Massa”}
  23. 23. Exercicio 3: Sparql associar um piloto numa equipe
  24. 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. 25. prefix grafo: <http://graph.onto/> INSERT INTO grafo: { <http://graph.onto/Piloto/1> grafo:da_equipe <http://graph.onto/Equipe/1> }
  26. 26. Exercício 4: Consultar tudo que pertence a uma equipe
  27. 27. select * where{ ?s ?p <http://graph.onto/Equipe/1>}
  28. 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. 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. 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. 31. Exercício 5: construir a classe fabricante de pneus associando a equipe
  32. 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
  33. 33. Semântica no globoesporte.com
  34. 34. 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

×