Construindo Sua Primeira Ontologia

Post on 08-Jul-2015

247 views 0 download

description

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

Transcript of Construindo Sua Primeira Ontologia

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

Desmistificar Web Semântica

Objetivos

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

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

http://bit.ly/virtuoso61

Versão 6.x

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

Dependência:

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