Depicting Vocabulary Summaries(Devos) is a tool that generates a visual summary from a given ontology. Devos is built on top of Mermaid syntax which is a Markdown-inspired tool that renders text in diagrams and it uses SPARQL Query Language over the ontology generating a visual summary. It's based on three approaches.
- OntMet. Uses Ontology Meta Data to find matching classes.
- ClaFreq. Relies on Class Frequency in the ontology as the importance signal.
- LabLen. Utilizes Label Length of the classes as the importance signal. The intuition is that importance classes have richer metadata than less important classes.
- Generate summary diagrams.
- Allows the user to use the summarisation technique (e.g., using meta data, class frequency, or label length)
- Enrich ontologies with labels for the classes that are missing them.
pip install devos-py
There are three main ways to use Devos. Web application, Python Library, and as a standalone application (CLI).
The web application is built using Flask. To run it, you can use the following command: python -m web.app
. This will start the server on 127.0.0.1:5000
. You can also pass the port as a parameter.
You have three main functions: meta_workflow
, freq_workflow
, and leng_workflow
. The all expects the path to the ontology, the output path to the summary diagram, and the maximum number of classes topn
(referred to it in paper as k
).
usage: gister.py [-h] -i INPUT [-o OUTPUT] [-t] [-d] [-a] [-n TOPN] [-l LANG] [--object-property]
[-m MAXOPTIONS] [-f] [-g] [-r TOPR] [--soft] [--debug]
Get a Gist of the ontology
options:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Ontology file.
-o OUTPUT, --output OUTPUT
Output file.
-t, --title To look into titles.
-d, --description To look into description.
-a, --abstract To look into abstract.
-n TOPN, --topn TOPN The maximum number of relevant classes.
-l LANG, --lang LANG language tag. e.g., en
--object-property Whether to only use object property for getting the relevant properties relenvant
to the given meta
-m MAXOPTIONS, --maxoptions MAXOPTIONS
Maximum number of meta literal for each meta type (e.g., title)
-f, --freq Use frequency to fetch the most relevant classes and properties
-g, --leng Use the length to fetch the most relevant classes and properties
-r TOPR, --topr TOPR The maximum number of relations
--soft Also include classes related to the important classes
--debug To print debug information
There are three supported methods: OntMet, ClaFreq, and LabLen.
- Use the metadata of the ontology (OntMet method). Use the options
-t -d -a
, which stands for title, description, and abstract, respectively.
Examples:
python -m devos.gister -i data/ieswc_enriched/ck.ttl -t -d -a
python -m devos.gister -i data/ieswc_enriched/explanation-ontology.owl -t -d -a --topn 7
- To use the class frequency method (ClaFreq), include
--freq
option.
Examples:
python -m devos.gister -i data/ieswc_enriched/devops/core.ttl --freq --topn 7
python -m devos.gister -i data/ieswc_enriched/devops/core.ttl --freq --topn 7
python -m devos.gister -i data/ieswc/cocoon.ttl --freq
- To use the length of the class label, LabLen, include the option
--leng
.
Diagram Example:
classDiagram
Agent --> Document :interest
Person --> Document :publications
Thing --> Document :page
Agent --> Thing :topic_interest
Thing --> Agent :maker
Group --> Agent :member
To run unit tests
python -m unittest discover tests
- Ahmad Alobaid - (Ontology Engineering Group - UPM)
- Jhon Toledo - (Ontology Engineering Group - UPM)
- María Poveda Villalón - (Ontology Engineering Group - UPM)
- Oscar Corcho - (Ontology Engineering Group - UPM)
Ontology Engineering Group, Universidad Politécnica de Madrid.
DevoS is available under the permissive Apache License 2.0.
python -m build
twine check dist/*
twine upload dist/*