37
CONSTRUINDO SUA PRIMEIRA ONTOLOGIA

Construindo sua primeira ontologia

Embed Size (px)

DESCRIPTION

Slides guia do tutorial de "construindo sua primeira ontologia" proferido na python brasil 2014. Nos slides há guias e links para recursos adicionais ao tutorial

Citation preview

Page 1: Construindo sua primeira ontologia

CONSTRUINDO SUA PRIMEIRA ONTOLOGIA

Page 2: Construindo sua primeira ontologia

Quem somosEngenheiro de SW Sr do Portal globoesporte.com

Desenvolveu as ontologia de combate, corridas de rua e olimpíadas

[twitter, linkedin, github]romulojales<.com>

Page 3: Construindo sua primeira ontologia

Quem somosEngenheiro 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.

Page 4: Construindo sua primeira ontologia

Desmistificar Web Semântica

Objetivos

Que número é este? A idéia é provocar o espectador a pensar no significado dos números

Page 5: Construindo sua primeira ontologia

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.

Como

Que número é este? A idéia é provocar o espectador a pensar no significado dos números

Page 6: Construindo sua primeira ontologia

9780470396797

Que número é este? A idéia é provocar o espectador a pensar no significado dos números

Page 7: Construindo sua primeira ontologia

9780470396797• número?

• string?

• CNPJ?

• CPF?

• ID de banco

continuando a provocação

Page 8: Construindo sua primeira ontologia

ISBN

Respondendo o que é o número e mostrando o valor de ter um significado

Page 9: Construindo sua primeira ontologia

Fórmula 1

Page 10: Construindo sua primeira ontologia

Fórmula 1• Campeonato

• Edições anuais

• Construtores (Equipes)

• Torneio de Pilotos

• Torneio de construtores

• Corrida

Page 11: Construindo sua primeira ontologia

Vocabulários Básicos

• OWL - Web Ontology Language

• Vocabulário estrutural para coisas complexas

• RDFS - Resource Descriptor Framework

• Vocabulário descritor das coisas complexas

Page 12: Construindo sua primeira ontologia

: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 ].

Page 13: Construindo sua primeira ontologia

: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.

Page 14: Construindo sua primeira ontologia

:do_campeonato rdf:type owl:ObjectProperty ; rdfs:domain :EdicaoCampeonato ; rdfs:label "Do campeonato" ; rdfs:range :Campeonato.

Page 15: Construindo sua primeira ontologia

le wild Virtuoso

http://bit.ly/virtuoso61Versão 6.x

https://github.com/romulojales/Sua-primeira-ontologia

Dependência:

Page 16: Construindo sua primeira ontologia

le wild VirtuosoIP:8890

Page 17: Construindo sua primeira ontologia

Exercício 1: LOAD DA ONTOLOGIA

Page 18: Construindo sua primeira ontologia

SPARQL?s ?p ?o

Page 19: Construindo sua primeira ontologia

Inserção de indivíduos

Page 20: Construindo sua primeira ontologia

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;

Page 21: Construindo sua primeira ontologia

Exercício 2: Sparql Consultar piloto com nome “Felipe Massa”

Page 22: Construindo sua primeira ontologia

select * where{ ?s rdfs:label “Felipe Massa”}

Page 23: Construindo sua primeira ontologia

Exercicio 3: Sparqlassociar um piloto numa equipe

Lembrar que ainda não tem vinculo entre equipe e piloto. Modificar o predicado da_equipe

Page 24: Construindo sua primeira ontologia

prefix grafo: <http://graph.onto/> INSERT INTO grafo: { grafo:faz_parte_equipe rdfs:domain <http://graph.onto/Piloto>; rdf:range <http://graph.onto/Equipe> }

Page 25: Construindo sua primeira ontologia

prefix grafo: <http://graph.onto/> INSERT INTO grafo: { <http://graph.onto/Piloto/1> grafo:da_equipe <http://graph.onto/Equipe/1> }

Page 26: Construindo sua primeira ontologia

Exercício 4: Consultar tudo que pertence a uma

equipe

Page 27: Construindo sua primeira ontologia

select * where{ ?s ?p <http://graph.onto/Equipe/1>}

Page 28: Construindo sua primeira ontologia

: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.

Page 29: Construindo sua primeira ontologia

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.

Page 30: Construindo sua primeira ontologia

: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 ].

Page 31: Construindo sua primeira ontologia

Exercício 5: construir a classe fabricante

de pneus associando a equipe

Page 32: Construindo sua primeira ontologia

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

Page 33: Construindo sua primeira ontologia

Semântica no globoesporte.com

Page 34: Construindo sua primeira ontologia
Page 35: Construindo sua primeira ontologia
Page 36: Construindo sua primeira ontologia
Page 37: Construindo sua primeira ontologia

Estamos contratandohttp://bit.ly/quero-trabalhar-globo

https://github.com/globocom/IWantToWorkAtGlobocom

[email protected]

[email protected]

[email protected]