A Python library for working with the pivmeta ontology.
Project description
pivmetalib
A Python library and high-level interface to work with the pivmeta ontology. It allows to describe PIV recordings, software, hardware and other related entities in a state-of-the-art and good scientific practice compliant way.
The library depends on ontolutils, which provides the object-oriented interface to the ontology and the JSON-LD serialization.
Usage
Installation
The package is available on PyPI and can be installed via pip:
pip install pivmetalib
Example of describing a PIV software:
It is very helpful to provide a description of the used PIV software together with the PIV recording. This can be done
using the PIVSoftware
class from the pivmeta
module. The following example shows how to describe the OpenPIV
software. Put the resulting JSON-LD to your website, data repository or other places to make your data FAIR.
Other users or software can then easily understand and use your data.
from pivmetalib import pivmeta, prov
software = pivmeta.PIVSoftware(
author=prov.Organization(
name='OpenPIV',
url='https://github.com/OpenPIV/openpiv-python',
),
description='OpenPIV is an open source Particle Image Velocimetry analysis software written in Python and Cython',
software_version="0.26.0a0",
has_documentation='https://openpiv.readthedocs.io/en/latest/',
)
from pprint import pprint
pprint(software.model_dump(exclude_none=True)
This will result in the following JSON-LD representation:
{
"@context": {
"@import": "https://raw.githubusercontent.com/matthiasprobst/pivmeta/main/pivmeta_context.jsonld"
},
"@graph": [
{
"@id": "https://local-domain.org/9c0696ff-7b0f-43a5-9d36-afca62f0f374",
"@type": "prov:Organization",
"foaf:name": "OpenPIV",
"schema:url": "https://github.com/OpenPIV/openpiv-python"
},
{
"@id": "https://local-domain.org/82675f3e-8887-4a76-a62c-cc1119857735",
"@type": "Piv Software",
"schema:author": {
"@id": "https://local-domain.org/9c0696ff-7b0f-43a5-9d36-afca62f0f374"
},
"schema:description": "OpenPIV is an open source Particle Image Velocimetry analysis software written in Python and Cython",
"schema:softwareVersion": "0.26.0a0",
"sd:hasDocumentation": "https://openpiv.readthedocs.io/en/latest/"
}
]
}
Documentation and Usage
This library mainly implements the ontology in form of pydantic
model classes. The pivmeta ontology uses other
ontologies and builds on top of them. Thus, some central classes from ontologies like schema.org, prov, dcat and
m4i are implemented, too.
Practical examples on how to use the library can be found in docs-folder ( e.g. Describe a PIV recording).
Contribution
Contributions are welcome. Please open an issue or a pull request.
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
File details
Details for the file pivmetalib-0.1.0rc9.tar.gz
.
File metadata
- Download URL: pivmetalib-0.1.0rc9.tar.gz
- Upload date:
- Size: 40.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da4c28d264c6a6984c38ba1fc9e3d9e197806beda2eb8a1ec3baad81d52ca6e9 |
|
MD5 | 682beaa729bad40015da5c99812b23b2 |
|
BLAKE2b-256 | 147939aba8e33076c610cc211a7dbb76cf5fca911c3de31ffb061427d3cb7326 |
File details
Details for the file pivmetalib-0.1.0rc9-py3-none-any.whl
.
File metadata
- Download URL: pivmetalib-0.1.0rc9-py3-none-any.whl
- Upload date:
- Size: 40.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c823bf8bf93e4f08e247bc2b6f7b41c6b07d9ccf6bb39264e2a20f723568cea |
|
MD5 | 34b8585e66ad92e8bcb915d7a0e5bb88 |
|
BLAKE2b-256 | a4f5f2a5f6b818e42315c53848e46817327b58cc3fb4762dc25b3024f85ddebf |