Upload
victor-pantoja
View
247
Download
0
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
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
: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
Estamos contratando
http://bit.ly/quero-trabalhar-globo
https://github.com/globocom/IWantToWorkAtGloboco
m