Git Product home page Git Product logo

drag-data-1930s's Introduction

Drag data in the 1930s

ci

A workflow will run and generate the visualization files in a different repository, so to see the final visualization, visit this website.

Running on local machines

Step 1. Clone the Correct Repository

This repository contains the source code but the most recent "compiled" network-app is located in the drag-network repository. The easiest thing is therefore to

$ git clone https://github.com/kallewesterling/drag-network

Step 2. Processing dataset

Since you are cloning the drag-network repository, you do not need to process the dataset as it already comes with the latest updated one.

To run the analysis, clone this package and run in your terminal:

$ python generate-cooccurrence-data.py

Step 3. Run server

Navigate into the cloned directory:

$ cd drag-network

Then open a local HTTP server:

$ python -m http.server

Note that this will only work on Python 3.

Who is the Researcher?

Kalle Westerling is a Ph.D. Candidate in Theatre and Performance at The Graduate Center, CUNY, where he works on a dissertation about the history and aesthetics of male-identified bodies in 20th-century burlesque and 21st-century boylesque. He is also the project manager for the NEH-funded project “Expanding Communities of Practice,” aimed at helping to create infrastructure for digital humanities across several higher education institutions across the U.S. Read more about Kalle Westerling on his website.

What is this dataset?

The dataset was created in a combination of a manual and automatic process, where searches were performed across a number of databases, results collated and PDF files/images of scanned newspapers were presented to the researcher (see below), who then manually coded all of the data into a data row for each person who occurred on that particular data in that particular newspaper.

The dataset can be seen here.

The data was manually processed into each column of each row as follows.

Each row has some central data assigned to it, which includes:

  • a date (in the format YYYY-MM-DD)
  • a name of the performer
  • a name of the venue
  • if not venue is mentioned but a city is mentioned, that name is filled out as well
  • a source

Optional data includes:

  • If there is a revue name mentioned, it is also noted here.
  • If there is a legal name mentioned for the given performer, the legal name is noted
  • If there is an alleged age mentioned for the given performer, the alleged age (and consequentially, the assumed birth year) are noted
  • ID number that identifies the source in the Entertainment Industry Magazine Archive (EIMA)
  • How the source was found through a search in newspapers.com
  • How the source was found through a search in Fulton archives
  • How the source was found through a search in an already existing archive
  • Edge comment, which refers to any comments on the source itself (meta)
  • Whether the data point shall be excluded from the final visualization
  • Any interesting quotes from source
  • Any interesting comments on the performer
  • Any interesting comments on the venue
  • Any interesting comments on the city
  • Any interesting comments on the revue

Cleaned up data includes:

  • Name of the performer
  • Name of the venue
  • Name of the city
  • Source

drag-data-1930s's People

Contributors

dependabot[bot] avatar kallewesterling avatar

Watchers

 avatar  avatar

drag-data-1930s's Issues

Add filters for more things

Edges could be filtered, say, by cities, venues, etc.

Nodes could also be sorted by any number of categories...

Create documentation

App side

sortedCentrality

Centralities in a nicely presented format, from the Python dataset:

sortedCentrality('betweenness_centrality', true)
    .map(node=>{
        return {
            'node_id': node.node_id,
            'centrality': node.centralities.betweenness_centrality_100x
        }
    });

To get betweenness centralities sorted descending for current graph, make sure to run setCurrentCentralities() before:

setCurrentCentralities();

sortedCentrality('betweenness_centrality', true, true)
    .map(node=>{
        return {
            'node_id': node.node_id,
            'centrality': node.currentCentralities.betweenness_centrality_100x
        }
    });

Frontend side

Screenshots and explanations of what each UI element does.

Adding auto-generated explanation of data

Old notes:

        color = three different categories of nodes (if you click them, they will turn red)
            if stickyNodes is on: if you drag the nodes, they will stick in the place where you've dragged them. If you don't desire this feature, just click here, and it will be removed and reset.

            minDegree = .........
            but if current degree is different = .........

        size of nodes: ("node size from current graph" is clicked) the nodes are scaled in relation to the other nodes on the chart. currentDegree is used instead of degree.

        If you click each node, you will see the centrality measures. Those are counted (and described here at 1000x) across the entire network, and are not generated dynamically, depending on the graph that you see in front of you.
            - betweenness
            - closeness
            - degree
            - eigenvector

        What about the placement of the nodes? This is taken care of by the "force simulation" [TODO: read this https://medium.com/@sxywu/understanding-the-force-ef1237017d5]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.