# Week 2

## Meeting

* when stuck, maybe try coding and see what we get from data and how we could improve
* think about what could be interesting and make some sketch
* for the calculator, use some examples to think how to develop the interface

## Issue

I think I am putting so many interactions together and lack a solid innovative point.

## Design Walking through

### Tasks

* Provide an overview to the dynamic process
  * hints to discover a "turning point".
* Help to gain insights from the dynamic network.
  * support comparisons between different periods

### Problems & Approaches

* How to explore the measures?
  * (simple) a line chart list
    * thumbnail: area chart
    * (click to expand) detail: line chart with hint dots on sudden changes
  * (for hd feature, maybe consider later) a connected scatter plot
* How to assure the aggregation level?
  * provide daily, weekly, monthly, annually, ... aggregation (checkbox)
    * a slider for user specified period length
  * highlight breakpoints, local minimum/maximum
  * drop unnecessary hints
* How to compare one graph in different periods or two graphs?
  * align the node link diagram and timeline together.

## Pipeline

{% tabs %}
{% tab title="Basic" %}

1. Data selection (upload, choose from existed ones)
2. View timeline

   compare measures, view hints
3. Brush interested places

   it may be a dynamic process to see how the graph grows
4. View the node link diagram.
5. Iteration
6. Click on the interested node and expand another node-centered view.
   {% endtab %}

{% tab title="Enhance" %}

* Measure Configuration
  * delete
  * add new measures through calculator
* Details
  * brush/select a subgraph and view according measures
* Comparison
  * different graphs
  * different periods
    {% endtab %}

{% tab title="Node" %}

1. View the local measures of the specified node.
   * maybe show in a smaller scale
2. Highlight nodes tightly connected to the node.
   * many connections
   * similar behaviors
3. Use a connected scatter plot for comparison
   {% endtab %}
   {% endtabs %}

## Others

### Interactive Graph Calculator

* Motivation: There are several graph libraries with convenient functions for graph manipulation. However, for inexperienced users from domains like history, it remains hard for them to learn a programming language and solve problems from APIs. Based on the observation that most graph measures follow a simple scheme, typically by counting nodes satisfying certain properties, we would like to see how could we simplify the process with a user-friendly interface. And we hope to enhance the usability of an exploratory graph data analysis interface with such an interactive calculator.

#### Potential Function List

* built-in functions: well-established metrics
  * a search bar with a drop-down function list
* calculator: maybe something like a children coding block such as "[scratch](https://scratch.mit.edu/)"
  * **mask** (filter, map to a subgraph) and **grouper** (binning the graph)
    * &#x20;$$M(G)= { v, l \in G| S(v)\ is \  true \wedge K(l) \ is \ true}$$&#x20;
      * node, link selection in multivariate graph
    * $$B(G)= \[ { M\_i(G) }]$$
      * slicing the time or grouping according to some ordinal attributes
        * may be combined with a timeline / value bar chart
      * require an aggregation further
  * **selector**
    * masked neighborhood (n-hop)
  * **unitary operator** $$f(Graph) = value$$&#x20;
    * count
      * node, link, unique link, weighted sum, motif (created from sketch)
    * return a list of values when given a list of graphs
  * **binary operator** $$\circ  := + - \times \div \delta$$&#x20;
    * &#x20;$$f = f\_1(G)  \circ f\_2(G) \circ ... \circ f\_n(G)$$&#x20;
  * **aggregation operator** (based on a list of values)
    * average, extreme, standard deviance ...

#### Examples & Thoughts

Pending!

* **diameter**: the longest distance of two nodes in a graph
  * oops! distance pair is undefined!
* **clustering coefficient**
*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://measures.gitbook.io/multiple-measures/progress/untitled.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
