1 / 41

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Tópicos • Motivação • Objetivos • O que é o HyperDE? • Criando uma aplicação com o HyperDE • Trabalhos relacionados • Trabalhos futuros • Contribuições

  3. A Web atual • Páginas em código HTML com objetivo de orientar o navegador a gerar uma apresentação das informações • Texto, Imagens, etc, compreensível apenas por pessoas • Conteúdo + Apresentação misturados • “No separation of concerns” • Mecanismos de busca se utilizam de algoritmos basicamente estatísticos

  4. A Web Semântica • Extensão da Web atual • Objetivo principal é adicionar significado às informações disponíveis na Web de forma a ser processável por máquinas • Interoperabilidade: possibilitará a integração entre aplicações • Automação: agentes de software serão capazes de executar muitas tarefas que necessitam de cognição e que hoje só podem ser executadas por pessoas

  5. Web Semântica • HTML, CSS, XUL, XAML e outras linguagens serão usadas para guiar diversos tipos de navegadores a gerarem apresentações diferenciadas • RDF/RDF(s)/OWL (todos com representação em XML) serão usados para descrever o conteúdo de forma semântica, i.e., com significado para humanos E máquinas • Possibilitará mecanismos de busca semântica com inferências e uso de inteligência artificial

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

  7. MDA – Model Driven Architecture • Produção de software através apenas de modelagem • Toda fase de implementação é feita de forma automatizada, processando o modelo • Por isso, os sistemas são construídos independente de plataforma • A idéia é antiga: OOHDM (1995) é um exemplo de MDA para aplicação hipermídia • Agora a OMG está “padronizando” e muitas empresas (IBM, Microsoft, Sun, ...) estão apoiando

  8. Domain Specific Languages (DSL) • “Little languages”: linguagens de programação criadas para utilização dentro de um domínio de problema específico • É, de certa forma, um conceito antagônico a MDA, porque é “code-oriented”: • Cria-se uma linguagem de programação e • Implementa-se o sistema usando essa linguagem

  9. Ruby/DSL • Ruby: linguagem dinamicamente tipada, interpretada, orientada a objetos • Pouca ou nenhuma distinção entre tempo de “compilação” e de execução • Sintaxe tolerante e concisa • Indicada para gerar DSLs baseadas em modelos OO • 10.times do • print “Hello HyperDE!” • end

  10. SHDM • Versão semântica do OOHDM original • Define processo e arquitetura • Orientada a modelos: • Conceitual • Navegacional • Interface Abstrata • Metamodelos e Modelos são definidos através de ontologias • Implementação pode ser feita artesanalmente ou automatizada por ferramentas/ambientes

  11. HyperDE D S L S H D M MDA Web Semântica

  12. O que é o HyperDE? (I) • Uma arquitetura de software, um ambiente de desenvolvimento e ferramentas de apoio • Permite • Desenvolvimento através de uma Interface Web • Desenvolvimento interativo • Prototipação rápida de uma aplicação SHDM, sem necessidade de programação (ou quase)

  13. O que é o HyperDE? (II) • Um framework MVC • Camada de (M)odelo fornece primitivas baseadas no SHDM (classes navegacionais, contextos, índices, nós, elos, ...) • Metamodelo e Modelo é persistido em RDF(S) • Geração dinâmica de DSL para manipulação do modelo e codificação de lógica de negócios • Camada de (C)ontrole implementa a lógica definida pelo modelo navegacional • Camada de (V)isão fornece funções de auxílio para uma implementação “quasi-abstrata”

  14. HyperDE Demonstração

  15. Pessoa Alunos Alunos Alunos por Professor Aluno Alunos Professores por Área Professor Professores Alfa Alfa por Área por Professor por Publicação Publicação por Pessoa Área de Pesquisa Áreas de Pesquisa Alfa Áreas de Pesquisa por Pessoa

  16. HyperDEArquitetura de Implementação

  17. Professor E-mail Nome Titulação Nome: José E-mail: jose@example.edu Titulação: Doutor Nome: Maria E-mail: maria@example.edu Titulação: Mestre Nome: Maria E-mail: maria@example.edu Titulação: Mestre Nome: João E-mail: joao@example.edu Titulação: Mestre SeRQLLinguagem de Consulta para RDF

  18. SeRQL - exemplo variáveis que irão aparecer no resultado 1º caminho: Nó do tipo “Professor” SELECT node FROM {node} rdf:type {<sr:Professor>},{link} sr:source_node {node}; rdf:type {<sr:Trabalha>}; sr:target_node {?} rdf:type {AreaDePesquisa} 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”

  19. SQL? SELECT n.* FROM nodes n, node_links l, nodes n2 WHERE n.all_types LIKE “%Professor%" AND n.id = l.node_id AND l.type = “Trabalha" AND l.target_node_id = n2.id AND n2.all_types LIKE “%AreaDePesquisa%" AND n2.id = ?

  20. SeRQL – exemplo 2 SELECT subclass FROM {subclass} rdfs:subClassOf {<sr:Pessoa>}

  21. Ruby / HyperDE-DSL schwabe = Professor.find_by_nome “Daniel Schwabe” hipermidia = AreaDePesquisa.find_by_nome “Hipermidia” schwabe.orienta.each do |aluno| unless aluno.trabalha.include?(hipermidia) aluno.trabalha << hipermidia end end

  22. Java/Jena? DAMLModel model = … // code that loads the VCARD ontology // and some data based on that ontology DAMLClass vcardClass = (DAMLClass) model.getDAMLValue(vcardBaseURI+"#VCARD"); DAMLProperty fnProp = (DAMLProperty) model.getDAMLValue(vcardBaseURI+"#FN"); DAMLProperty emailProp = (DAMLProperty) model.getDAMLValue(vcardBaseURI+"#EMAIL"); Iterator i = vcardClass.getInstances(); while (i.hasNext()) { DAMLInstance vcard = (DAMLInstance) i.next(); Iterator i2 = vcard.accessProperty(emailProp).getAll(true); while (i2.hasNext()) { DAMLInstance email = (DAMLInstance) i2.next(); if (email.getProperty(RDF.value).getString().equals( "amanda_cartwright@example.org" ) ) { DAMLDataInstance fullname = (DAMLDataInstance) vcard.accessProperty(fnProp).getDAMLValue(); if ( fullname != null ) System.out.println("Name: "+ fullname.getValue().getString()); } } }

  23. Ruby / HyperDE-DSL VCard.find_all.each do |vc| vc.emails.each do |email| if email.value == “amanda@ex.org” and vc.fn? then print vc.fn end end end

  24. Ruby / HyperDE-DSL • Métodos de persistência: • find, find_all, find_by_* • create, save, destroy Classes nativas schwabe = Professor.find_by_nome “Daniel Schwabe” hipermidia = AreaDePesquisa.find_by_nome “Hipermidia” schwabe.orienta.each do |aluno| unless aluno.trabalha.include?(hipermidia) aluno.trabalha << hipermidia end end Métodos de acesso aos elos Métodos de acesso aos elos Métodos de atribuição de valor de elos

  25. Ruby / HyperDE-DSL VCard.find_all.each do |vc| vc.emails.each do |email| print vc.fn if email == “amanda@ex.org” and vc.fn? 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

  26. Exemplo: Mini-Orkut

  27. Desenvolvendo uma aplicação SHDM com HyperDE (I) • Definição de classes navegacionais e elos

  28. Desenvolvendo uma aplicação SHDM com HyperDE (II) • Definição de contextos navegacionais

  29. Desenvolvendo uma aplicação SHDM com HyperDE (III) • Definição de estruturas de acesso

  30. Desenvolvendo uma aplicação SHDM com HyperDE (IV) • Definição de Landmarks

  31. Desenvolvendo uma aplicação SHDM com HyperDE (V) • Definiçao de Nós

  32. Desenvolvendo uma aplicação SHDM com HyperDE (VI) • Definição de templates customizados

  33. Pessoa Alunos Alunos Alunos por Professor Aluno Alunos Professores por Área Professor Professores Alfa Alfa por Área por Professor por Publicação Publicação por Pessoa Área de Pesquisa Áreas de Pesquisa Alfa Áreas de Pesquisa por Pessoa

  34. Template – exemplo <B>Titulacao:</B><br> <%= attr(“titulacao”) %><BR> <%= attr(“ano_titulacao”) %> - <%= attr(“origem_titulacao”) %><BR><BR> <B>Areas de Atuacao Tecnologica:</B><BR> <TABLE> <% index(@node.areas) do |template| %> <% template.entry do |entry| %> <TR VALIGN=TOP><TD><IMG SRC='…'></TD> <TD><%= entry.nome.ahref %></TD></TR> <% end %> <% end %> </TABLE>

  35. Desenvolvendo uma aplicação SHDM com HyperDE (VII) • Definição e execução de Operações <%= op "mudar_nome", { :label => "Alterar Nome", :view => "attributes", :update => "node_attributes", :label_loading => "Aguarde..." }, [ '<input type=button value="%s" onclick="%s">', :label, :onclick ] %>

  36. Trabalhos Relacionados • Toda a série de linguagens, ambientes e frameworks destinados ao suporte dos métodos OOHDM e SHDM • OOHDM-Web (1 e 2) e OOHDM-Java (1 e 2) • OOHDM-ML, OOHDM-Xweb • Lima, 2003; Szundy, 2004; Moura, 2004 • Outros • Hera, VisualWADE (OOH-Method), ArgoUWE e WebML

  37. Trabalhos Futuros • Melhorias de implementação do HyperDE • Aplicação compilada => Performance • Mecanismos de Segurança • Suporte a Regras de inferência • Extensões ao modelo do ambiente • Inclusão de facetas e outras primitivas e recursos do método SHDM que foram deixadas de fora • Mapeamento de modelo conceitual/navegacional como em Szundy, 2004. • Mapeamento de interfaces abstratas e interfaces concretas como em Moura, 2004. • Capacidades de navegação adaptativa • Possibilitar o uso de ontologias pré-definidas

  38. Contribuições • Ambiente de desenvolvimento e framework MVC integrados (de ponta-a-ponta) para prototipação de aplicações OOHDM e SHDM • Enriquecimento do SHDM através de modelo para implementação e execução de operações e atributos computados • Harmonização de MDA e DSL • Geração dinâmica de DSL para manipulação de ontologias • Possibilita processo ágil e incremental

More Related