Skip to content

multilingualprogramming/MotusArtium

Repository files navigation

MotusArtium

MotusArtium is a GraphQL-first art history observatory built on top of Wikidata and the Multilingual programming language.

It combines a browser shell, a Multilingual runtime, and dedicated Wikidata query documents to let users explore:

  • art movements
  • artists
  • artworks
  • museums and galleries
  • depicted subjects

Current Features

  • Graph-first exploration with a central constellation view.
  • Search-based entry through Wikidata REST search, followed by GraphQL-driven expansion.
  • Dedicated entity loading for movements, artists, artworks, museums, and subjects.
  • Query-aware UI with visible active document, variables, response shape, and status.
  • Footer context for selected entity, exploration trail, temporal rail, and live query preview.
  • URL deep-linking such as ?entity=Q40415&type=movement, ?entity=Q160112&type=museum, and mode-aware links like ?entity=Q878985&type=movement&mode=temporal-river.
  • Multilingual-oriented shell and runtime integration built around the French-first Multilingual language source.

How It Works

The app is intentionally GraphQL-first.

  • Query documents live in graphql/.
  • The main data path uses Wikidata's wbgraphql endpoint.
  • REST is used only where it is the better tool:
    • free-text search via wbsearchentities
    • entity claim lookup for search-result type disambiguation via wbgetentities

That means GraphQL remains the core retrieval model for expansion, relationships, and UI state, while REST supports discovery and classification around the edges.

Main Entry Points

  • src/principal.multi: Multilingual application entrypoint
  • src/ui/etat.multi: application state, entity loaders, graph cache, and pagination logic in Multilingual
  • app.js: browser-side shell adapter with a compatibility fallback for older bundles
  • bootstrap.js: startup, URL bootstrapping, REST search wiring, and detail-panel fallback logic
  • index.html: static shell layout
  • styles.css: shell styling
  • graphql/: dedicated Wikidata query documents

Query Inventory

Current query documents include:

  • movement_details.graphql
  • artists_by_movement.graphql
  • artist_details.graphql
  • artist_influences.graphql
  • artworks_by_artist.graphql
  • artwork_details.graphql
  • museum_details.graphql
  • artworks_by_museum.graphql
  • artworks_by_subject.graphql
  • movements_catalog.graphql
  • movement_diffusion.graphql
  • movement_evolution.graphql
  • entity_label.graphql
  • countries_coordinates.graphql

Local Build

Requirements:

  • Python 3.12+
  • a local checkout of the Multilingual toolchain

Build:

git clone https://github.com/multilingualprogramming/multilingual
cd multilingual
pip install -e ".[wasm]"


https://github.com/multilingualprogramming/MotusArtium
cd MotusArtium
python -m multilingualprogramming build-ui-bundle src/principal.multi --lang fr --out-dir _build
copy _build\\bundle.js bundle.js
python -m http.server 8000

Then open http://localhost:8000.

To reproduce the GitHub Pages staging flow from this repository, use:

python3 scripts/build_static_site.py
python3 tests/smoke_static_site.py _site

The build script also reports whether the generated Multilingual bundle provides ui.etat; current builds should report yes.

Repository Layout

Documentation

About

an interactive semantic atlas exploring the evolution, connections, and movements of art across time, and ideas

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors