37
CONSTRUINDO SUA PRIMEIRA ONTOLOGIA

Construindo Sua Primeira Ontologia

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Construindo Sua Primeira Ontologia

CONSTRUINDO SUA

PRIMEIRA

ONTOLOGIA

Page 2: 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>

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

Page 4: Construindo Sua Primeira Ontologia

Desmistificar Web Semântica

Objetivos

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

Page 6: Construindo Sua Primeira Ontologia

9780470396797

Page 7: Construindo Sua Primeira Ontologia

9780470396797

• número?

• string?

• CNPJ?

• CPF?

• ID de banco

Page 8: Construindo Sua Primeira Ontologia

ISBN

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/virtuoso61

Versão 6.x

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

Dependência:

Page 16: Construindo Sua Primeira Ontologia

le wild Virtuoso

IP: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: Sparql

associar um piloto numa 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 contratando

http://bit.ly/quero-trabalhar-globo

https://github.com/globocom/IWantToWorkAtGloboco

m

[email protected]

[email protected]

[email protected]