O usuário encontra a página via pesquisa, link recomendado ou redirecionamento. O usuário clica no link e a página carrega.
Fornecer uma compreensão clara e interativa das inter-relações entre os componentes de um sistema de informação, permitindo ao usuário explorar desde conceitos abstratos até elementos específicos de conjuntos de informações.
Grafo gerado a partir do texto da apresentação (Arrastar as bolas abaixo)
Como os diferentes componentes de um sistema de informação estão inter-relacionados, desde conceitos abstratos até elementos específicos de conjuntos de informações?
Fornecer uma compreensão clara e interativa das inter-relações entre os componentes de um sistema de informação, permitindo ao usuário explorar desde conceitos abstratos até elementos específicos de conjuntos de informações.
Título: Visualização da Informação usando IA
Subtítulo: Estrutura Textual
Descrição: Visualiza as inter-relações entre os componentes do sistema de informação.
Componentes: Nós (representando conceitos, sistemas, modelos, processos, etc.), Arestas (representando as relações entre os componentes)
Funcionalidades Específicas:
Descrição: Permite ao usuário interagir com o grafo.
Componentes: Botões para aumentar e diminuir o tamanho da fonte, Botões para ajustar o zoom.
Funcionalidades Específicas:
Descrição: Um elemento expansível que contém o texto explicativo do grafo.
Componentes: Botão "Texto Origem", Seção de Accordion
Funcionalidades Específicas:
Descrição: Funcionalidades que permitem ao usuário salvar a página nos favoritos ou compartilhá-la.
Componentes: Botões de Favoritos e Compartilhamento
Funcionalidades Específicas:
Descrição: Exibição de mensagens de erro se o grafo não carregar corretamente ou se houver um problema técnico.
Componentes: Seção de Mensagens de Erro
Funcionalidades Específicas:
O usuário encontra a página via pesquisa, link recomendado ou redirecionamento. O usuário clica no link e a página carrega.
O usuário lê o título "Visualização da Informação usando IA" e o subtítulo "Estrutura Textual". O usuário faz uma exploração inicial da página para entender seu conteúdo e propósito.
O usuário interage com o grafo interativo, arrastando nós para ver como estão conectados. O usuário usa os botões de controle para ajustar o zoom e o tamanho da fonte dos nós e arestas.
O usuário clica no botão "Texto Origem" para rolar até o accordion com o texto explicativo. O usuário expande o accordion e lê o texto explicativo para entender melhor as conexões mostradas no grafo.
O usuário decide salvar a página nos favoritos para referência futura ou compartilhar com colegas. O usuário usa o navegador para salvar a página nos favoritos ou compartilhar.
O usuário lê apenas o texto e decide que as informações são suficientes sem interagir com o grafo.
Se o grafo não carregar corretamente, o usuário vê uma mensagem de erro e pode tentar recarregar a página ou reportar o problema.
- A página deve ser responsiva e funcionar em diferentes dispositivos (desktop, tablet, mobile).
- O grafo interativo deve ser fluido e responder rapidamente às ações do usuário.
- O texto explicativo deve ser claro e complementar a visualização gráfica.
- Proteção contra ataques XSS e CSRF.
- O servidor deve estar protegido contra ataques DDoS.
- Os dados do usuário, se coletados, devem ser protegidos conforme as regulamentações de privacidade.
- A interface deve ser intuitiva e fácil de navegar.
- As interações com o grafo devem ser suaves e sem atrasos perceptíveis.
- O texto explicativo deve ser fácil de encontrar e entender.
Estrutura da Visualização: Relacional
Tipo de Dados: Nominal
Como os diferentes componentes de um sistema de informação estão inter-relacionados, desde conceitos abstratos até elementos específicos de conjuntos de informações?
Fornecer uma compreensão clara e interativa das inter-relações entre os componentes de um sistema de informação, permitindo ao usuário explorar desde conceitos abstratos até elementos específicos de conjuntos de informações.
Título: Visualização da Informação usando IA
Subtítulo: Estrutura Textual
Descrição: Visualiza as inter-relações entre os componentes do sistema de informação.
Componentes: Nós (representando conceitos, sistemas, modelos, processos, etc.), Arestas (representando as relações entre os componentes)
Funcionalidades Específicas:
Descrição: Permite ao usuário interagir com o grafo.
Componentes: Botões para aumentar e diminuir o tamanho da fonte, Botões para ajustar o zoom.
Funcionalidades Específicas:
Descrição: Um elemento expansível que contém o texto explicativo do grafo.
Componentes: Botão "Texto Origem", Seção de Accordion
Funcionalidades Específicas:
Descrição: Funcionalidades que permitem ao usuário salvar a página nos favoritos ou compartilhá-la.
Componentes: Botões de Favoritos e Compartilhamento
Funcionalidades Específicas:
Descrição: Exibição de mensagens de erro se o grafo não carregar corretamente ou se houver um problema técnico.
Componentes: Seção de Mensagens de Erro
Funcionalidades Específicas:
O usuário encontra a página via pesquisa, link recomendado ou redirecionamento. O usuário clica no link e a página carrega.
O usuário lê o título "Visualização da Informação usando IA" e o subtítulo "Estrutura Textual". O usuário faz uma exploração inicial da página para entender seu conteúdo e propósito.
O usuário interage com o grafo interativo, arrastando nós para ver como estão conectados. O usuário usa os botões de controle para ajustar o zoom e o tamanho da fonte dos nós e arestas.
O usuário clica no botão "Texto Origem" para rolar até o accordion com o texto explicativo. O usuário expande o accordion e lê o texto explicativo para entender melhor as conexões mostradas no grafo.
O usuário decide salvar a página nos favoritos para referência futura ou compartilhar com colegas. O usuário usa o navegador para salvar a página nos favoritos ou compartilhar.
O usuário lê apenas o texto e decide que as informações são suficientes sem interagir com o grafo.
Se o grafo não carregar corretamente, o usuário vê uma mensagem de erro e pode tentar recarregar a página ou reportar o problema.
- A página deve ser responsiva e funcionar em diferentes dispositivos (desktop, tablet, mobile).
- O grafo interativo deve ser fluido e responder rapidamente às ações do usuário.
- O texto explicativo deve ser claro e complementar a visualização gráfica.
- Proteção contra ataques XSS e CSRF.
- O servidor deve estar protegido contra ataques DDoS.
- Os dados do usuário, se coletados, devem ser protegidos conforme as regulamentações de privacidade.
- A interface deve ser intuitiva e fácil de navegar.
- As interações com o grafo devem ser suaves e sem atrasos perceptíveis.
- O texto explicativo deve ser fácil de encontrar e entender.
Estrutura da Visualização: Relacional
Tipo de Dados: Nominal
A jornada do usuário mapeia as etapas que um usuário percorre ao interagir com a visualização, desde o acesso inicial até a saída.
Foco na usabilidade, acessibilidade e satisfação do usuário ao interagir com a visualização. A UX inclui a facilidade de navegação e a clareza das informações apresentadas.
Diagramas que mostram a arquitetura da informação e como os diferentes componentes se interconectam. Inclui a estrutura do grafo e a organização dos componentes.
- O usuário tem acesso à internet.
- O navegador do usuário suporta HTML5, CSS3 e JavaScript.
- O usuário compreende as inter-relações entre os componentes do sistema de informação.
- O usuário pode salvar ou compartilhar a página se achar útil.
O usuário encontra a página via pesquisa, link recomendado ou redirecionamento. O usuário clica no link e a página carrega.
O usuário lê o título "Visualização da Informação usando IA" e o subtítulo "Estrutura Textual". O usuário faz uma exploração inicial da página para entender seu conteúdo e propósito.
O usuário interage com o grafo interativo, arrastando nós para ver como estão conectados. O usuário usa os botões de controle para ajustar o zoom e o tamanho da fonte dos nós e arestas.
O usuário clica no botão "Texto Origem" para rolar até o accordion com o texto explicativo. O usuário expande o accordion e lê o texto explicativo para entender melhor as conexões mostradas no grafo.
O usuário decide salvar a página nos favoritos para referência futura ou compartilhar com colegas. O usuário usa o navegador para salvar a página nos favoritos ou compartilhar.
O usuário lê apenas o texto e decide que as informações são suficientes sem interagir com o grafo.
Fluxo Alternativo 2 - Problema Técnico:Se o grafo não carregar corretamente, o usuário vê uma mensagem de erro e pode tentar recarregar a página ou reportar o problema.
- A página deve ser responsiva e funcionar em diferentes dispositivos.
- O grafo interativo deve ser fluido e responder rapidamente às ações do usuário.
- O texto explicativo deve ser claro e complementar a visualização gráfica.
- Proteção contra ataques XSS e CSRF.
- O servidor deve estar protegido contra ataques DDoS.
- Os dados do usuário, se coletados, devem ser protegidos conforme as regulamentações de privacidade.
- A interface deve ser intuitiva e fácil de navegar.
- As interações com o grafo devem ser suaves e sem atrasos perceptíveis.
- O texto explicativo deve ser fácil de encontrar e entender.
O objetivo deste projeto é desenvolver uma visualização interativa que permita aos usuários explorar e compreender como os diferentes componentes de um sistema de informação estão inter-relacionados, desde conceitos abstratos até elementos específicos de conjuntos de informações. A visualização será baseada em um grafo interativo que oferece funcionalidades como zoom, ajuste de tamanho da fonte e interação direta com os nós do grafo.
Como os diferentes componentes de um sistema de informação estão inter-relacionados, desde conceitos abstratos até elementos específicos de conjuntos de informações?
Título: Visualização da Informação usando IA
Subtítulo: Estrutura Textual
Descrição: Um grafo que visualiza as inter-relações entre os componentes do sistema de informação.
Funcionalidades:
Descrição: Controles para interagir com o grafo.
Componentes:
Descrição: Um elemento expansível contendo o texto explicativo do grafo.
Funcionalidades:
Descrição: Funcionalidades para salvar a página nos favoritos ou compartilhá-la.
Componentes:
Descrição: Exibição de mensagens de erro se o grafo não carregar corretamente ou se houver um problema técnico.
Componentes:
| Fase | Etapa | Entregas |
|---|---|---|
| 1. Planejamento | Definição de Requisitos | Documento de Requisitos, Mapa da Jornada do Usuário |
| 1. Planejamento | Análise de Viabilidade | Relatório de Viabilidade |
| 2. Design | Criação do Wireframe | Wireframes de Baixa Fidelidade |
| 2. Design | Desenvolvimento do Prototipo | Protótipos de Alta Fidelidade |
| 3. Desenvolvimento | Implementação do Front-end | Código HTML/CSS/JavaScript, Integração com D3.js |
| 3. Desenvolvimento | Implementação do Back-end | Configuração do Servidor Web |
| 4. Testes | Testes de Usabilidade | Relatório de Testes de Usabilidade |
| 4. Testes | Testes de Performance | Relatório de Testes de Performance |
| 5. Lançamento | Deploy | Página no Servidor, Manual do Usuário |
| 6. Manutenção | Suporte e Atualizações | Registro de Problemas, Atualizações Periódicas |
A jornada do usuário mapeia as etapas que um usuário percorre ao interagir com a visualização, desde o acesso inicial até a saída.
Foco na usabilidade, acessibilidade e satisfação do usuário ao interagir com a visualização. A UX inclui a facilidade de navegação e a clareza das informações apresentadas.
Diagramas que mostram a arquitetura da informação e como os diferentes componentes se interconectam. Inclui a estrutura do grafo e a organização dos componentes.
- A página deve ser responsiva e funcionar em diferentes dispositivos (desktop, tablet, mobile).
- O grafo interativo deve ser fluido e responder rapidamente às ações do usuário.
- O texto explicativo deve ser claro e complementar a visualização gráfica.
- Proteção contra ataques XSS e CSRF.
- O servidor deve estar protegido contra ataques DDoS.
- Os dados do usuário, se coletados, devem ser protegidos conforme as regulamentações de privacidade.
- A interface deve ser intuitiva e fácil de navegar.
- As interações com o grafo devem ser suaves e sem atrasos perceptíveis.
- O texto explicativo deve ser fácil de encontrar e entender.
Estrutura da Visualização: Relacional
Tipo de Dados: Nominal
Objetivo: Fornecer uma compreensão clara e passo a passo de como os diferentes componentes de um sistema de informação estão inter-relacionados. Capacitar os usuários a interagir de forma eficaz com o grafo interativo, utilizando todas as funcionalidades disponíveis.
Estrutura da Trilha: A trilha será dividida em módulos sequenciais, cada um focando em aspectos específicos do grafo e das suas funcionalidades.
Objetivo: Capacitar os usuários a construir um grafo e uma página web interativa a partir de uma pergunta específica usando ChatGPT-4. Ensinar as etapas necessárias, desde a análise da pergunta até a implementação e publicação da página.
Estrutura da Trilha: A trilha será dividida em módulos sequenciais, cada um focando em aspectos específicos do processo de construção do grafo e da página web com a ajuda do ChatGPT-4.
O ambiente de trabalho consiste em um iMac para desenvolvimento local e um provedor de internet para hospedar o site na rede. O site é acessado através de um navegador de internet usando um domínio .com.
Instalar e configurar o ambiente de desenvolvimento no iMac.
# Instalar Python e Pip
python --version
pip --version
# Criar e ativar um ambiente virtual
python -m venv myenv
source myenv/bin/activate # No Windows use `myenv\Scripts\activate`
# Instalar as bibliotecas necessárias
pip install flask spacy networkx
python -m spacy download en_core_web_sm
Crie o arquivo app.py com o seguinte conteúdo:
from flask import Flask, request, jsonify
import spacy
import networkx as nx
from networkx.readwrite import json_graph
app = Flask(__name__)
nlp = spacy.load('en_core_web_sm')
def text_to_graph(text):
doc = nlp(text);
G = nx.DiGraph();
for ent in doc.ents:
G.add_node(ent.text, label=ent.label_);
for sent in doc.sents:
for token in sent:
if token.dep_ in ('nsubj', 'dobj'):
G.add_edge(token.head.text, token.text, label=token.dep_);
return G;
@app.route('/update_graph', methods=['POST'])
def update_graph():
text = request.json.get('text');
G = text_to_graph(text);
graph_data = json_graph.node_link_data(G);
return jsonify(graph_data);
if __name__ == '__main__':
app.run(debug=True);
python app.py
Crie o arquivo index.html com o seguinte conteúdo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grafo Interativo</title>
<style>
#graph {
width: 100%;
height: 600px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<h1>Grafo Interativo</h1>
<textarea id="input-text" rows="10" cols="50">Digite seu texto aqui...</textarea>
<button id="update-button">Atualizar Grafo</button>
<div id="graph"></div>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script>
document.getElementById('update-button').addEventListener('click', function() {
var text = document.getElementById('input-text').value;
fetch('/update_graph', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ text: text })
})
.then(response => response.json())
.then(data => {
updateGraph(data);
});
});
function updateGraph(data) {
var svg = d3.select("#graph").html("").append("svg")
.attr("width", "100%")
.attr("height", "100%")
.call(d3.zoom().on("zoom", function () {
svg.attr("transform", d3.event.transform)
}))
.append("g");
var width = document.getElementById('graph').clientWidth;
var height = document.getElementById('graph').clientHeight;
var simulation = d3.forceSimulation()
.force("link", d3.forceLink().id(function (d) { return d.id; }).distance(150))
.force("charge", d3.forceManyBody().strength(-300))
.force("center", d3.forceCenter(width / 2, height / 2));
var link = svg.append("g")
.attr("class", "links")
.selectAll("line")
.data(data.links)
.enter().append("line")
.attr("stroke-width", 2);
var node = svg.append("g")
.attr("class", "nodes")
.selectAll("g")
.data(data.nodes)
.enter().append("g")
.call(d3.drag()
.on("start", dragstarted)
.on("drag", dragged)
.on("end", dragended));
node.append("circle")
.attr("r", 10)
.attr("fill", "#69b3a2");
node.append("text")
.attr("x", 12)
.attr("dy", ".35em")
.text(function (d) { return d.id; });
simulation
.nodes(data.nodes)
.on("tick", ticked);
simulation.force("link")
.links(data.links);
function ticked() {
link
.attr("x1", function (d) { return d.source.x; })
.attr("y1", function (d) { return d.source.y; })
.attr("x2", function (d) { return d.target.x; })
.attr("y2", function (d) { return d.target.y; });
node
.attr("transform", function (d) {
return "translate(" + d.x + "," + d.y + ")";
});
}
function dragstarted(d) {
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
d.fx = d.x;
d.fy = d.y;
}
function dragged(d) {
d.fx = d3.event.x;
d.fy = d3.event.y;
}
function dragended(d) {
if (!d3.event.active) simulation.alphaTarget(0);
d.fx = null;
d.fy = null;
}
}
</script>
</body>
</html>
app.py para o backend Flask.index.html para o frontend.| Etapa | Ação / Tarefa | Pensamentos / Perguntas | Sentimentos | Pontos de Contato |
|---|---|---|---|---|
| Acessar Página | Digita a URL do site e acessa a página. | "Será que a página está carregando?" | Curiosidade | Navegador Web |
| Visualizar Cabeçalho | Observa o logo e o menu. | "O que há neste site?" | Interesse | Cabeçalho, Menu |
| Alternar Modo Escuro | Clica no ícone de meia lua. | "Será que o modo escuro é melhor?" | Curiosidade, Satisfação | Ícone de Meia Lua |
| Navegar pelo Índice | Clica em itens do índice. | "Quero ver o conteúdo detalhado." | Interesse | Índice, Seções |
| Ler Conteúdo | Lê o conteúdo da seção selecionada. | "Isso é útil para mim?" | Engajamento, Satisfação | Conteúdo, Seções |
| Usar Modo Responsivo | Clica no menu hambúrguer. | "Posso ver o índice completo?" | Facilidade, Conveniência | Menu Hambúrguer, Índice |
| Visualizar Rodapé | Vê informações de rodapé. | "Quem fez essa página?" | Satisfação | Rodapé |
| Autor | Título | Editor | Ano | Vendedor |
|---|---|---|---|---|
| MEIRELLES, Isabel | Design for Information | Rockport Publishers | 2013 | Amazon |
| WARE, Colin | Information Visualization: Perception for Design | Morgan Kaufmann | 2004 | Amazon |
| Autor | Título | Universidade/Curso | Ano |
|---|---|---|---|
| SILVA, João | Apostila de Visualização de Dados | Universidade XYZ | 2020 |
| OLIVEIRA, Maria | Introdução à D3.js | Curso Online de Data Science | 2021 |
| Autor/Organização | Site | Descrição | Disponível em |
|---|---|---|---|
| D3.js | D3.js - Data-Driven Documents | Biblioteca JavaScript para visualização de dados | https://d3js.org/ |
| W3Schools | W3Schools | Recursos de aprendizado para desenvolvimento web | https://www.w3schools.com/ |
| MDN Web Docs | MDN Web Docs | Documentação e tutoriais sobre desenvolvimento web | https://developer.mozilla.org/ |
| Autor | Título | Publicação | Ano | Endereço |
|---|---|---|---|---|
| TUFTE, Edward | The Visual Display of Quantitative Information | Graphics Press | 1983 | Link |
| ENGEBRETSEN, Martin; KENNEDY, Helen | Data Visualization in Society | Amsterdam University Press | 2020 | Link |
| Autor | Título | Evento | Ano | Endereço |
|---|---|---|---|---|
| GONÇALVES, Pedro | Visualização de Dados com D3.js | Workshop de Data Science | 2019 | Local |
| FERNANDES, Ana | Técnicas Avançadas de Visualização de Informação | Congresso Brasileiro de Informática | 2018 | Local |
| Autor | Título | Evento | Ano | Endereço |
|---|---|---|---|---|
| SOUZA, Carla | Introdução à Visualização de Dados | Seminário de Tecnologia da Informação | 2020 | Local |
| LIMA, Roberto | Ferramentas Modernas de Visualização | Fórum de Inovação Tecnológica | 2021 | Local |