Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f35a640
fix(viewer): select literals per property with language fallback
ValentinaPasqual Oct 15, 2026
26b6678
fix(publication): added docstrings in eng + replaced astro with mkdoc…
ValentinaPasqual Oct 15, 2026
9f3a12f
fix: nested statements rendering in ontology annotation
ValentinaPasqual Oct 16, 2026
b202ac8
feat(builder): configurable artefact name for root page and serializa…
ValentinaPasqual Oct 16, 2026
8dc0844
feat(export): export loaded artefact as triples, provenance always as…
ValentinaPasqual Oct 16, 2026
df7f805
fix(viewer): deterministic order for ontology header metadata
ValentinaPasqual Oct 16, 2026
dab07df
fix(viewer): deterministic sorting for statements in cards - alphabet…
ValentinaPasqual Oct 16, 2026
8471d4f
refactor(viewer): per-format YAML config, shared helpers and per-form…
ValentinaPasqual Oct 16, 2026
8d20be5
fix(owlViewer): moved parse restrictions in specifically in owl viewer
ValentinaPasqual Oct 16, 2026
a00a18a
fix(warnings): show reader warnings as toasts in serve, report.txt an…
ValentinaPasqual Oct 16, 2026
69757f6
fix(ui): responsive index form, wrap long IRIs, add shared footer
ValentinaPasqual Oct 16, 2026
6c4a679
chore(packaging): add keywords and Documentation/Issues URLs
ValentinaPasqual Oct 16, 2026
930b029
docs: explain base install vs [server] extra
ValentinaPasqual Oct 16, 2026
dce5ead
chore: align package version with release tag
ValentinaPasqual Oct 19, 2026
871f975
chore: update documentation for pypi publication
ValentinaPasqual Oct 19, 2026
d1a465a
chore: change lode description in README
ValentinaPasqual Oct 19, 2026
5820ca0
ci: only react to push-triggered test runs
ValentinaPasqual Oct 19, 2026
08ced5a
fix(builder): refuse writes outside the output folder
ValentinaPasqual Oct 19, 2026
e4c6b5a
fix(builder): use realpath guard for output writes
ValentinaPasqual Oct 19, 2026
31266f3
ci: drop manual trigger from docs deploy (for security warning)
ValentinaPasqual Oct 19, 2026
93c4ea5
new docker version
rempairamore Oct 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ htmlcov/
.idea/

# Docs site build artifacts
docs/node_modules/
docs/.astro/
docs/dist/
site/

# Runtime spool cache
**/spool/
Expand Down
21 changes: 15 additions & 6 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ on:
branches: [main]
paths:
- 'docs/**'
- 'mkdocs.yml'
workflow_run:
workflows: ["Run tests"]
types: [completed]
branches: [main]
workflow_dispatch:

permissions:
contents: read
Expand All @@ -21,7 +21,8 @@ jobs:
runs-on: ubuntu-latest
if: >
github.event_name != 'workflow_run' ||
github.event.workflow_run.conclusion == 'success'
(github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.event == 'push')
steps:
- uses: actions/checkout@v4

Expand All @@ -30,7 +31,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: coverage-report
path: docs/public/coverage
path: docs/coverage
github-token: ${{ secrets.GITHUB_TOKEN }}
run-id: ${{ github.event.workflow_run.id }}

Expand All @@ -39,13 +40,21 @@ jobs:
uses: actions/download-artifact@v4
with:
name: coverage-badge
path: docs/public/coverage
path: docs/coverage
github-token: ${{ secrets.GITHUB_TOKEN }}
run-id: ${{ github.event.workflow_run.id }}

- uses: withastro/action@v5
- uses: actions/setup-python@v5
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
with:
path: ./docs
python-version: "3.13"

- run: pip install mkdocs-material "mkdocs<2"

- run: mkdocs build --strict

- uses: actions/upload-pages-artifact@v3
with:
path: site

deploy:
needs: build
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
runs-on: ubuntu-latest
if: >
github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.event == 'push' &&
contains(github.event.workflow_run.head_commit.message, '[release]')
permissions:
contents: write
Expand Down Expand Up @@ -54,4 +55,4 @@ jobs:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
run: |
uv build
uv publish --token $UV_PUBLISH_TOKEN
uv publish --check-url https://pypi.org/simple/ --token $UV_PUBLISH_TOKEN
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ htmlcov/
.idea/

# Starlight/Astro
docs/node_modules/
docs/.astro/
docs/dist/
site/

# saved files
spool/

# claude
CLAUDE.md
.claude/
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ USER appuser

# Install dependencies first for better layer caching (frozen = exact lockfile)
COPY --chown=appuser:appuser pyproject.toml uv.lock README.md ./
RUN uv sync --frozen --no-dev --no-install-project
RUN uv sync --frozen --no-dev --no-install-project --extra server

# Application code
COPY --chown=appuser:appuser . .
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ISC License

Copyright (c) 2025 Valentina Pasqual, Sivio Peroni
Copyright (c) 2025 Valentina Pasqual, Silvio Peroni

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
Expand Down
65 changes: 52 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,31 @@
[![Coverage](https://opencitations.github.io/lode/coverage/coverage-badge.svg)](https://opencitations.github.io/lode/coverage/)
[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)

LODE 2.0 is an open source service that automatically extracts entities from semantic artefacts (OWL, RDF/RDFS, SKOS) and renders them, together with their textual definitions, as a human-readable HTML page designed for browsing and navigation through embedded links. This new reengineered version of LODE is maintained by OpenCitations.
Live Owl Documentation Enviroment (LODE) is an open source service that automatically extracts entities from semantic artefacts (OWL, RDF/RDFS, SKOS) and renders them, together with their textual definitions, as a human-readable HTML page designed for browsing and navigation through embedded links. This new reengineered version of LODE is maintained by OpenCitations.

**Try it online:** a hosted instance of the web service is available at https://lode.opencitations.net/, with no installation needed.


## Installation

```bash
pip install lode
pip install oc-lode

# with the web service (`lode serve`)
pip install "oc-lode[server]"
```

## Usage
## Usage

```python
from lode import example_function
```bash
# Build static documentation from an ontology URL or a local file
lode build --url <url> --read-as <owl|rdf|skos> [--out ./docs] [--lang en] [--artefact-name index] [--imported] [--closure]
lode build --file <path> --read-as <owl|rdf|skos> [--out ./docs]

result = example_function()
print(result)
# Run the web service locally (requires the [server] extra)
lode serve --port 8000
```



## Documentation

Full documentation is available at: https://opencitations.github.io/lode/
Expand Down Expand Up @@ -74,14 +80,47 @@ Replace `latest` with the desired version tag.

The app will be available at `localhost:8080`.


<!-- ### Running tests
## Running tests

```bash
uv run pytest tests/
```

### Building documentation locally
## How to cite

If you use LODE, please cite both the paper and the software:

Pasqual, V., Nazari, A., Peroni, S. (2026). Supporting the understanding of ontologies for scientific knowledge graphs with the new version of LODE. In *Proceedings of the 6th International Workshop on Scientific Knowledge: Representation, Discovery, and Assessment (Sci-K 2026), co-located with the 25th International Semantic Web Conference (ISWC) 2026, Bari, Italy*, CEUR Workshop Proceedings, Vol. 4291, pp. 12–26. https://ceur-ws.org/Vol-4291/paper1.pdf

```bibtex
@inproceedings{pasqual2026lode,
author = {Pasqual, Valentina and Nazari, Ahmadreza and Peroni, Silvio},
title = {Supporting the Understanding of Ontologies for Scientific Knowledge Graphs with the New Version of LODE},
booktitle = {Proceedings of the 6th International Workshop on Scientific Knowledge: Representation, Discovery, and Assessment (Sci-K 2026), co-located with the 25th International Semantic Web Conference (ISWC) 2026, Bari, Italy},
series = {CEUR Workshop Proceedings},
volume = {4291},
pages = {12--26},
publisher = {CEUR-WS.org},
issn = {1613-0073},
year = {2026},
url = {https://ceur-ws.org/Vol-4291/paper1.pdf}
}
```

To cite the software (all versions), use this BibTeX entry:

```bibtex
@software{lode,
author = {Pasqual, Valentina and Peroni, Silvio and Nazari, Ahmadreza},
title = {LODE - Live OWL Documentation Environment},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.21805185},
url = {https://github.com/opencitations/lode}
}
```

<!-- ### Building documentation locally

```bash
cd docs
Expand All @@ -91,4 +130,4 @@ npm run dev

## License

This project is licensed under the ISC License - see the [LICENSE.md](LICENSE.md) file for details.
This project is licensed under the ISC License - see the [LICENSE.md](https://github.com/opencitations/lode/blob/main/LICENSE.md) file for details.
21 changes: 0 additions & 21 deletions docs/.gitignore

This file was deleted.

22 changes: 0 additions & 22 deletions docs/AGENTS.md

This file was deleted.

22 changes: 0 additions & 22 deletions docs/CLAUDE.md

This file was deleted.

49 changes: 0 additions & 49 deletions docs/README.md

This file was deleted.

10 changes: 5 additions & 5 deletions docs/src/content/docs/api/endpoints.md → docs/api/endpoints.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: API Endpoints
description: LODE REST API reference
---
# API endpoints

The API is part of the web service and needs the `[server]` extra
(`pip install "oc-lode[server]"`, see [Getting started](../getting_started.md#which-install-do-i-need)).

Interactive docs available at `/docs` (Swagger) and `/redoc` (ReDoc) when the server is running.

Expand All @@ -19,7 +19,7 @@ Render an artefact as HTML or RDF.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `read_as` | enum | yes | `owl` \| `rdf` \| `skos` |
| `read_as` | enum | yes | `owl` \| `rdf` \| `skos` - Currently only `owl` is available|
| `url` | string | one of | Public http(s) URL |
| `upload_id` | string | one of | Token from a previous upload |
| `resource` | string | no | IRI of a single resource |
Expand Down
41 changes: 0 additions & 41 deletions docs/astro.config.mjs

This file was deleted.

Loading
Loading