Skip to main content

Utility library for the work with ontologies.

Project description

Ontolutils - Object-oriented "Things"

Tests Status Coverage Documentation Status 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:

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:

from pydantic import EmailStr, Field
from pydantic import HttpUrl, model_validator

from ontolutils import Thing, urirefs, namespaces, as_id


@namespaces(prov="http://www.w3.org/ns/prov#",
            foaf="http://xmlns.com/foaf/0.1/")
@urirefs(Person='prov:Person',
         firstName='foaf:firstName',
         last_name='foaf:lastName',
         mbox='foaf:mbox')
class Person(Thing):
    firstName: str
    last_name: str = Field(default=None, alias="lastName")  # you may provide an alias
    mbox: EmailStr = None
    orcidId: HttpUrl = Field(default=None, alias="foaf:orcidId")

    # the following will ensure, that if orcidId is set, it will be used as the id
    @model_validator(mode="before")
    def _change_id(self):
        return as_id(self, "orcidId")


p = Person(id="https://orcid.org/0000-0001-8729-0482",
           firstName='Matthias', last_name='Probst')
# as we have set an alias, we can also use "lastName":
p = Person(id="https://orcid.org/0000-0001-8729-0482",
           firstName='Matthias', lastName='Probst')
# The jsonld representation of the object will be the same in both cases:
p.model_dump_jsonld()

Now, you can instantiate the class and use the model_dump_jsonld() method to get a JSON-LD string:

{
  "@context": {
    "owl": "http://www.w3.org/2002/07/owl#",
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
    "prov": "http://www.w3.org/ns/prov#",
    "foaf": "http://xmlns.com/foaf/0.1/"
  },
  "@id": "https://orcid.org/0000-0001-8729-0482",
  "@type": "prov:Person",
  "foaf:firstName": "Matthias",
  "foaf:lastName": "Probst"
}

Documentation

Please visit the documentation for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ontolutils-0.7.1.tar.gz (99.8 kB view details)

Uploaded Source

Built Distribution

ontolutils-0.7.1-py3-none-any.whl (97.4 kB view details)

Uploaded Python 3

File details

Details for the file ontolutils-0.7.1.tar.gz.

File metadata

  • Download URL: ontolutils-0.7.1.tar.gz
  • Upload date:
  • Size: 99.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for ontolutils-0.7.1.tar.gz
Algorithm Hash digest
SHA256 daff2e1f05e32cb0399653d716849b67d44c401a4a0f68c76db40d3d6740e321
MD5 4cf003c6189dec3bbd3dace9016f1240
BLAKE2b-256 164fbc6aaa63427105e014888996201360438ec6a0a68de6d7b8c1e8af950dad

See more details on using hashes here.

File details

Details for the file ontolutils-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: ontolutils-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 97.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for ontolutils-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 02ea7c5897487aa0944f797c613e655af34cd32b4c8a59538d71d90461447af2
MD5 4109969cd0554cea34ca1c5a85133c48
BLAKE2b-256 5e5792b69cf829e77e68940166d5535985a360c8b7f39c43b31125e9101e3b9d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page