57
NEES/IC e CAED/ICMC Universidade Federal de Alagoas e Universidade de São Paulo [email protected] e [email protected] Ig Ibert Bittencourt e Seiji Isotani Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT Conferência Web.br 2014

Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Embed Size (px)

Citation preview

Page 1: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

NEES/IC e CAED/ICMCUniversidade Federal de Alagoas e Universidade de São Paulo

[email protected] e [email protected] Ibert Bittencourt e Seiji Isotani

Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Conferência Web.br 2014

Page 2: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Brasil

Page 3: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Maceió

Page 4: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Maceió

Maceió, AL

Page 5: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

NEES/IC e CAED/ICMCUniversidade Federal de Alagoas e Universidade de São Paulo

[email protected] e [email protected] Ibert Bittencourt e Seiji Isotani

Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Conferência Web.br 2014

Page 6: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Ontologias

JOINT

Próximos Passos

Page 7: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Ontologias

JOINT

Próximos Passos

Page 8: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Doações de campanha e Prestações de Serviços

Page 9: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Pessoal

Campanha

Organização

Prestação de Serviço

Page 10: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Como recomendar um imóvel de acordo com os interesses e graus de

relacionamentos?

Page 11: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Como recomendar um imóvel de acordo com os interesses e graus de relacionamentos?

Pessoas e Relacionamentos

Interesses

Imóveis

Cidades

Educação

Segurança

Pontos Comerciais

Ontologias

Page 12: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Web das Coisas

Page 13: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 14: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 15: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Ontologias

Compreender a

estrutura das

coisas

Melhorar a

comunicação

entre pessoas

Interoperar

sistemas

Potencializa

r Serviços

Filosofia

Linguística

Lógica

Computação

Ontologia Aplicada

Page 16: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

“The fast growing science of ‐ontology could exert a greater

impact on humanity than the rise of the Internet… ontologies allow for

data to interoperate and for machines to make inferences. The report calls for more education and

training opportunities for ontologists, and for better means of

connecting ontologists with organizations that need them.

Page 17: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Semantic Interoperability is considered to be the problem of this decade…[currently] costing productivity, lives and billions of dollars annually…the overall human and financial cost to society from our failure to share and reuse information is many times the cost of the systems’ operation and maintenance [OMG, SIMF]

Page 18: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 19: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 20: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 21: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 22: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 23: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 24: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 25: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

FenômenoPadrões de Apresentação

<D, W, R >

Linguagem

RealidadePercepçãoConceitualização

Compromisso Ontológico (K)

Interpretação (I)

Modelos MD(L)

Modelos Esperados IK(L)

(~) Ontologia Boa

Page 26: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Ontologias

JOINT

Próximos Passos

Page 27: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT – Java Ontology INtegrated Toolkit

JOINT

JOINT-DE

Page 28: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Joint-Detached

Page 29: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE

Sistema de Mapeamento Ontologia-Objeto (OOMS);

Uso do Sesame como API base;

Uso de Objetos Desconectados;

Operações em repositórios (criar, limpar, remover, backup);

Operações em ontologias (adicionar, remover e atualizar ontologias);

Geração de Código;

Operações em Instâncias (CRUD);

Operações de Inferência (DL, SWRL e SPARQL)

Page 30: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Relacionados)

Ferramenta Objetos

Desconectados

Objetos

Persistentes

Ger. de Código

Estável API base

Jastor X X Jena

OWL2Java X X Jena

Empire X Sesame

KOMMA X X Sesame

Alibaba/Elmo X X Sesame

JOINT-DE X X Sesame

Page 31: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Arquitetura)

Page 32: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Manipulando Ontologias)

Page 33: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Gerador de Código)

Baseado no gerador de código do Alibaba (objetos persistentes);

Geração de Interfaces Java (herança múltipla);

Geração de classes concretas;

Classes implementas as interface gerada e a interface serializable;

Page 34: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Gerador de Código)

Page 35: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Código Gerado)

Interface OnlineAccount gerada Classe OnlineAccountImpl gerada

Page 36: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Recupedando uma instância)

Page 37: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Recupedando várias instâncias)

Page 38: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT-DE (Knowledge Abstract Object)

Page 39: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Joint-DE (Estudos Empíricos)

Page 40: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)

Produtividade de Desenvolvimento

Desempenho e uso de memória

Desenvolvimento de Aplicações

Page 41: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Produtividade de Desenvolvimento

Page 42: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Desempenho e uso de memória

Q1: Existem diferenças de desempenho entre os OOMS JOINT-DE e Alibaba com relação às operações de create, retrieve e update? Se sim, qual ferramenta é a melhor?

Q2: Existem diferenças de utilização de memória entre os OOMS JOINT-DE e Alibaba com relação às operações de create, retrieve e update? Se sim, qual ferramenta utiliza menos memória?

Hipótese Hipótese Nula Hipótese Alternativa

H1 H1-0: T(F1, O1) = T(F2, O1) H1-1: T(F1, O1) ≠ T(F2, O1)

H2 H2-0: T(F1, O2) = T(F2, O2) H2-1: T(F1, O2) ≠ T(F2, O2)

H3 H3-0: T(F1, O3) = T(F2, O3) H3-1: T(F1, O3) ≠ T(F2, O3)

H4 H4-0: M(F1, O1) = M(F2, O1) H4-1: M(F1, O1) ≠ M(F2, O1)

H5 H5-0: M(F1, O2) = M(F2, O2) H5-1: M(F1, O2) ≠ M(F2, O2)

H6 H6-0: M(F1, O3) = M(F2, O3) H6-1: M(F1, O3) ≠ M(F2, O3)

Page 43: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Desempenho

Create Retrieve Update

Page 44: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Uso de Memória

Create Retrieve Update

Page 45: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Uso de MemóriaHipótese Hipótese Nula Hipótese Alternativa Descrição Resultado (SIG. 0,05) Melhor Resultado

H1 H1-0: T(F1, O1) = T(F2, O1) H1-1: T(F1, O1) ≠ T(F2, O1) Tempo por iteração na operação create

Com diferença significativa

JOINT-DE

H2 H2-0: T(F1, O2) = T(F2, O2) H2-1: T(F1, O2) ≠ T(F2, O2) Tempo por iteração na operação retrieve

Com diferença significativa

JOINT-DE

H3 H3-0: T(F1, O3) = T(F2, O3) H3-1: T(F1, O3) ≠ T(F2, O3) Tempo por iteração na operação update

Com diferença significativa

JOINT-DE

H4 H4-0: M(F1, O1) = M(F2, O1)

H4-1: M(F1, O1) ≠ M(F2, O1)

Média de memória na operação create

Sem diferença significativa

-

H5 H5-0: M(F1, O2) = M(F2, O2)

H5-1: M(F1, O2) ≠ M(F2, O2)

Média de memória na operação retrieve

Com diferença significativa

JOINT-DE

H6 H6-0: M(F1, O3) = M(F2, O3)

H6-1: M(F1, O3) ≠ M(F2, O3)

Média de memória na operação update

Com diferença significativa

Alibaba

Page 46: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Casos de Uso (MeuTutor)

INTERFACE DO USUÁRIO EM PHP

SERVIÇOS WEB

NEGÓCIO

PERSISTÊNCIA

BANCO DE DADOS RDF

SATÉLITE 1

SATÉLITE 2

SATÉLITE 3

MICRO-KERNEL

SATÉLITE 4

SATÉLITE ...

SATÉLITE N

CONE

CTOR

CONE

CTOR

USUÁRIOS FINAIS

Visão geral da arquitetura do MeuTutor-ENEM

Page 47: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT
Page 48: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Casos de Uso (MeuTutor)

0

1000

2000

3000

4000

5000

6000

Tempo de Resposta - Login

MeuTutor JOINT-DE

0

200

400

600

800

1000

1200

1400

1600

Memória Utilizada - Login

MeuTutor JOINT-DE

Page 49: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Casos de Uso (MeuTutor)

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

Tempo de Resposta - Cadastro

MeuTutor JOINT-DE

0

200

400

600

800

1000

1200

1400

Memória Utilizada - Cadastro

MeuTutor JOINT-DE

Page 50: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Casos de Uso (MeuTutor)

0

50

100

150

200

250

Tempo de Resposta - Troféus

MeuTutor JOINT-DE

0

50

100

150

200

250

300

350

400

450

500

Memória Utilizada - Troféus

MeuTutor JOINT-DE

Page 51: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos Empíricos (JOINT-DE)Casos de Uso (BoaMoradia)

Page 52: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Como recomendar um imóvel de acordo com os interesses e graus de relacionamentos?

Pessoas e Relacionamentos

Interesses

Imóveis

Cidades

Educação

Segurança

Pontos Comerciais

Ontologias

Page 53: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Estudos EmpíricosCasos de Uso (BoaMoradia)

Page 54: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Ontologias

JOINT

Próximos Passos

Page 55: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

JOINT – Java Ontology INtegrated Toolkit

JOINT-DE

OLED

??

JOINT-LD

Metodologia (E.S. + E.O.) + Conjunto de Boas Práticas

HOZO

Page 56: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Ig Ibert BittencourtNúcleo de Excelência em Tecnologias Sociais

Universidade Federal de Alagoas

Mesa Redonda: TI e Educação

II Workshop de EaD/UFGD: Educação no Mundo da Tecnologia Digital

Page 57: Construindo Aplicações Semânticas com Desenvolvimento Ágil: Plataforma JOINT

Maceió

Maceió, [email protected]@icmc.usp.br