Research papers and analyses exploring the LiaScript open-source ecosystem β covering adoption patterns, collaboration networks, feature usage, and community structure.
| Subproject | Type | Focus |
|---|---|---|
DELFI2026_usage_patterns |
Conference paper | Feature adoption analysis β which LiaScript features are actually used by course creators? |
journal_collaboration |
Journal paper | Collaboration and content reuse patterns in decentralized OER |
conference_development |
Conference paper | User segmentation and implications for platform development |
contributor_graph |
Network analysis | Contributor-repository network β are courses isolated or connected through "super users"? |
liascript_course |
Interactive course | Data-driven overview of the LiaScript ecosystem |
author_map |
Visualization | Geographic distribution of LiaScript committers (interactive map) |
Shared resources (bibliography, figures, config) are in papers/shared/.
The dataset (~3.5 GB) is not included in this repository. It contains crawled LiaScript course data from GitHub (March 2026, 3,672 validated courses).
Download: https://ificloud.xsitepool.tu-freiberg.de/index.php/s/52zRDccb5AP6JFL
The data path is configured in papers/shared/config.yaml.
# Verify installations
python3 --version # Need 3.9+
pandoc --version
xelatex --version
node --version # For Mermaid diagrams
mmdc --version # For Mermaid diagramsUbuntu/Debian:
sudo apt install pandoc texlive-xetex texlive-latex-extra chromium-browser
npm install -g @mermaid-js/mermaid-climacOS:
brew install pandoc node
brew install --cask mactex chromium
npm install -g @mermaid-js/mermaid-cliOption A: Using Pipenv (Recommended)
cd /home/sz/Desktop/Python/LiaScript_Paper
pipenv install
pipenv shellOption B: Virtual Environment
cd /home/sz/Desktop/Python/LiaScript_Paper
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtThe project includes a Pandoc Lua filter for Mermaid diagrams (paper/filters/mermaid.lua).
Test Mermaid installation:
mmdc --version
# If "command not found":
npm install -g @mermaid-js/mermaid-cliTroubleshooting Mermaid:
- "mmdc not found": Add npm to PATH:
export PATH="$PATH:$(npm bin -g)" - "No usable sandbox": Run with
--no-sandboxflag (handled automatically) - "Could not find Chrome":
export PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
python run_pipeline.pyOutput:
paper/build/paper.md- Markdown versionpaper/build/paper.tex- LaTeX versionpaper/build/paper.pdf- PDF versionmermaid-images/- Generated diagram images
This project provides a complete workflow for:
- Data Loading: Automatically loads and merges LiaScript datasets
- Analysis: Runs comprehensive analyses:
- Descriptive statistics
- Feature usage patterns
- Collaboration networks
- Temporal trends
- Topic clustering
- License compliance
- Paper Generation: Generates documents from Jinja2 templates
- Multi-Format Export: Outputs in Markdown, LaTeX, and PDF with embedded Mermaid diagrams
LiaScript_Paper/
βββ config/
β βββ paper_config.yaml # Main configuration
β
βββ data/
β βββ raw/liascript_data/ # Symlink to LiaScript data
β βββ processed/ # Analysis caches
β
βββ analyses/ # Analysis modules
β βββ descriptive_stats.py
β βββ feature_analysis.py
β βββ collaboration_analysis.py
β βββ temporal_analysis.py
β βββ topic_clustering.py
β βββ network_analysis.py
β βββ license_analysis.py
β
βββ paper/
β βββ filters/
β β βββ mermaid.lua # Pandoc Lua filter for diagrams
β βββ templates/ # LaTeX templates
β βββ sections/ # Jinja2 section templates
β βββ figures/ # Generated figures
β βββ build/ # Generated papers
β
βββ pipeline/ # Core pipeline modules
β βββ data_loader.py
β βββ analysis_runner.py
β βββ paper_builder.py
β
βββ run_pipeline.py # Main entry point
βββ README.md
Edit config/paper_config.yaml to configure:
paper:
title: "Your Paper Title"
authors:
- name: "Author Name"
affiliation: "Institution"
email: "email@example.com"
data:
base_path: "/path/to/LiaScript/data"
analyses:
enabled:
- descriptive_stats
- feature_analysis
- collaboration_analysis
- temporal_analysis
- license_analysis
output:
format:
- markdown
- latex
- pdf# Use custom config
python run_pipeline.py --config my_config.yaml
# Skip analysis (use cached results)
python run_pipeline.py --skip-analysis
# Analysis only (no paper generation)
python run_pipeline.py --skip-paper
# Debug mode
python run_pipeline.py --log-level DEBUG- Create file in
analyses/:
# analyses/my_analysis.py
def run_analysis(df, config):
results = {}
# ... your analysis ...
return results- Enable in
config/paper_config.yaml:
analyses:
enabled:
- my_analysis- Create section template in
paper/sections/:
<!-- 05_my_section.md.jinja -->
## My Analysis Results
{{ results.my_analysis.key_finding }}In any .md.jinja template, use standard Mermaid syntax:
```mermaid
flowchart TB
A[Start] --> B[Process]
B --> C[End]
```The Lua filter automatically converts them to images during PDF generation.
Expected data files in data/raw/liascript_data/:
LiaScript_files.p- Main file dataset with license infoLiaScript_commits.p- Commit historyLiaScript_metadata.p- Extracted metadataLiaScript_content.p- Full text contentLiaScript_ai_meta.p- AI-generated metadataLiaScript_repositories.p- Repository info
The pipeline addresses five main research questions:
RQ1: How widespread is LiaScript adoption in the international education community?
RQ2: What characterizes LiaScript content in terms of structure and features?
RQ3: What collaboration patterns exist in LiaScript course development?
RQ4: What lifecycle and sustainability patterns emerge?
RQ5: How open are LiaScript materials in terms of licensing?
See config/paper_config.yaml for detailed sub-questions.
Pandoc not found:
# Ubuntu/Debian
sudo apt install pandoc
# macOS
brew install pandocXeLaTeX errors:
# Install full TeX distribution
sudo apt install texlive-full # Ubuntu
brew install --cask mactex # macOSFilter errors:
- Ensure
mmdcis installed:npm install -g @mermaid-js/mermaid-cli - Check Lua filter exists:
ls paper/filters/mermaid.lua
Image generation fails:
- Install Chromium:
sudo apt-get install chromium-browser - Set browser path:
export PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
Verify symlink:
ls -la data/raw/liascript_data/
# Should point to: /media/sz/Data/Connected_Lecturers/LiaScript/rawFix broken symlink:
rm data/raw/liascript_data
ln -s /path/to/actual/data data/raw/liascript_data# Ensure correct directory and environment
cd LiaScript_Paper
source venv/bin/activate # or: pipenv shell
python run_pipeline.pyUse Jupyter notebooks:
jupyter notebook notebooks/from pipeline.data_loader import LiaScriptDataLoader
loader = LiaScriptDataLoader("/path/to/data")
df = loader.load_all()
df.head()pytest tests/After running the pipeline, verify:
# Check PDF was generated
ls -lh paper/build/paper.pdf
# Verify reasonable file size (1-2 MB, not 50KB!)
du -h paper/build/paper.pdf
# Check images were embedded
pdfimages -list paper/build/paper.pdf
# View the PDF
xdg-open paper/build/paper.pdf # Linux
open paper/build/paper.pdf # macOS[Specify license]
[Your contact information]
If you use this pipeline in your research, please cite:
[Citation information to be added]
- Built on data from the LiaScript Community Analysis project
- Mermaid diagram support via Pandoc Lua filter
- Pipeline framework inspired by reproducible research best practices