41
HyperDE HyperDE Framework e Ambiente de Framework e Ambiente de Desenvolvimento dirigido por Desenvolvimento dirigido por Ontologias para Aplicações Ontologias para Aplicações Hipermídia Hipermídia Demetrius Arraes Nunes Demetrius Arraes Nunes Dissertação de Mestrado Dissertação de Mestrado Orientador: Daniel Schwabe Orientador: Daniel Schwabe Departamento de Informática – PUC- Departamento de Informática – PUC- Rio Rio Rio de Janeiro, 30 de março de 2005 Rio de Janeiro, 30 de março de 2005

HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Embed Size (px)

DESCRIPTION

HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia. Demetrius Arraes Nunes Dissertação de Mestrado Orientador: Daniel Schwabe Departamento de Informática – PUC-Rio Rio de Janeiro, 30 de março de 2005. Tópicos. Motivação Objetivos - PowerPoint PPT Presentation

Citation preview

Page 1: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

HyperDEHyperDEFramework e Ambiente de Framework e Ambiente de

Desenvolvimento dirigido por Ontologias Desenvolvimento dirigido por Ontologias para Aplicações Hipermídiapara Aplicações Hipermídia

Demetrius Arraes NunesDemetrius Arraes NunesDissertação de MestradoDissertação de Mestrado

Orientador: Daniel SchwabeOrientador: Daniel SchwabeDepartamento de Informática – PUC-RioDepartamento de Informática – PUC-Rio

Rio de Janeiro, 30 de março de 2005Rio de Janeiro, 30 de março de 2005

Page 2: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

TópicosTópicos

MotivaçãoMotivaçãoObjetivosObjetivosO que é o HyperDE?O que é o HyperDE?Criando uma aplicação com o HyperDECriando uma aplicação com o HyperDETrabalhos relacionadosTrabalhos relacionadosTrabalhos futurosTrabalhos futurosContribuiçõesContribuições

Page 3: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

A Web atualA Web atual

Páginas em código HTML com objetivo de Páginas em código HTML com objetivo de orientar o navegador a gerar uma orientar o navegador a gerar uma apresentação das informaçõesapresentação das informações

Texto, Imagens, etc, compreensível Texto, Imagens, etc, compreensível apenas por pessoasapenas por pessoas

Conteúdo + Apresentação misturadosConteúdo + Apresentação misturados ““No separation of concerns”No separation of concerns”Mecanismos de busca se utilizam de Mecanismos de busca se utilizam de

algoritmos basicamente estatísticosalgoritmos basicamente estatísticos

Page 4: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

A Web SemânticaA Web Semântica

Extensão da Web atualExtensão da Web atualObjetivo principal é adicionar significado Objetivo principal é adicionar significado

às informações disponíveis na Web de às informações disponíveis na Web de forma a ser processável por máquinasforma a ser processável por máquinas

Interoperabilidade: possibilitará a Interoperabilidade: possibilitará a integração entre aplicaçõesintegração entre aplicações

Automação: agentes de software serão Automação: agentes de software serão capazes de executar muitas tarefas que capazes de executar muitas tarefas que necessitam de cognição e que hoje só necessitam de cognição e que hoje só podem ser executadas por pessoaspodem ser executadas por pessoas

Page 5: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Web SemânticaWeb Semântica

HTML, CSS, XUL, XAML e outras linguagens HTML, CSS, XUL, XAML e outras linguagens serão usadas para guiar diversos tipos de serão usadas para guiar diversos tipos de navegadores a gerarem apresentações navegadores a gerarem apresentações diferenciadasdiferenciadas

RDF/RDF(s)/OWL (todos com representação RDF/RDF(s)/OWL (todos com representação em XML) serão usados para descrever o em XML) serão usados para descrever o conteúdo de forma semântica, i.e., com conteúdo de forma semântica, i.e., com significado para humanos E máquinassignificado para humanos E máquinas

Possibilitará mecanismos de busca semântica Possibilitará mecanismos de busca semântica com inferências e uso de inteligência artificialcom inferências e uso de inteligência artificial

Page 6: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

A Onda da Web Semântica A Onda da Web Semântica (na visão de Tim Berners-Lee)(na visão de Tim Berners-Lee)

Page 7: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

MDA – Model Driven ArchitectureMDA – Model Driven Architecture

Produção de software através apenas de Produção de software através apenas de modelagemmodelagem

Toda fase de implementação é feita de forma Toda fase de implementação é feita de forma automatizada, processando o modeloautomatizada, processando o modelo

Por isso, os sistemas são construídos Por isso, os sistemas são construídos independente de plataformaindependente de plataforma

A idéia é antiga: OOHDM (1995) é um exemplo A idéia é antiga: OOHDM (1995) é um exemplo de MDA para aplicação hipermídiade MDA para aplicação hipermídia

Agora a OMG está “padronizando” e muitas Agora a OMG está “padronizando” e muitas empresas (IBM, Microsoft, Sun, ...) estão empresas (IBM, Microsoft, Sun, ...) estão apoiandoapoiando

Page 8: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Domain Specific Languages (DSL)Domain Specific Languages (DSL)

““Little languages”: linguagens de Little languages”: linguagens de programação criadas para utilização programação criadas para utilização dentro de um domínio de problema dentro de um domínio de problema específicoespecífico

É, de certa forma, um conceito É, de certa forma, um conceito antagônico a MDA, porque é “code-antagônico a MDA, porque é “code-oriented”: oriented”:

1.1. Cria-se uma linguagem de programação e Cria-se uma linguagem de programação e

2.2. Implementa-se o sistema usando essa Implementa-se o sistema usando essa linguagemlinguagem

Page 9: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Ruby/DSLRuby/DSL

Ruby: linguagem dinamicamente tipada, Ruby: linguagem dinamicamente tipada, interpretada, orientada a objetosinterpretada, orientada a objetos

Pouca ou nenhuma distinção entre tempo Pouca ou nenhuma distinção entre tempo de “compilação” e de execuçãode “compilação” e de execução

Sintaxe tolerante e concisaSintaxe tolerante e concisa Indicada para gerar DSLs baseadas em Indicada para gerar DSLs baseadas em

modelos OOmodelos OO

10.times do print “Hello HyperDE!”end

Page 10: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

SHDMSHDM

Versão semântica do OOHDM originalVersão semântica do OOHDM original Define processo e arquiteturaDefine processo e arquitetura Orientada a modelos:Orientada a modelos:

ConceitualConceitualNavegacionalNavegacional Interface AbstrataInterface Abstrata

Metamodelos e Modelos são definidos através Metamodelos e Modelos são definidos através de ontologiasde ontologias

Implementação pode ser feita artesanalmente Implementação pode ser feita artesanalmente ou automatizada por ferramentas/ambientesou automatizada por ferramentas/ambientes

Page 11: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

HyperDEHyperDE

Page 12: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

O que é o HyperDE? (I)O que é o HyperDE? (I)

Uma arquitetura de software, um ambiente Uma arquitetura de software, um ambiente de desenvolvimento e ferramentas de de desenvolvimento e ferramentas de apoioapoio

PermitePermiteDesenvolvimento através de uma Interface Desenvolvimento através de uma Interface

WebWebDesenvolvimento interativoDesenvolvimento interativoPrototipação rápida de uma aplicação SHDM, Prototipação rápida de uma aplicação SHDM,

sem necessidade de programação (ou quase)sem necessidade de programação (ou quase)

Page 13: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

O que é o HyperDE? (II)O que é o HyperDE? (II)Um framework Um framework MVCMVC

Camada de (Camada de (MM)odelo fornece primitivas )odelo fornece primitivas baseadas no SHDM (classes navegacionais, baseadas no SHDM (classes navegacionais, contextos, índices, nós, elos, ...)contextos, índices, nós, elos, ...)Metamodelo e Modelo é persistido em RDF(S)Metamodelo e Modelo é persistido em RDF(S)Geração dinâmica de DSL para manipulação do Geração dinâmica de DSL para manipulação do

modelo e codificação de lógica de negóciosmodelo e codificação de lógica de negócios

Camada de (Camada de (CC)ontrole implementa a lógica )ontrole implementa a lógica definida pelo modelo navegacionaldefinida pelo modelo navegacional

Camada de (Camada de (VV)isão fornece funções de )isão fornece funções de auxílio para uma implementação “quasi-auxílio para uma implementação “quasi-abstrata”abstrata”

Page 14: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

HyperDEHyperDE

DemonstraçãoDemonstração

Page 15: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia
Page 16: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Pessoa

por Publicação

Professor

Alfa

por Área

Aluno

por Área

Alfa

por Professor

Publicação

por Pessoa

Área de Pesquisa

Alfa

por Pessoa

Alunos

Alunos por Professor

Professores

Alunos

Áreas de Pesquisa

Alunos

Professores

Áreas de Pesquisa

Page 17: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

HyperDEHyperDEArquitetura de ImplementaçãoArquitetura de Implementação

Visão

Modelo

Usuário /Desenvolvedor

MetamodeloSHDM

ModeloNavegacional

ModelGenerator

View TemplatesView Helpers &

Components

Controle

NavigationController

CRUDControllers

Interface Web

Interface de Console

Database Backend

SemanticRecord Mapper

tool Importação/Exportaçãode Modelos

Page 18: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

SeRQLSeRQLLinguagem de Consulta para RDFLinguagem de Consulta para RDF

Nome: MariaE-mail: [email protected]ção: Mestre

Professor

Nome

E-mail

Titulação

Nome: JoséE-mail: [email protected]ção: Doutor

Nome: MariaE-mail: [email protected]ção: Mestre

Nome: JoãoE-mail: [email protected]ção: Mestre

Page 19: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

SeRQL - exemploSeRQL - exemplo

SELECT node FROM SELECT node FROM

{node} rdf:type {<sr:Professor>},{node} rdf:type {<sr:Professor>},

{link} sr:source_node {node};{link} sr:source_node {node}; rdf:type {<sr:Trabalha>}; rdf:type {<sr:Trabalha>}; sr:target_node {?} sr:target_node {?} rdf:type {AreaDePesquisa} rdf:type {AreaDePesquisa}

variáveis que irão aparecer no

resultado

1º caminho:Nó do tipo

“Professor”

2º caminho (I):Elo com origem no nóe do tipo “Trabalha”

2º caminho (II):Elo com destino em um nó X cujo tipo é “AreaDePesquisa”

Page 20: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Nó sr:Professor

rdf:type

Elo

Sr:Trabalha

rdf:typesr:source_node

sr:target_node

Nó X sr:AreaDePesquisardf:type

Page 21: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

SQL?SQL?SELECT n.*SELECT n.*

FROM nodes n, node_links l, nodes n2FROM nodes n, node_links l, nodes n2

WHERE n.all_types LIKE “%Professor%"WHERE n.all_types LIKE “%Professor%"

AND n.id = l.node_idAND n.id = l.node_id

AND l.type = “Trabalha"AND l.type = “Trabalha"

AND l.target_node_id = n2.idAND l.target_node_id = n2.id

AND n2.all_types LIKE “%AreaDePesquisa%"AND n2.all_types LIKE “%AreaDePesquisa%"

AND n2.id = ?AND n2.id = ?

Page 22: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

SeRQL – exemplo 2SeRQL – exemplo 2

SELECT subclassSELECT subclass

FROM FROM

{subclass} {subclass}

rdfs:subClassOfrdfs:subClassOf

{<sr:Pessoa>}{<sr:Pessoa>}

Page 23: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Ruby / HyperDE-DSLRuby / HyperDE-DSL

schwabe = Professor.find_by_nome schwabe = Professor.find_by_nome “Daniel Schwabe” “Daniel Schwabe”

hipermidia = AreaDePesquisa.find_by_nomehipermidia = AreaDePesquisa.find_by_nome “Hipermidia” “Hipermidia”

schwabe.orienta.each do |aluno|schwabe.orienta.each do |aluno|

unless aluno.trabalha.include?(hipermidia)unless aluno.trabalha.include?(hipermidia)

aluno.trabalha << hipermidiaaluno.trabalha << hipermidia

endend

endend

Page 24: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Java/Jena? Java/Jena? DAMLModel model = … // code that loads the VCARD ontologyDAMLModel model = … // code that loads the VCARD ontology

// and some data based on that ontology// and some data based on that ontology

DAMLClass vcardClass =DAMLClass vcardClass =

(DAMLClass) model.getDAMLValue(vcardBaseURI+"#VCARD");(DAMLClass) model.getDAMLValue(vcardBaseURI+"#VCARD");

DAMLProperty fnProp =DAMLProperty fnProp =

(DAMLProperty) model.getDAMLValue(vcardBaseURI+"#FN");(DAMLProperty) model.getDAMLValue(vcardBaseURI+"#FN");

DAMLProperty emailProp = DAMLProperty emailProp =

(DAMLProperty) model.getDAMLValue(vcardBaseURI+"#EMAIL");(DAMLProperty) model.getDAMLValue(vcardBaseURI+"#EMAIL");

Iterator i = vcardClass.getInstances();Iterator i = vcardClass.getInstances();

while (i.hasNext()) {while (i.hasNext()) {

DAMLInstance vcard = (DAMLInstance) i.next();DAMLInstance vcard = (DAMLInstance) i.next();

Iterator i2 =Iterator i2 =

vcard.accessProperty(emailProp).getAll(true);vcard.accessProperty(emailProp).getAll(true);

while (i2.hasNext()) {while (i2.hasNext()) {

DAMLInstance email = (DAMLInstance) i2.next();DAMLInstance email = (DAMLInstance) i2.next();

if (email.getProperty(RDF.value).getString().equals(if (email.getProperty(RDF.value).getString().equals(

"[email protected]" ) ) {"[email protected]" ) ) {

DAMLDataInstance fullname =DAMLDataInstance fullname =

(DAMLDataInstance) vcard.accessProperty(fnProp).getDAMLValue();(DAMLDataInstance) vcard.accessProperty(fnProp).getDAMLValue();

if ( fullname != null )if ( fullname != null )

System.out.println("Name: "+ fullname.getValue().getString());System.out.println("Name: "+ fullname.getValue().getString());

}}

}}

}}

Page 25: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Ruby / HyperDE-DSLRuby / HyperDE-DSL

VCard.find_all.each do |vc| VCard.find_all.each do |vc|

vc.emails.each do |email| vc.emails.each do |email|

if email.value == “[email protected]” if email.value == “[email protected]

and vc.fn? thenand vc.fn? then

print vc.fnprint vc.fn

end end

end end

end end

Page 26: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Ruby / HyperDE-DSLRuby / HyperDE-DSL

schwabe = Professor.find_by_nome schwabe = Professor.find_by_nome “Daniel Schwabe” “Daniel Schwabe”

hipermidia = AreaDePesquisa.find_by_nomehipermidia = AreaDePesquisa.find_by_nome “Hipermidia” “Hipermidia”

schwabe.orienta.each do |aluno|schwabe.orienta.each do |aluno|

unless aluno.trabalha.include?(hipermidia)unless aluno.trabalha.include?(hipermidia)

aluno.trabalha << hipermidiaaluno.trabalha << hipermidia

endend

endend

Classes nativasMétodos de persistência:

• find, find_all, find_by_*• create, save, destroy

Métodos de acesso aos elos

Métodos de acesso aos elos

Métodos de atribuição de valor

de elos

Page 27: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Ruby / HyperDE-DSLRuby / HyperDE-DSL

VCard.find_all.each do |vc| VCard.find_all.each do |vc|

vc.emails.each do |email| vc.emails.each do |email|

print vc.fn if email == “[email protected]” print vc.fn if email == “[email protected]

and vc.fn?and vc.fn?

end end

end end Métodos de acesso de leitura e escrita para

os valores das propriedades dos nós

Métodos de verificação de

existência de valor em propriedade

Page 28: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Exemplo: Mini-OrkutExemplo: Mini-Orkut

nome: Stringemail: Emailfoto: Imagehumor: Computedamigos: Index(Amigos(_THIS))

Pessoa

AmigoDe

Pessoa

PorAmigo

AlfaPessoas

Pessoas

Page 29: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (I)SHDM com HyperDE (I)

Definição de classes navegacionais e elosDefinição de classes navegacionais e elos

NavClass

NavAttribute

NavOperation

Link renovar_matriculacancelar_matricula

nome: Stringhomepage: Urlfoto: Image

Pessoa

instância

instâncias

instâncias

MatriculadoEm

TemDepartamento

instâncias

Page 30: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (II)SHDM com HyperDE (II)

Definição de contextos navegacionaisDefinição de contextos navegacionais

Context

ContextParameter

NavClassParameter

Page 31: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (III)SHDM com HyperDE (III)

Definição de estruturas de acessoDefinição de estruturas de acesso

Departamento Alunos Professores

Engenheria 242 VerInformática 199 Ver

Letras 121 Ver... ... ...

Ano deFundação

192019601945

...

IndexAttribute

Index

IndexEntry

IndexEntryAttribute

Page 32: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (IV)SHDM com HyperDE (IV)

Definição de LandmarksDefinição de Landmarks

Landmark

ContextLandmark IndexLandmark

Context Index

target target

Page 33: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (V)SHDM com HyperDE (V)

Definiçao de NósDefiniçao de Nós

Node

NodeLink

Pessoa

Aluno

Professor

Orienta

OrientadoPor

target

inverse

NavClass

Link

generate

generate

generate

generate

generate

inverse

Metaclasses

Page 34: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (VI)SHDM com HyperDE (VI)

Definição de templates customizadosDefinição de templates customizados

View

ContextViewIndexViewGenericView

Context

NavClass

Index

layout

layout

NavigationController

action: context

action: show_index

Page 35: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia
Page 36: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Pessoa

por Publicação

Professor

Alfa

por Área

Aluno

por Área

Alfa

por Professor

Publicação

por Pessoa

Área de Pesquisa

Alfa

por Pessoa

Alunos

Alunos por Professor

Professores

Alunos

Áreas de Pesquisa

Alunos

Professores

Áreas de Pesquisa

Page 37: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Template – exemploTemplate – exemplo<B>Titulacao:</B><br><B>Titulacao:</B><br>

<%= attr(“titulacao”) %><BR><%= attr(“titulacao”) %><BR>

<%= attr(“ano_titulacao”) %> - <%= <%= attr(“ano_titulacao”) %> - <%= attr(“origem_titulacao”) %><BR><BR>attr(“origem_titulacao”) %><BR><BR>

<B>Areas de Atuacao Tecnologica:</B><BR><B>Areas de Atuacao Tecnologica:</B><BR>

<TABLE><TABLE>

<% index(@node.areas) do |template| %><% index(@node.areas) do |template| %>

<% template.entry do |entry| %><% template.entry do |entry| %>

<TR VALIGN=TOP><TD><IMG SRC='…'></TD><TR VALIGN=TOP><TD><IMG SRC='…'></TD>

<TD><%= entry.nome.ahref %></TD></TR><TD><%= entry.nome.ahref %></TD></TR>

<% end %><% end %>

<% end %><% end %>

</TABLE></TABLE>

Page 38: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Desenvolvendo uma aplicação Desenvolvendo uma aplicação SHDM com HyperDE (VII)SHDM com HyperDE (VII)

Definição e execução de OperaçõesDefinição e execução de Operações

<%= op "mudar_nome", <%= op "mudar_nome",

{ :label => "Alterar Nome", { :label => "Alterar Nome",

:view => "attributes", :view => "attributes",

:update => "node_attributes", :update => "node_attributes",

:label_loading => "Aguarde..." }, :label_loading => "Aguarde..." },

[ '<input type=button value="%s" [ '<input type=button value="%s"

onclick="%s">', :label, :onclick ] %>onclick="%s">', :label, :onclick ] %>

Page 39: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Trabalhos RelacionadosTrabalhos Relacionados

Toda a série de linguagens, ambientes e Toda a série de linguagens, ambientes e frameworks destinados ao suporte dos frameworks destinados ao suporte dos métodos OOHDM e SHDMmétodos OOHDM e SHDMOOHDM-Web (1 e 2) e OOHDM-Java (1 e 2)OOHDM-Web (1 e 2) e OOHDM-Java (1 e 2)OOHDM-ML, OOHDM-XwebOOHDM-ML, OOHDM-XwebLima, 2003; Szundy, 2004; Moura, 2004Lima, 2003; Szundy, 2004; Moura, 2004

OutrosOutrosHera, VisualWADE (OOH-Method), ArgoUWE Hera, VisualWADE (OOH-Method), ArgoUWE

e WebMLe WebML

Page 40: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

Trabalhos FuturosTrabalhos Futuros

Melhorias de implementação do HyperDEMelhorias de implementação do HyperDE Aplicação compilada => PerformanceAplicação compilada => Performance Mecanismos de SegurançaMecanismos de Segurança Suporte a Regras de inferênciaSuporte a Regras de inferência

Extensões ao modelo do ambienteExtensões ao modelo do ambiente Inclusão de facetas e outras primitivas e recursos do Inclusão de facetas e outras primitivas e recursos do

método SHDM que foram deixadas de foramétodo SHDM que foram deixadas de fora Mapeamento de modelo conceitual/navegacional Mapeamento de modelo conceitual/navegacional

como em Szundy, 2004.como em Szundy, 2004. Mapeamento de interfaces abstratas e interfaces Mapeamento de interfaces abstratas e interfaces

concretas como em Moura, 2004.concretas como em Moura, 2004. Capacidades de navegação adaptativaCapacidades de navegação adaptativa Possibilitar o uso de ontologias pré-definidasPossibilitar o uso de ontologias pré-definidas

Page 41: HyperDE Framework e Ambiente de Desenvolvimento dirigido por Ontologias para Aplicações Hipermídia

ContribuiçõesContribuições

Ambiente de desenvolvimento e framework Ambiente de desenvolvimento e framework MVC integrados (de ponta-a-ponta) para MVC integrados (de ponta-a-ponta) para prototipação de aplicações OOHDM e SHDMprototipação de aplicações OOHDM e SHDM

Enriquecimento do SHDM através de modelo Enriquecimento do SHDM através de modelo para implementação e execução de operações e para implementação e execução de operações e atributos computados atributos computados

Harmonização de MDA e DSLHarmonização de MDA e DSL Geração dinâmica de DSL para manipulação de Geração dinâmica de DSL para manipulação de

ontologiasontologias Possibilita processo ágil e incrementalPossibilita processo ágil e incremental