Collaborative knowledge graph platform for teams—manage RDF datasets, share scientific papers, and query with SPARQL.
  • Rust 83.6%
  • HTML 14.7%
  • Shell 0.8%
  • CSS 0.7%
  • Dockerfile 0.2%
Find a file
Daniel Hernandez 4ace63b9c7 #002: Add SHACL-driven entity editor with form generation
- Add per-dataset SHACL store to StoreManager (data/shacl/{dataset}/)
- Extend URL parser to support compound views (_shacl/_query, _shacl/_update)
- Add SHACL SPARQL endpoints for querying and updating shapes
- Create shacl.rs module: SPARQL-based shape parsing, form descriptors,
  input type derivation, IRI generators (UUID + slug), entity search
- Add entity editor page (/_ds/{dataset}/_entities) with:
  - Shape/class selector panel
  - Dynamic form generation from SHACL NodeShapes
  - Mandatory/optional field separation with "+" button
  - Per-field AJAX save via SPARQL Update
  - Stated/non-stated triple toggle
  - Entity search with autocomplete
  - UUID IRI generation
- Add /_api/search endpoint for entity autocomplete
- Add sparql_update_post_on_store() for SHACL store updates
- 13 new tests (46 total): SHACL parsing, form fields, stated/non-stated
  triples, entity search, IRI generators, path parsing, integration
2026-04-06 08:18:28 +00:00
bin Implement Phase 1: Axum web app with Docker deployment 2026-03-11 19:26:55 +01:00
docs Rename project from MLIPE to Concon 2026-04-04 21:44:41 +02:00
planning-history Rename design/ to planning-history/ with dated filenames 2026-03-11 19:49:11 +01:00
src #002: Add SHACL-driven entity editor with form generation 2026-04-06 08:18:28 +00:00
static Polish paper cards: h2 titles, Foundation buttons, team label, gray metadata 2026-04-02 08:49:58 +02:00
templates #002: Add SHACL-driven entity editor with form generation 2026-04-06 08:18:28 +00:00
.dockerignore Implement Phase 1: Axum web app with Docker deployment 2026-03-11 19:26:55 +01:00
.gitignore Ignore Emacs backup files 2026-04-04 21:46:37 +02:00
Cargo.lock #001: Upgrade Oxigraph from 0.4.x to 0.5.x with RDF 1.2 support 2026-04-05 16:28:48 +00:00
Cargo.toml #001: Upgrade Oxigraph from 0.4.x to 0.5.x with RDF 1.2 support 2026-04-05 16:28:48 +00:00
concon.example.toml Rename project from MLIPE to Concon 2026-04-04 21:44:41 +02:00
Dockerfile Implement Phase 1: Axum web app with Docker deployment 2026-03-11 19:26:55 +01:00
LICENSE Update LICENSE holder with name, email, and ORCID 2026-04-04 19:56:08 +02:00
ontology.org Implement Phase 1: Axum web app with Docker deployment 2026-03-11 19:26:55 +01:00
README.org Implement Phase 1: Axum web app with Docker deployment 2026-03-11 19:26:55 +01:00
system.example.ttl Update system.example.ttl with full vocabulary reference 2026-03-31 03:40:24 +02:00

MLIPE

MLIPE is machine learned interatomic potentials environment. It integrates different tools (e.g., SemASE) in a workflow that assists researchers and research teams to develop machine learned interatomic potentials (MLIPs).

Note: SemASE is a project providing an RDF representation to object and classes from the Atomic Simulation Environment. The repository is still private on the Web, but can be accessed on the sibling directory of this directory.

Architecture

MLIPE is an axum web application that allow users to create and query knowledge graph repositories, query them, and save their research output in the graph, shared working storages (e.g., attached storages), and in long-term preservation dataset services (e.g., Dataverse). The information about users, roles, and repositories is saved in a single RDF store managed with the Oxigraph library. Depending on their roles, users can create-edit-delete-read repositories, define new users, and define working groups. Users will have credentials (username and password) to access the web application and to query each SPARQL endpoint via de SPARQL protocol.

SPARQL query editor

Users can edit and execute SPARQL queries through an embedded YASGUI (Yet Another SPARQL GUI) interface. YASGUI is a client-side JavaScript library that provides syntax highlighting, autocompletion, prefix management, and multiple result views. It works with any standard SPARQL endpoint, making it a natural fit for our Oxigraph-backed repositories. The Axum backend serves the YASGUI static assets and proxies SPARQL requests to the appropriate repository endpoint.

Running

Local development

cargo run

The server starts on http://localhost:3000.

Docker

docker build -t mlipe .
docker run -p 3000:3000 mlipe

Testing

Unit tests

cargo test

Docker smoke tests

A smoke test script builds the Docker image, starts a container, tests all API endpoints, and cleans up:

./bin/test-docker.sh

Development roadmap

  1. Setup the an environment to start a new axum project.
  2. Define an ontology for managing users, RDF repositories, roles, permissions, and teams.
  3. Integrate YASGUI as the SPARQL query editor, served as static assets from the Axum application.