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.
Metadata
Release files for ontolutils 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ontolutils-0.2.2.tar.gz | 624.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ontolutils-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / ontolutils-0.2.2.tar.gz
| Download URL | ontolutils-0.2.2.tar.gz |
|---|---|
| Size | 624.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b52505f77b67ad7a8a15a1f82a2f168101d5bff7ec3fcedfbdcfdd8202f7f14d
|
|
BLAKE2b-256 checksum How to use checksums |
4dfd1b8be277601ae919e100341ccf25d9bd74a7a1302aea2b6f3c6c60a0e2cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.18
|
Release files / ontolutils-0.2.2-py3-none-any.whl
| Download URL | ontolutils-0.2.2-py3-none-any.whl |
|---|---|
| Size | 654.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
db46fcc998e3f99b9649d2ecb4b846d75dcfd88ddaf35bf244bce822d998042a
|
|
BLAKE2b-256 checksum How to use checksums |
c233a98eac46b8ea4c777b0628379e2655c2e1495515535b3146a357caa81612
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.18
|