SlideShare uma empresa Scribd logo
Departamento de Eletrónica,
Telecomunicações e Informática
Web Semântica
Trabalho Prático 1
Mestrado em Sistemas de Informação
Docente: Prof. Hélder Zagalo Discentes: Emanuel Pires – 77994
Mário Monteiro – 77910
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Índice
INTRODUÇÃO ...........................................................................................................................3
REQUISITOS .............................................................................................................................3
DADOS ORIGINAIS....................................................................................................................4
QUERIES ..................................................................................................................................7
INFERÊNCIAS ...........................................................................................................................8
APLICAÇÃO WEB.....................................................................................................................9
VISUALIZAÇÃO DOS GRAFOS..................................................................................................15
CONCLUSÃO ..........................................................................................................................16
ANEXO.....................................................................................................................................17
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
INTRODUÇÃO
Este relatório realiza-se no âmbito da unidade Curricular de Web Semântica do Mestrado
em Sistemas de Informação com o intuito de criar uma aplicação Web que permitisse a
pesquisa e inferência de triplos com recurso as ferramentas Django/Python.
Tem como objectivo criar uma aplicação com recurso a triplos de dados obtidos através de
uma fonte externa, ofereça um conjunto de funcionalidades de pesquisa, inserção e de
inferência de novos triplos através de relações indirectas entre os dados.
REQUISITOS
Foi determinado como requisitos:
● Desenvolver um módulo grafo.py.
● Desenvolver uma aplicação em Django/Python/HTML5, que ofereça um conjunto
de funcionalidades no âmbito da temática escolhida, utilizando os dados
estruturados em grafos.
● Implementar no módulo grafo.py os restantes métodos que permitirão a pesquisa e
a inferência.
● Encontrar relações indirectas entre os nós para criar regras de inferência e
implementá-las.
● Oferecer a possibilidade de visualização dos grafos.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
DADOS ORIGINAIS
Para este trabalho foi escolhido um conjunto de dados sobre o campeonato português, no
que toca aos jogos realizados na 1ª liga, sobre isso é realizado uma serie de operações
como:
 Classificação de todas equipas;
 Apresentação dos resultados por jornadas;
 Apresentação dos plantéis das respectivas equipas;
 Informações dos jogos;
 Informações estatísticas (numero de jogos sem perder, numero de jogos sem sofrer
golos e jogos sem marcar golos).
Dados estes foram organizados manualmente em forma de tuplos (subject, predicate,
object), tendo em conta as informações que fomos adquirindo em sites desportivos como
por exemplo: www.abola.pt e www.ligaportugal.pt. A lista de dados contidos no ficheiro
encontra-se descrito na tabela que se segue.
Chave Descrição
equ-n
ID único para cada equipa, sendo n o número para cada equipa (Ex:
equ-1, equ-2, … ,equ-n).
nome Nome da respectiva equipa.
cidade Cidade em que está sediada a respectiva equipa.
estadio Estádio onde a equipa realiza os seus jogos.
presidente Presidente da equipa.
criado Ano em que surgiu a equipa.
imagem Logótipo associado a equipa.
plantel Foto do plantel da equipa principal.
jogN
ID único para cada jogo, sendo N o numero para cada jogo (Ex: jog1,
jog2, …, jogN).
epoca Época desportiva em que se realiza um determinado jogo.
jornada Jornada que o jogo se realizou.
equipa1 Equipa da casa.
equipa2 Equipa que participou no jogo na qualidade de visitante.
goloE1 Todos os golos marcados pela equipa da casa.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
goloE2 Todos os golos marcados pela equipa visitante.
data A data que se realizou o jogo.
jogadorN
ID único para cada jogador, sendo N o numero para cada jogo (Ex:
jog1, jog2, …, jogN).
nome Armazena o nome do respectivo jogador.
clube Armazena o ID da equipa pelo qual joga o respectivo jogador.
golos
Número de golos marcado durante todos os jogos realizados na presente
época desportiva.
posicao A posição em campo do respectivo jogador.
cartaoAmarelo Quantidade de cartões amarela acumulado pelo jogador.
cartaoVermelho Quantidade de cartões vermelho acumulado pelo jogador.
passeGolo Quantidade de passes de golo do respectivo jogador.
numero Número de camisola do respectivo jogador.
idade Data de nascimento do jogador.
tempoJogo Tempo de jogos realizado pelo jogador.
alturaPeso Altura e o peso do jogador.
pais Nacionalidade do jogador.
imagem Contém um link para a foto do jogador
Com aplicação de inferência, vai aparecer novos tuplos, no qual passa-se a destacar na
próxima tabela.
Inferência Descrição
Tipo Classifica o tipo de jogo (Clássico, Derby e Normal).
goleada
Classifica o resultado do jogo como sendo: Goleada caso o
número de golos do vencedor for superior ou igual a 4 e
normal, caso suceder o contrário.
De realçar ainda que os dados apresentados acima, estão armazenados no ficheiro
futebol.csv
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
IMPLEMENTAÇÃO DO MÓDULO GRAFO.PY
Seguindo as directrizes traçado como objectivo do desenvolvimento do presente trabalho,
foi criado o Graph, com uma solução sem a utilização de dicionários. Deste modo optou-se
em criar uma estrutura de listas, reduzindo também o número de listas para uma (spo), ao
invés de três (spo, pos, osp).
O módulo é composto pelos seguintes métodos:
 __init__(self) – método construtor da classe Graph. Inicializa a lista spo onde
vão ser armazenados os triplos.
 add(self, sub, pred, obj) – chama a função addtoindex para adicionar um triplo à
lista spo.
 addtoindex(index, a, b, c) – adiciona um determinado triplo à lista spo, caso
este ainda não exista.
 remove(self, sub, pred, obj) – chama a função removefromindex para remover
um triplo da lista spo.
 removefromindex(index, a, b, c) – remove um triplo da lista spo, caso este
exista.
 triples(self, sub, pred, obj) – pesquisa triplos na lista spo e faz yield dos
resultados.
 load(self, filename) – carrega um ficheiro .csv com triplos para a lista spo.
 save(self, filename) – guarda um ficheiro .csv com a lista de triplos.
 query(self, clauses) – faz pesquisas específicas à lista de triplos e retorna os
resultados.
 applyinference(self, rule) – gera novos triplos a partir de informação contida em
outros, através de regras pré definidas.
 triplestodot(self, filename) – guarda os triplos num ficheiro .dot de modo a
tornar o grafo visualizável.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
 querytodot(self, query, b1, b2, filename) – converte os resultados de uma query
para o formato .dot.
QUERIES
Praticamente todas as informações apresentadas e tratadas provém da execução de queries
baseados em triplos (subject, predicate, object), para melhor compreensão passa-se a
apresentar e descrever as queries aplicadas para cada método utilizado. Além da descrição
dos mesmo pode ver em anexo as referidas queries.
Método Descrição
Dasboard
Possui a querie que permite validar as credências do utilizador.
Recebe como entrada o username e a password e proporciona
como a saída o nome, o e-mail e o logo do mesmo utilizador
caso encontrar seu registo no ficheiro futebol.csv. Caso os
dados do utilizador estiverem autênticos será executado uma
nova querie que proporciona as informações relativamente aos
jogos realizados.
searchJogo
Possui a querie que possibilita filtrar os jogos de acordo com a
preferência do utilizador, ou seja apresenta os jogos que
sofreram as inferências.
classF, classificar
Tem como principal propósito realizar duas queries para
encontrar todos os jogos, tanto como visitado e visitante de
todas as equipas e realizar a operação de soma dos pontos
obtidos por cada vitória ou empate, assim como os golos
Marcados ou sofridos, número de vitórias ou derrotas.
listautilizadores O método utiliza a querie para listar todos os utilizadores.
VerPlantel
O método utiliza a querie para seleccionar todos os jogadores
de uma determinada equipa. Recebe como entrada uma ID da
equipa proporciona as informações do Jogador (nome, imagem,
numero e posição).
shearchJogador
Esta querie tem como base, pesquisar mais informações
necessárias sobre um determinado jogador, de acordo com o ID
do jogador fornecido.
RegistarJogo
Possui uma pequena querie para seleccionar u jogo e fornecer
informação para ser utilizado na opção de escolha de uma
equipa no processo de registo de um novo jogo.
JogosSemPerder
Método que visa seleccionar o numero de jogos quecada equipa
não perdeu desde a ultima derrota,<Para a realização da referida
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
estatística.
ClassJogos
Método que permite executar a querie para apresentar dados
sobre os jogos de todas as equipas.
JogosSemSofrerG
Método que permite executar a querie no método classJogos e
utiliza os resultados para somar as quantidades de jogos que
uma equipa não sofreu golos em jogos já realizados. Para a
referida estatística.
jogosSemMarcarGolos
Método que permite executar a querie no método classJogos e
utiliza os resultados para somar as quantidades de jogos que
uma equipa não marcou golos em jogos já realizados. Para a
referida estatística.
estatisiticaMelhorAtaque
Método que permite executar a querie no método classJogos e
utiliza os resultados para somar as quantidades de golos
marcados e fazer a média de golos marcados por cada equipa,
para determinar o melhor ataque. Para a referida estatística.
estatisticaMelhorDefesa
Método que permite executar a querie no método classJogos e
utiliza os resultados para somar as quantidades de golos
sofridos e fazer a média de golos sofridos por cada equipa, para
determinar a melhor defesa. Para a referida estatística.
estatisticaCartoesAmarrelos
Método que permite executar a querie e somar as quantidades
de cartões amarelos por cada equipa, para determinar a equipa
com maior número de cartões. Para a referida estatística.
INFERÊNCIAS
Para realização desta tarefa, foi criado um ficheiro cujo nome é InferenceRule.py, que
contém classes como:
 DefinirClassico – classe cujo objectivo é procurar de entre todos jogos e classifica-
los, como sendo: Derby, Clássico e Normal. Dentro da classe, foi criado também uma regra
cujo nome é: maketriples, pelo que recebendo o resultado da pesquisa, retornada pela
classe vai ser criada as regras para cada tipo de situações. Um clássico é definido quando
existem um confronto directo entre duas equipas que já foram vencedores da 1ª liga, Derby
é quando há um confronto entre equipas da mesma cidade e os restantes são considerados
normais. Esta inferência é dada através da relação existente entre equipa e jogo, cada
equipa pode realizar dois jogos, sendo assim um dentro da casa e outra fora, assim podemos
encontrar o nome de cada equipa e aplicar as regras.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
 DefinirGoleada – Assim como a classe acima referenciada, esta classe, vai fazer
inferência e aplica uma regra para definir se um determinado jogo foi finalizado com uma
goleada ou não. Foi definido como goleada, quando a equipa vencedora marcar no mínimo
4 golos, não interessando o resultado da outra equipa. Cada jogo é feito por duas equipas,
como cada jogo pode ter 0 ou mais golos, podemos fazer inferência para determinar se o
número de golos pode ser tratado como goleada ou não.
APLICAÇÃO WEB
Um dos requisitos do trabalho é o desenvolvimento de uma interface gráfica voltado para
Web, que obedeça as métricas de usabilidade, a fim de apresentar os dados. Deste modo, foi
utilizado tecnologias como:
 framework Django;
 python language;
 Bootstrap;
 Jquery.
Com estas tecnologias, foi possível desenvolver todos requisitos pré-definido no trabalho.
Figura 1 - Login
Para utilizar a aplicação e necessário realizar a autenticação no mesmo, utilizando as
credências previamente adicionado na aplicação (futebol.csv). Ex. utilizadores: gine,
senha: 123 ou mtutucv, 123.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Tarefas como, pesquisar, inserir e validar o utilizador é realizado por intermédio de queries
em tuplos.
A página principal, apresenta uma lista de todos jogos realizados durante a época em
questão. Deste modo criamos um campo onde o utilizador tem possibilidade de fazer
pesquisas com aplicação de inferências para obter mais informações sobre o jogo, como
mostra a figura que se segue.
Figura 2- Página Principal
Na legenda número 1 obtemos um menu, que possibilita realizar tarefas como: Registar
Utilizador, Registar Jogo, Listar. A legenda número 2 apresenta lista total dos jogos
realizados.
Ao utilizar a dropdown, apresentado na legenda número 3, é possível ter mais informações
acerca do jogo realizado, baseando na inferência criada. Ao utilizar a legenda número 6 o
utilizador pode ver a sua informação como terminar a sua sessão.
Ao aceder ao menu Registar e escolher o submenu Registar Utilizador, o sistema
proporciona um formulário que possibilita adicionar novo utilizador. Os dados inseridos é
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
sempre guardada sob forma de tuplo, no ficheiro futebol.csv. A figura que se segue
apresenta tal formulário.
Figura 3 - Inserir Utilizador
Ainda na legenda número 1 disponível na Figura 1, é possível também adicionar um novo
jogo, O processo de inserir um novo jogo é igual de um novo utilizador. Para adicionar um
novo jogo a que se preencher o formulário apresentado na figura.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 4 - Adicionar um novo Jogo
Depois de preencher o formulário e escolher a opção de guardar, o sistema se encarrega de
ir buscar o ultimo ID do jogo inserido de forma a atribuir um novo ID para o novo registo,
assim de seguida, segue o armazenamento automático dos dados referentes ao jogo, no
tuplo.
Na legenda número 1, o utilizador tem possibilidade de fazer a listagem das classificações,
assim como apresentado na figura que se segue.
Figura 5 - Equipas e Classificações
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Nesta página, pode-se ainda realizar a filtragem de equipas por cidade, assim como é
indicado na legenda número 1 e ainda ver lista de jogadores para cada equipa, como é
indicado na legenda 2 desta figura, ver figura que se segue para ver as listagens das
equipas.
Figura 6 - Plantel principal de uma equipa.
Também pode-se obter uma lista de utilizadores, seguindo assim a legenda número 1
apresentado na figura número 2.
Figura 7 - Lista dos utilizadores registado no sistema.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
A legenda número 4, da figura 2, representa o menu de estatística e dos Grafos, ao aceder o
menu estatística, é possível obter três tipos de estatística, estes que são sempre apresentados
sob forma de gráfico dinâmico, vide as figuras que se seguem.
Figura 8 - Estatística jogos sem perder em curso
Figura 9 - estatística jogos sem sofrer golos
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 10 - estatística jogos sem marcar golos
VISUALIZAÇÃO DOS GRAFOS
Para ser possível a visualização dos grafos foi implementado um método que guarda os
triplos e as suas relações num ficheiro. dot que é invocado quando se carrega no botão
gravar na aplicação web. Este grafo é passível de ser visualizado recorrendo ao programa
Graphviz, e está disponível em formato pdf, o resultado é o demonstrado abaixo:
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 11 - Visualização dos grafos
Importante realçar inda de que, pelo fatos de os dados contidos no ficheiro serem
demasiado grande não é possível apresentar um grafo completo, pelo que só foi apresentado
uma parte do grafo.
CONCLUSÃO
Com base na informação registada neste relatório e analisando os requisitos pedidos, o
grupo considera ter cumprido com a lista de objectivos, tendo em conta que os conteúdos
aprendidos foram apresentados com sucesso e sem qualquer tipo de problema.
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
ANEXO
Figura 12 - Metodos classificar e classf 1ª parte
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 13 - 2ª parte do Metod classificar e classf
Figura 14 - Metodo ClassJogos
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 15 - Metodo dasbord
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 16 - Metodo estatisticaCartoesAmarrelos
Figura 17 - metodo listaUtilizadores
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 18 - Metodo registarJogo
Figura 19 - Método shearchJogador
Figura 20 - Método searchJogo
Web Semântica – MSI – 2014/2015
Mário Monteiro - 77910 || Emanuel Pires - 77994
Figura 21 - Método VerPlantel

Mais conteúdo relacionado

Destaque

Its nothing..just cars and bikes
Its nothing..just cars and bikesIts nothing..just cars and bikes
Its nothing..just cars and bikes
Ezam Chadwick
 
Illinois senate bill 1 il pension reform legislation
Illinois senate bill 1   il pension reform legislationIllinois senate bill 1   il pension reform legislation
Illinois senate bill 1 il pension reform legislation
Cook County Commissioner Bridget Gainer
 
Cook County Board Agenda - October 16, 2012
Cook County Board Agenda - October 16, 2012Cook County Board Agenda - October 16, 2012
Cook County Board Agenda - October 16, 2012
Cook County Commissioner Bridget Gainer
 
Sb1523 house amendment 3 by speaker michael madigan
Sb1523   house amendment 3 by speaker michael madiganSb1523   house amendment 3 by speaker michael madigan
Sb1523 house amendment 3 by speaker michael madigan
Cook County Commissioner Bridget Gainer
 
Audience Research Results Analysis
Audience Research Results AnalysisAudience Research Results Analysis
Audience Research Results Analysis
db04803167
 
Disney
DisneyDisney
Disney
sakuraluka
 
Nooges Brochure
Nooges BrochureNooges Brochure
Nooges Brochure
noogeking
 
Creatiosoft Casino Art Sourcing !!
Creatiosoft Casino Art Sourcing !! Creatiosoft Casino Art Sourcing !!
Creatiosoft Casino Art Sourcing !!
Rishabh Agrawal
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
Mário Monteiro
 
1. Introduction
1. Introduction1. Introduction
1. Introduction
Ashis Kumar Chanda
 
Draft SlideCast Li
Draft SlideCast LiDraft SlideCast Li
Draft SlideCast Li
YuyiLi
 
Our solar system
Our solar systemOur solar system
Our solar system
schoe1ts
 
Risiko basert testing i praksis
Risiko basert testing i praksisRisiko basert testing i praksis
Risiko basert testing i praksis
Minh Nguyen
 
Space brochure
Space brochureSpace brochure
Space brochure
AuditWare Systems Ltd.
 
ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015
ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015
ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015
Cristina Pagetti
 
Benford's Law - Example - EDF
Benford's Law - Example - EDFBenford's Law - Example - EDF
Benford's Law - Example - EDF
AuditWare Systems Ltd.
 
Tecidos humanos
Tecidos humanosTecidos humanos
Tecidos humanosiesbioxeo3
 

Destaque (18)

Its nothing..just cars and bikes
Its nothing..just cars and bikesIts nothing..just cars and bikes
Its nothing..just cars and bikes
 
Illinois senate bill 1 il pension reform legislation
Illinois senate bill 1   il pension reform legislationIllinois senate bill 1   il pension reform legislation
Illinois senate bill 1 il pension reform legislation
 
Cook County Board Agenda - October 16, 2012
Cook County Board Agenda - October 16, 2012Cook County Board Agenda - October 16, 2012
Cook County Board Agenda - October 16, 2012
 
Sb1523 house amendment 3 by speaker michael madigan
Sb1523   house amendment 3 by speaker michael madiganSb1523   house amendment 3 by speaker michael madigan
Sb1523 house amendment 3 by speaker michael madigan
 
Audience Research Results Analysis
Audience Research Results AnalysisAudience Research Results Analysis
Audience Research Results Analysis
 
Disney
DisneyDisney
Disney
 
Jaguar
JaguarJaguar
Jaguar
 
Nooges Brochure
Nooges BrochureNooges Brochure
Nooges Brochure
 
Creatiosoft Casino Art Sourcing !!
Creatiosoft Casino Art Sourcing !! Creatiosoft Casino Art Sourcing !!
Creatiosoft Casino Art Sourcing !!
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
 
1. Introduction
1. Introduction1. Introduction
1. Introduction
 
Draft SlideCast Li
Draft SlideCast LiDraft SlideCast Li
Draft SlideCast Li
 
Our solar system
Our solar systemOur solar system
Our solar system
 
Risiko basert testing i praksis
Risiko basert testing i praksisRisiko basert testing i praksis
Risiko basert testing i praksis
 
Space brochure
Space brochureSpace brochure
Space brochure
 
ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015
ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015
ScambioCasa.com: Press conference in MILANO, 9 of APRIL 2015
 
Benford's Law - Example - EDF
Benford's Law - Example - EDFBenford's Law - Example - EDF
Benford's Law - Example - EDF
 
Tecidos humanos
Tecidos humanosTecidos humanos
Tecidos humanos
 

Semelhante a Web semantica

Cloud start working [autosaved]
Cloud   start working [autosaved]Cloud   start working [autosaved]
Cloud start working [autosaved]
André Rocha
 
AlunosBD.ppt
AlunosBD.pptAlunosBD.ppt
AlunosBD.ppt
PatriciaMeloSales
 
Projeto de Aplicação - Marcos e Bruno
Projeto de Aplicação - Marcos e BrunoProjeto de Aplicação - Marcos e Bruno
Projeto de Aplicação - Marcos e Bruno
mhfribeiro
 
Manual VO Cloud
Manual VO CloudManual VO Cloud
Manual VO Cloud
Videobserver
 
Projeto time de futebol simulado 2D sertão-UEFS [2009]
Projeto time de futebol simulado 2D sertão-UEFS [2009]Projeto time de futebol simulado 2D sertão-UEFS [2009]
Projeto time de futebol simulado 2D sertão-UEFS [2009]
Icaro Dourado
 
Aula ferramenta case- respostas
Aula ferramenta case- respostasAula ferramenta case- respostas
Aula ferramenta case- respostas
Edna Marçal
 
Preparar para o Jogo através do Jogo
Preparar para o Jogo através do JogoPreparar para o Jogo através do Jogo
Preparar para o Jogo através do Jogo
Eduardo Barros
 
Jogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processingJogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processing
Nunes Fernando
 
Observação e Análise de Jogo
Observação e Análise de JogoObservação e Análise de Jogo
Observação e Análise de Jogo
Fundação Real Madrid
 
Pesquisa operacional e probabilidade - Prof.Dr. Nilo Sampaio
Pesquisa operacional e probabilidade - Prof.Dr. Nilo SampaioPesquisa operacional e probabilidade - Prof.Dr. Nilo Sampaio
Pesquisa operacional e probabilidade - Prof.Dr. Nilo Sampaio
Nilo Sampaio
 
Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade
Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade
Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade
Nilo Sampaio
 
Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...
Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...
Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...
Alexandre Saboia Fuziyama
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 

Semelhante a Web semantica (13)

Cloud start working [autosaved]
Cloud   start working [autosaved]Cloud   start working [autosaved]
Cloud start working [autosaved]
 
AlunosBD.ppt
AlunosBD.pptAlunosBD.ppt
AlunosBD.ppt
 
Projeto de Aplicação - Marcos e Bruno
Projeto de Aplicação - Marcos e BrunoProjeto de Aplicação - Marcos e Bruno
Projeto de Aplicação - Marcos e Bruno
 
Manual VO Cloud
Manual VO CloudManual VO Cloud
Manual VO Cloud
 
Projeto time de futebol simulado 2D sertão-UEFS [2009]
Projeto time de futebol simulado 2D sertão-UEFS [2009]Projeto time de futebol simulado 2D sertão-UEFS [2009]
Projeto time de futebol simulado 2D sertão-UEFS [2009]
 
Aula ferramenta case- respostas
Aula ferramenta case- respostasAula ferramenta case- respostas
Aula ferramenta case- respostas
 
Preparar para o Jogo através do Jogo
Preparar para o Jogo através do JogoPreparar para o Jogo através do Jogo
Preparar para o Jogo através do Jogo
 
Jogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processingJogo da velha em Inteligência Artificial usando processing
Jogo da velha em Inteligência Artificial usando processing
 
Observação e Análise de Jogo
Observação e Análise de JogoObservação e Análise de Jogo
Observação e Análise de Jogo
 
Pesquisa operacional e probabilidade - Prof.Dr. Nilo Sampaio
Pesquisa operacional e probabilidade - Prof.Dr. Nilo SampaioPesquisa operacional e probabilidade - Prof.Dr. Nilo Sampaio
Pesquisa operacional e probabilidade - Prof.Dr. Nilo Sampaio
 
Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade
Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade
Nilo Antonio de Souza Sampaio - Pesquisa operacional e probabilidade
 
Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...
Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...
Nas internas do CartolaFC: como é a nova arquitetura do game feita para supor...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 

Mais de Mário Monteiro

Airport Pub
Airport PubAirport Pub
Airport Pub
Mário Monteiro
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
Mário Monteiro
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
Mário Monteiro
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
Mário Monteiro
 
Modelo de Processo de Negocios - Farmacia On-Line
Modelo de Processo de Negocios - Farmacia On-LineModelo de Processo de Negocios - Farmacia On-Line
Modelo de Processo de Negocios - Farmacia On-Line
Mário Monteiro
 
Modelo de Processo de Negocios - Barbeiro & cabeleireiro em casa
Modelo de Processo de Negocios - Barbeiro & cabeleireiro em casaModelo de Processo de Negocios - Barbeiro & cabeleireiro em casa
Modelo de Processo de Negocios - Barbeiro & cabeleireiro em casa
Mário Monteiro
 
Apresentação - Citrix Xen Server
Apresentação - Citrix Xen ServerApresentação - Citrix Xen Server
Apresentação - Citrix Xen Server
Mário Monteiro
 

Mais de Mário Monteiro (7)

Airport Pub
Airport PubAirport Pub
Airport Pub
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
 
Armazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de InformaçãoArmazenamento, Indexação e Recuperação de Informação
Armazenamento, Indexação e Recuperação de Informação
 
Modelo de Processo de Negocios - Farmacia On-Line
Modelo de Processo de Negocios - Farmacia On-LineModelo de Processo de Negocios - Farmacia On-Line
Modelo de Processo de Negocios - Farmacia On-Line
 
Modelo de Processo de Negocios - Barbeiro & cabeleireiro em casa
Modelo de Processo de Negocios - Barbeiro & cabeleireiro em casaModelo de Processo de Negocios - Barbeiro & cabeleireiro em casa
Modelo de Processo de Negocios - Barbeiro & cabeleireiro em casa
 
Apresentação - Citrix Xen Server
Apresentação - Citrix Xen ServerApresentação - Citrix Xen Server
Apresentação - Citrix Xen Server
 

Web semantica

  • 1. Departamento de Eletrónica, Telecomunicações e Informática Web Semântica Trabalho Prático 1 Mestrado em Sistemas de Informação Docente: Prof. Hélder Zagalo Discentes: Emanuel Pires – 77994 Mário Monteiro – 77910
  • 2. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Índice INTRODUÇÃO ...........................................................................................................................3 REQUISITOS .............................................................................................................................3 DADOS ORIGINAIS....................................................................................................................4 QUERIES ..................................................................................................................................7 INFERÊNCIAS ...........................................................................................................................8 APLICAÇÃO WEB.....................................................................................................................9 VISUALIZAÇÃO DOS GRAFOS..................................................................................................15 CONCLUSÃO ..........................................................................................................................16 ANEXO.....................................................................................................................................17
  • 3. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 INTRODUÇÃO Este relatório realiza-se no âmbito da unidade Curricular de Web Semântica do Mestrado em Sistemas de Informação com o intuito de criar uma aplicação Web que permitisse a pesquisa e inferência de triplos com recurso as ferramentas Django/Python. Tem como objectivo criar uma aplicação com recurso a triplos de dados obtidos através de uma fonte externa, ofereça um conjunto de funcionalidades de pesquisa, inserção e de inferência de novos triplos através de relações indirectas entre os dados. REQUISITOS Foi determinado como requisitos: ● Desenvolver um módulo grafo.py. ● Desenvolver uma aplicação em Django/Python/HTML5, que ofereça um conjunto de funcionalidades no âmbito da temática escolhida, utilizando os dados estruturados em grafos. ● Implementar no módulo grafo.py os restantes métodos que permitirão a pesquisa e a inferência. ● Encontrar relações indirectas entre os nós para criar regras de inferência e implementá-las. ● Oferecer a possibilidade de visualização dos grafos.
  • 4. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 DADOS ORIGINAIS Para este trabalho foi escolhido um conjunto de dados sobre o campeonato português, no que toca aos jogos realizados na 1ª liga, sobre isso é realizado uma serie de operações como:  Classificação de todas equipas;  Apresentação dos resultados por jornadas;  Apresentação dos plantéis das respectivas equipas;  Informações dos jogos;  Informações estatísticas (numero de jogos sem perder, numero de jogos sem sofrer golos e jogos sem marcar golos). Dados estes foram organizados manualmente em forma de tuplos (subject, predicate, object), tendo em conta as informações que fomos adquirindo em sites desportivos como por exemplo: www.abola.pt e www.ligaportugal.pt. A lista de dados contidos no ficheiro encontra-se descrito na tabela que se segue. Chave Descrição equ-n ID único para cada equipa, sendo n o número para cada equipa (Ex: equ-1, equ-2, … ,equ-n). nome Nome da respectiva equipa. cidade Cidade em que está sediada a respectiva equipa. estadio Estádio onde a equipa realiza os seus jogos. presidente Presidente da equipa. criado Ano em que surgiu a equipa. imagem Logótipo associado a equipa. plantel Foto do plantel da equipa principal. jogN ID único para cada jogo, sendo N o numero para cada jogo (Ex: jog1, jog2, …, jogN). epoca Época desportiva em que se realiza um determinado jogo. jornada Jornada que o jogo se realizou. equipa1 Equipa da casa. equipa2 Equipa que participou no jogo na qualidade de visitante. goloE1 Todos os golos marcados pela equipa da casa.
  • 5. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 goloE2 Todos os golos marcados pela equipa visitante. data A data que se realizou o jogo. jogadorN ID único para cada jogador, sendo N o numero para cada jogo (Ex: jog1, jog2, …, jogN). nome Armazena o nome do respectivo jogador. clube Armazena o ID da equipa pelo qual joga o respectivo jogador. golos Número de golos marcado durante todos os jogos realizados na presente época desportiva. posicao A posição em campo do respectivo jogador. cartaoAmarelo Quantidade de cartões amarela acumulado pelo jogador. cartaoVermelho Quantidade de cartões vermelho acumulado pelo jogador. passeGolo Quantidade de passes de golo do respectivo jogador. numero Número de camisola do respectivo jogador. idade Data de nascimento do jogador. tempoJogo Tempo de jogos realizado pelo jogador. alturaPeso Altura e o peso do jogador. pais Nacionalidade do jogador. imagem Contém um link para a foto do jogador Com aplicação de inferência, vai aparecer novos tuplos, no qual passa-se a destacar na próxima tabela. Inferência Descrição Tipo Classifica o tipo de jogo (Clássico, Derby e Normal). goleada Classifica o resultado do jogo como sendo: Goleada caso o número de golos do vencedor for superior ou igual a 4 e normal, caso suceder o contrário. De realçar ainda que os dados apresentados acima, estão armazenados no ficheiro futebol.csv
  • 6. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 IMPLEMENTAÇÃO DO MÓDULO GRAFO.PY Seguindo as directrizes traçado como objectivo do desenvolvimento do presente trabalho, foi criado o Graph, com uma solução sem a utilização de dicionários. Deste modo optou-se em criar uma estrutura de listas, reduzindo também o número de listas para uma (spo), ao invés de três (spo, pos, osp). O módulo é composto pelos seguintes métodos:  __init__(self) – método construtor da classe Graph. Inicializa a lista spo onde vão ser armazenados os triplos.  add(self, sub, pred, obj) – chama a função addtoindex para adicionar um triplo à lista spo.  addtoindex(index, a, b, c) – adiciona um determinado triplo à lista spo, caso este ainda não exista.  remove(self, sub, pred, obj) – chama a função removefromindex para remover um triplo da lista spo.  removefromindex(index, a, b, c) – remove um triplo da lista spo, caso este exista.  triples(self, sub, pred, obj) – pesquisa triplos na lista spo e faz yield dos resultados.  load(self, filename) – carrega um ficheiro .csv com triplos para a lista spo.  save(self, filename) – guarda um ficheiro .csv com a lista de triplos.  query(self, clauses) – faz pesquisas específicas à lista de triplos e retorna os resultados.  applyinference(self, rule) – gera novos triplos a partir de informação contida em outros, através de regras pré definidas.  triplestodot(self, filename) – guarda os triplos num ficheiro .dot de modo a tornar o grafo visualizável.
  • 7. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994  querytodot(self, query, b1, b2, filename) – converte os resultados de uma query para o formato .dot. QUERIES Praticamente todas as informações apresentadas e tratadas provém da execução de queries baseados em triplos (subject, predicate, object), para melhor compreensão passa-se a apresentar e descrever as queries aplicadas para cada método utilizado. Além da descrição dos mesmo pode ver em anexo as referidas queries. Método Descrição Dasboard Possui a querie que permite validar as credências do utilizador. Recebe como entrada o username e a password e proporciona como a saída o nome, o e-mail e o logo do mesmo utilizador caso encontrar seu registo no ficheiro futebol.csv. Caso os dados do utilizador estiverem autênticos será executado uma nova querie que proporciona as informações relativamente aos jogos realizados. searchJogo Possui a querie que possibilita filtrar os jogos de acordo com a preferência do utilizador, ou seja apresenta os jogos que sofreram as inferências. classF, classificar Tem como principal propósito realizar duas queries para encontrar todos os jogos, tanto como visitado e visitante de todas as equipas e realizar a operação de soma dos pontos obtidos por cada vitória ou empate, assim como os golos Marcados ou sofridos, número de vitórias ou derrotas. listautilizadores O método utiliza a querie para listar todos os utilizadores. VerPlantel O método utiliza a querie para seleccionar todos os jogadores de uma determinada equipa. Recebe como entrada uma ID da equipa proporciona as informações do Jogador (nome, imagem, numero e posição). shearchJogador Esta querie tem como base, pesquisar mais informações necessárias sobre um determinado jogador, de acordo com o ID do jogador fornecido. RegistarJogo Possui uma pequena querie para seleccionar u jogo e fornecer informação para ser utilizado na opção de escolha de uma equipa no processo de registo de um novo jogo. JogosSemPerder Método que visa seleccionar o numero de jogos quecada equipa não perdeu desde a ultima derrota,<Para a realização da referida
  • 8. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 estatística. ClassJogos Método que permite executar a querie para apresentar dados sobre os jogos de todas as equipas. JogosSemSofrerG Método que permite executar a querie no método classJogos e utiliza os resultados para somar as quantidades de jogos que uma equipa não sofreu golos em jogos já realizados. Para a referida estatística. jogosSemMarcarGolos Método que permite executar a querie no método classJogos e utiliza os resultados para somar as quantidades de jogos que uma equipa não marcou golos em jogos já realizados. Para a referida estatística. estatisiticaMelhorAtaque Método que permite executar a querie no método classJogos e utiliza os resultados para somar as quantidades de golos marcados e fazer a média de golos marcados por cada equipa, para determinar o melhor ataque. Para a referida estatística. estatisticaMelhorDefesa Método que permite executar a querie no método classJogos e utiliza os resultados para somar as quantidades de golos sofridos e fazer a média de golos sofridos por cada equipa, para determinar a melhor defesa. Para a referida estatística. estatisticaCartoesAmarrelos Método que permite executar a querie e somar as quantidades de cartões amarelos por cada equipa, para determinar a equipa com maior número de cartões. Para a referida estatística. INFERÊNCIAS Para realização desta tarefa, foi criado um ficheiro cujo nome é InferenceRule.py, que contém classes como:  DefinirClassico – classe cujo objectivo é procurar de entre todos jogos e classifica- los, como sendo: Derby, Clássico e Normal. Dentro da classe, foi criado também uma regra cujo nome é: maketriples, pelo que recebendo o resultado da pesquisa, retornada pela classe vai ser criada as regras para cada tipo de situações. Um clássico é definido quando existem um confronto directo entre duas equipas que já foram vencedores da 1ª liga, Derby é quando há um confronto entre equipas da mesma cidade e os restantes são considerados normais. Esta inferência é dada através da relação existente entre equipa e jogo, cada equipa pode realizar dois jogos, sendo assim um dentro da casa e outra fora, assim podemos encontrar o nome de cada equipa e aplicar as regras.
  • 9. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994  DefinirGoleada – Assim como a classe acima referenciada, esta classe, vai fazer inferência e aplica uma regra para definir se um determinado jogo foi finalizado com uma goleada ou não. Foi definido como goleada, quando a equipa vencedora marcar no mínimo 4 golos, não interessando o resultado da outra equipa. Cada jogo é feito por duas equipas, como cada jogo pode ter 0 ou mais golos, podemos fazer inferência para determinar se o número de golos pode ser tratado como goleada ou não. APLICAÇÃO WEB Um dos requisitos do trabalho é o desenvolvimento de uma interface gráfica voltado para Web, que obedeça as métricas de usabilidade, a fim de apresentar os dados. Deste modo, foi utilizado tecnologias como:  framework Django;  python language;  Bootstrap;  Jquery. Com estas tecnologias, foi possível desenvolver todos requisitos pré-definido no trabalho. Figura 1 - Login Para utilizar a aplicação e necessário realizar a autenticação no mesmo, utilizando as credências previamente adicionado na aplicação (futebol.csv). Ex. utilizadores: gine, senha: 123 ou mtutucv, 123.
  • 10. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Tarefas como, pesquisar, inserir e validar o utilizador é realizado por intermédio de queries em tuplos. A página principal, apresenta uma lista de todos jogos realizados durante a época em questão. Deste modo criamos um campo onde o utilizador tem possibilidade de fazer pesquisas com aplicação de inferências para obter mais informações sobre o jogo, como mostra a figura que se segue. Figura 2- Página Principal Na legenda número 1 obtemos um menu, que possibilita realizar tarefas como: Registar Utilizador, Registar Jogo, Listar. A legenda número 2 apresenta lista total dos jogos realizados. Ao utilizar a dropdown, apresentado na legenda número 3, é possível ter mais informações acerca do jogo realizado, baseando na inferência criada. Ao utilizar a legenda número 6 o utilizador pode ver a sua informação como terminar a sua sessão. Ao aceder ao menu Registar e escolher o submenu Registar Utilizador, o sistema proporciona um formulário que possibilita adicionar novo utilizador. Os dados inseridos é
  • 11. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 sempre guardada sob forma de tuplo, no ficheiro futebol.csv. A figura que se segue apresenta tal formulário. Figura 3 - Inserir Utilizador Ainda na legenda número 1 disponível na Figura 1, é possível também adicionar um novo jogo, O processo de inserir um novo jogo é igual de um novo utilizador. Para adicionar um novo jogo a que se preencher o formulário apresentado na figura.
  • 12. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 4 - Adicionar um novo Jogo Depois de preencher o formulário e escolher a opção de guardar, o sistema se encarrega de ir buscar o ultimo ID do jogo inserido de forma a atribuir um novo ID para o novo registo, assim de seguida, segue o armazenamento automático dos dados referentes ao jogo, no tuplo. Na legenda número 1, o utilizador tem possibilidade de fazer a listagem das classificações, assim como apresentado na figura que se segue. Figura 5 - Equipas e Classificações
  • 13. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Nesta página, pode-se ainda realizar a filtragem de equipas por cidade, assim como é indicado na legenda número 1 e ainda ver lista de jogadores para cada equipa, como é indicado na legenda 2 desta figura, ver figura que se segue para ver as listagens das equipas. Figura 6 - Plantel principal de uma equipa. Também pode-se obter uma lista de utilizadores, seguindo assim a legenda número 1 apresentado na figura número 2. Figura 7 - Lista dos utilizadores registado no sistema.
  • 14. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 A legenda número 4, da figura 2, representa o menu de estatística e dos Grafos, ao aceder o menu estatística, é possível obter três tipos de estatística, estes que são sempre apresentados sob forma de gráfico dinâmico, vide as figuras que se seguem. Figura 8 - Estatística jogos sem perder em curso Figura 9 - estatística jogos sem sofrer golos
  • 15. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 10 - estatística jogos sem marcar golos VISUALIZAÇÃO DOS GRAFOS Para ser possível a visualização dos grafos foi implementado um método que guarda os triplos e as suas relações num ficheiro. dot que é invocado quando se carrega no botão gravar na aplicação web. Este grafo é passível de ser visualizado recorrendo ao programa Graphviz, e está disponível em formato pdf, o resultado é o demonstrado abaixo:
  • 16. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 11 - Visualização dos grafos Importante realçar inda de que, pelo fatos de os dados contidos no ficheiro serem demasiado grande não é possível apresentar um grafo completo, pelo que só foi apresentado uma parte do grafo. CONCLUSÃO Com base na informação registada neste relatório e analisando os requisitos pedidos, o grupo considera ter cumprido com a lista de objectivos, tendo em conta que os conteúdos aprendidos foram apresentados com sucesso e sem qualquer tipo de problema.
  • 17. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 ANEXO Figura 12 - Metodos classificar e classf 1ª parte
  • 18. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 13 - 2ª parte do Metod classificar e classf Figura 14 - Metodo ClassJogos
  • 19. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 15 - Metodo dasbord
  • 20. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 16 - Metodo estatisticaCartoesAmarrelos Figura 17 - metodo listaUtilizadores
  • 21. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 18 - Metodo registarJogo Figura 19 - Método shearchJogador Figura 20 - Método searchJogo
  • 22. Web Semântica – MSI – 2014/2015 Mário Monteiro - 77910 || Emanuel Pires - 77994 Figura 21 - Método VerPlantel