Skip to content

FrancoisPapin/MLKN-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

197 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MLKN.lab β€” MultiLayer Knowledge Network Ideas Laboratory

Interactive D3 force-directed knowledge network maps across 10 academic disciplines.

🌐 Live site: francoispapin.github.io/mlkn-lab πŸ“š Author: FranΓ§ois Papin πŸ™ GitHub: github.com/FrancoisPapin πŸ“„ License: MIT License | Β© April 2026


Overview

MLKN.lab visualises the conceptual architecture of 10 academic disciplines as interactive force-directed networks built on D3.js v7. Each concept is a node (sized by academic centrality), each connection a weighted edge. The interdisciplinary map adds three analytical layers β€” Disciplines, Epistemic Roles, and Levels of Analysis β€” mapping the bridges between fields that produce the most scientifically generative knowledge.

Scientific Essay Summary

The twenty-first century's major challenges are structurally interdisciplinary. Network analysis of academic knowledge reveals that concepts with highest betweenness centrality β€” lying on paths between disciplinary clusters β€” generate disproportionate scientific value (Van Noorden, 2015; Leydesdorff & Rafols, 2011). MLKN.lab maps this landscape, identifying major interdisciplinary nexuses: Neuro-Cognitive-Education, AI-Language-Philosophy, Climate-Justice-Anthropology, and Systems-Emergence-Consciousness. See the full essay on the homepage.


Knowledge Networks

# Discipline Concepts Links
1 Philosophy 74 70
2 Education Science 60 55
3 Human Rights 61 45
4 Environmental Science 50 42
5 Computer Science 43 38
6 Neuroscience 55 41
7 Cognitive Psychology 50 39
8 Language Science 50 39
9 Anthropology 49 38
10 Systems Science 47 42
11 Interdisciplinary 75+ 120+

Interactive Features

  • πŸ–± Drag nodes β€” reorganise the network layout
  • πŸ” Scroll/pinch β€” zoom in/out with smooth transitions
  • πŸ”Ž Search β€” real-time concept filtering
  • 🎨 Legend β€” click domains to isolate clusters
  • β˜… Hub highlight β€” highlight top-5 highest-degree nodes
  • ≑ Stats panel β€” network-level metrics (density, clustering, modularity, diameter, assortativity, hubs)
  • πŸ“Œ Node detail β€” click any node for per-node metrics (degree, weighted degree, local clustering coefficient, ego-network density, betweenness approximation)
  • ⌨ Keyboard β€” Tab to navigate, Enter/Space to select, Escape to close panels

Network Statistics (per map)

Each map computes and displays:

Metric Description
N (nodes) Total concepts in the network
E (edges) Total weighted connections
Density E / (NΓ—(Nβˆ’1)/2) β€” how densely connected
Avg Degree Mean connections per concept
Max Degree Highest-degree hub concept
Avg Clustering Coefficient Mean local transitivity
Modularity Q Cluster separation quality
Diameter Longest shortest path (BFS estimate)
Assortativity r Degree correlation (Pearson)
Top Hubs 5 highest-degree concepts

File Structure

mlkn-lab/
β”œβ”€β”€ index.html                        # Homepage (essay + network grid)
β”œβ”€β”€ .nojekyll                         # Disables Jekyll processing
β”œβ”€β”€ _config.yml                       # baseurl: "" for relative paths
β”œβ”€β”€ LICENSE                           # MIT License
β”œβ”€β”€ README.md                         # This file
β”‚
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ style.css                     # Shared responsive CSS
β”‚   β”œβ”€β”€ mlkn.js                       # Shared JS: nav, D3 graph engine
β”‚   └── graph-stats.js               # Network statistics module
β”‚
β”œβ”€β”€ networks/
β”‚   β”œβ”€β”€ philosophy.html
β”‚   β”œβ”€β”€ education-science.html
β”‚   β”œβ”€β”€ human-rights.html
β”‚   β”œβ”€β”€ environmental-science.html
β”‚   β”œβ”€β”€ computer-science.html
β”‚   β”œβ”€β”€ neuroscience.html
β”‚   β”œβ”€β”€ cognitive-psychology.html
β”‚   β”œβ”€β”€ language-science.html
β”‚   β”œβ”€β”€ anthropology.html
β”‚   β”œβ”€β”€ systems-science.html
β”‚   β”œβ”€β”€ interdisciplinary.html        # 3-layer interdisciplinary hub
β”‚   β”‚
β”‚   β”œβ”€β”€ philosophy-data.js            # Node/link data (self-contained)
β”‚   β”œβ”€β”€ education-science-data.js
β”‚   β”œβ”€β”€ human-rights-data.js
β”‚   β”œβ”€β”€ environmental-science-data.js
β”‚   β”œβ”€β”€ computer-science-data.js
β”‚   β”œβ”€β”€ neuroscience-data.js
β”‚   β”œβ”€β”€ cognitive-psychology-data.js
β”‚   β”œβ”€β”€ language-science-data.js
β”‚   β”œβ”€β”€ anthropology-data.js
β”‚   β”œβ”€β”€ systems-science-data.js
β”‚   └── interdisciplinary-data.js     # Full multi-discipline dataset
β”‚
└── .github/
    └── workflows/
        └── deploy.yml                # GitHub Actions: deploy on push

Deployment Guide β€” Step by Step

Prerequisites

  • A GitHub account
  • Git installed on your computer (git-scm.com)

Step 1 β€” Create a GitHub repository

  1. Log in to github.com
  2. Click New repository (top-right "+" button β†’ "New repository")
  3. Repository name: mlkn-lab (exactly this, lowercase)
  4. Set to Public (required for free GitHub Pages)
  5. Do NOT initialize with README, .gitignore, or license (you already have files)
  6. Click Create repository

Step 2 β€” Upload the files

Option A β€” GitHub web interface (simplest):

  1. On the repository page, click "uploading an existing file"
  2. Extract the ZIP file on your computer
  3. Drag ALL files and folders into the upload area
    • ⚠️ You must also upload the hidden files: .nojekyll and .github/workflows/deploy.yml
    • On Mac/Linux: in Finder/Files, press Cmd+Shift+. to show hidden files
    • On Windows: in File Explorer, View β†’ Hidden items (check the box)
  4. At the bottom, type a commit message: Initial MLKN.lab deployment
  5. Click Commit changes

Option B β€” Git command line (recommended):

# Extract the zip to a folder called mlkn-lab
cd mlkn-lab

# Initialize git
git init

# Add all files (including hidden .nojekyll)
git add -A

# First commit
git commit -m "Initial MLKN.lab deployment"

# Link to your GitHub repository (replace FrancoisPapin with your username)
git remote add origin https://github.com/FrancoisPapin/mlkn-lab.git

# Push to GitHub
git push -u origin main

Step 3 β€” Enable GitHub Pages

  1. Go to your repository on GitHub
  2. Click Settings (top menu, gear icon)
  3. In the left sidebar, click Pages
  4. Under "Build and deployment":
    • Source: GitHub Actions ← select this
  5. Click Save

Step 4 β€” Trigger the deployment

The deployment runs automatically when you push. To check status:

  1. Click the Actions tab in your repository
  2. You should see a workflow called "Deploy MLKN.lab to GitHub Pages" running
  3. Wait 1–3 minutes for it to complete (green checkmark βœ“)
  4. Click the workflow run to see the deployment URL

Step 5 β€” Access your live site

Your site will be available at:

https://[your-github-username].github.io/mlkn-lab/

Example: https://francoispapin.github.io/mlkn-lab/


Troubleshooting

The graphs don't appear / blank pages

  • Check the browser console (F12 β†’ Console) for errors
  • Verify the D3 CDN loaded (you need internet access)
  • Confirm all data files are present in networks/

GitHub Pages shows 404

  • Wait 5 minutes after enabling Pages (propagation delay)
  • Verify Source is set to GitHub Actions in Settings β†’ Pages
  • Check Actions tab for failed workflow runs

Graphs look different on mobile

  • The layout adapts responsively; some panels (stats) hide on small screens
  • Pinch to zoom, tap nodes to open detail panel

The .nojekyll file is missing / Jekyll errors

  • On the GitHub web interface, create a new file named .nojekyll with no content
  • Or via command line: touch .nojekyll && git add .nojekyll && git commit -m "Add .nojekyll" && git push

Layout broken / CSS not loading

  • All paths in this project are document-relative (no leading /)
  • If you rename the repository, no changes needed β€” paths auto-adapt

Technology Stack

Layer Technology
Graph engine D3.js v7 (force-directed simulation)
Statistics Custom vanilla JS (graph-stats.js)
Styling CSS custom properties, CSS Grid, Flexbox
Fonts Google Fonts (Outfit + Space Mono)
Hosting GitHub Pages + GitHub Actions
Data Self-contained JS files (no API calls, no CORS issues)

Security

  • All external CDN scripts use SRI (Subresource Integrity) hashes
  • All external links use rel="noopener noreferrer"
  • No cookies, no tracking, no data collection
  • Content Security Policy meta tags on all pages
  • Zero eval() calls β€” strict mode throughout

Browser Compatibility

Tested and working on:

  • Chrome 90+ / Edge 90+ / Opera 75+
  • Firefox 90+
  • Safari 14+ (macOS and iOS)
  • Samsung Internet 14+
  • All major operating systems: macOS, Windows, Linux, Android, iOS

License

MIT License β€” Β© FranΓ§ois Papin, April 2026

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.


Selected References

  • Klein, J. T. (1990). Interdisciplinarity: History, theory, and practice. Wayne State University Press.
  • Leydesdorff, L., & Rafols, I. (2011). Indicators of the interdisciplinarity of journals. Journal of Informetrics, 5(1), 87–100.
  • Repko, A. F., & Szostak, R. (2021). Interdisciplinary research: Process and theory (4th ed.). SAGE.
  • Van Noorden, R. (2015). Interdisciplinary research by the numbers. Nature, 525, 306–307.
  • Watts, D. J., & Strogatz, S. H. (1998). Collective dynamics of 'small-world' networks. Nature, 393, 440–442.