- Rust 83.6%
- HTML 14.7%
- Shell 0.8%
- CSS 0.7%
- Dockerfile 0.2%
- 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
|
||
|---|---|---|
| bin | ||
| docs | ||
| planning-history | ||
| src | ||
| static | ||
| templates | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| concon.example.toml | ||
| Dockerfile | ||
| LICENSE | ||
| ontology.org | ||
| README.org | ||
| system.example.ttl | ||
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
- Setup the an environment to start a new axum project.
- Define an ontology for managing users, RDF repositories, roles, permissions, and teams.
- Integrate YASGUI as the SPARQL query editor, served as static assets from the Axum application.