Utility library for the work with ontologies.
Project description
Ontolutils - Object-oriented "Things"
.. image:: https://github.com/matthiasprobst/ontology-utils/actions/workflows/tests.yml/badge.svg :target: https://github.com/matthiasprobst/ontology-utils/actions/workflows/tests.yml/badge.svg :alt: Tests Status
.. image:: https://codecov.io/gh/matthiasprobst/ontology-utils/branch/main/graph/badge.svg :target: https://codecov.io/gh/matthiasprobst/ontology-utils/branch/main/graph/badge.svg :alt: Coverage
.. image:: https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue :target: https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue :alt: pyvers Status
This package helps you in generating ontology-related objects and let's you easily create JSON-LD files.
Quickstart
Installation
Install the package:
.. code-block:: bash
pip install ontolutils
Usage
~~~~~
Imagine you want to describe a `prov:Person` with a first name, last name and an email address but writing
the JSON-LD file yourself is too cumbersome *and* you want validation of the parsed parameters. The package
lets you design classes, which describe ontology classes like this:
.. code-block:: python
from ontolutils import Thing, urirefs, namespaces
from pydantic import EmailStr
from rdflib import FOAF
@namespaces(prov="http://www.w3.org/ns/prov#",
foaf="http://xmlns.com/foaf/0.1/")
@urirefs(Person='prov:Person',
firstName='foaf:firstName',
lastName=FOAF.lastName,
mbox='foaf:mbox')
class Person(Thing):
firstName: str
lastName: str = None
mbox: EmailStr = None
p = Person(id="local:cde4c79c-21f2-4ab7-b01d-28de6e4aade4",
firstName='John', lastName='Doe')
p.model_dump_jsonld()
Now, you can instantiate the class and use the `model_dump_jsonld()` method to get a JSON-LD string:
.. code-block:: json
{
"@context": {
"owl": "http://www.w3.org/2002/07/owl#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"local": "http://example.org/",
"lastName": "http://xmlns.com/foaf/0.1/",
"prov": "http://www.w3.org/ns/prov#",
"foaf": "http://xmlns.com/foaf/0.1/"
},
"@id": "local:cde4c79c-21f2-4ab7-b01d-28de6e4aade4",
"@type": "prov:Person",
"foaf:firstName": "John",
"lastName": "Doe"
}
Please visit the `documentation <https://ontology-utils.readthedocs.io/en/latest/>`_ for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ontolutils-0.2.2.tar.gz.
File metadata
- Download URL: ontolutils-0.2.2.tar.gz
- Upload date:
- Size: 624.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b52505f77b67ad7a8a15a1f82a2f168101d5bff7ec3fcedfbdcfdd8202f7f14d
|
|
| MD5 |
61cb8695a0413f5cafafc2c5d68d8849
|
|
| BLAKE2b-256 |
4dfd1b8be277601ae919e100341ccf25d9bd74a7a1302aea2b6f3c6c60a0e2cb
|
File details
Details for the file ontolutils-0.2.2-py3-none-any.whl.
File metadata
- Download URL: ontolutils-0.2.2-py3-none-any.whl
- Upload date:
- Size: 654.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db46fcc998e3f99b9649d2ecb4b846d75dcfd88ddaf35bf244bce822d998042a
|
|
| MD5 |
e137626d347abf4b2330f6739b44ec78
|
|
| BLAKE2b-256 |
c233a98eac46b8ea4c777b0628379e2655c2e1495515535b3146a357caa81612
|