Skip to main content

Lightweight data-centric framework for working with scientific data

Project description

DLite

A lightweight data-centric framework for semantic interoperability

PyPi CI tests Documentation

DLite is a C implementation of the SINTEF Open Framework and Tools (SOFT), which is a set of concepts and tools for using data models (aka Metadata) to efficiently describe and work with scientific data.

DLite overview

The core of DLite is a framework for formalised representation of data described by data models (called Metadata or Entity in DLite). On top of this, DLite has a plugin system for various representations of the data in different formats and storages, as well as bindings to popular languages like Python, mappings to ontological concepts for enhanced semantics and a set of tools.

Documentation

The official documentation for DLite can be found on https://sintef.github.io/dlite/.

Installation

DLite is available on PyPI and can be installed with pip

pip install dlite-python

For alternative installation methods, see the installation instructions.

Usage

All data in DLite is represented by a instance, which is described by a simple data model (aka Metadata). An Instance is identified by a unique UUID and have a set of named dimensions and properties. The dimensions are used to describe the shape of multi-dimensional properties.

DLite Metadata are identified by an URI and have an (optional) human readable description. Each dimension is given a name and description (optional) and each property is given a name, type, shape (optional), unit (optional) and description (optional). The shape of a property refers to the named dimensions. Foe example, a Metadata for a person serialised in YAML may look like:

uri: http://onto-ns.com/meta/0.1/Person
description: A person.
dimensions:
  nskills: Number of skills.
properties:
  name:
    type: string
    description: Full name.
  age:
    type: float32
    unit: year
    description: Age of person.
  skills:
    type: string
    shape: [nskills]
    description: List of skills.

Assume that you have file Person.yaml with this content. In Python, you can load this Metadata with

import dlite
Person = dlite.Instance.from_location("yaml", "Person.yaml", options="mode=r")

where the first argument is the "driver", i.e. the name of storage plugin to use for loading the Metadata. The options argument is optional. By providing "mode=r" you specify that the storage is opened in read-only mode.

You can verify that Person is a Metadata

>>> isinstance(Person, dlite.Metadata)
True

We can create an instance of Person with

homes = Person(
    dimensions={"nskills": 4},
    properties={
      "name": "Sherlock Homes",
      "skills": ["observing", "chemistry", "violin", "boxing"],
    }
)

The dimensions argument must be supplied when a Metadata is instantiated. It ensures that the shape of all properties are initialised consistently. The properties argument is optional. By specifying it, we initialise the properties to the provided values (otherwise, they will be initialised to zero).

In this case we didn't initialised the age

>>> homes.age
0.0
>>> homes.age = 34  # Assign the age

We can view (a JSON representation of) the instance with

>>> print(homes)
{
  "uuid": "314ac1ad-4a7e-477b-a56c-939121355112",
  "meta": "http://onto-ns.com/meta/0.1/Person",
  "dimensions": {
    "nskills": 4
  },
  "properties": {
    "name": "Sherlock Homes",
    "age": 34.0,
    "skills": [
      "observing",
      "chemistry",
      "violin",
      "boxing"
    ]
  }
}

The instance can also be stored using the save() method

homes.save("yaml", "homes.yaml", "mode=w")

which will produce the a YAML file with the following content

8cbd4c09-734d-4532-b35a-1e0dd5c3e8b5:
  meta: http://onto-ns.com/meta/0.1/Person
  dimensions:
    nskills: 4
  properties:
    name: Sherlock Homes
    age: 34.0
    skills:
    - observing
    - chemistry
    - violin
    - boxind

This was just a brief example. There is much more to DLite as will be revealed in the documentation.

License

DLite is licensed under the MIT license. However, it include a few third party source files with other permissive licenses. All of these should allow dynamic and static linking against open and propritary codes. A full list of included licenses can be found in LICENSES.txt.

Acknowledgment

In addition from internal funding from SINTEF and NTNU this work has been supported by several projects, including:

  • AMPERE (2015-2020) funded by Forskningsrådet and Norwegian industry partners.
  • FICAL (2015-2020) funded by Forskningsrådet and Norwegian industry partners.
  • Rational alloy design (ALLDESIGN) (2018-2022) NTNU internally funded project.
  • SFI Manufacturing (2015-2023) funded by Forskningsrådet and Norwegian industry partners.
  • SFI PhysMet (2020-2028) funded by Forskningsrådet and Norwegian industry partners.
  • OntoTrans (2020-2024) that receives funding from the European Union’s Horizon 2020 Research and Innovation Programme, under Grant Agreement n. 862136.
  • OpenModel (2021-2025) that receives funding from the European Union’s Horizon 2020 Research and Innovation Programme, under Grant Agreement n. 953167.
  • DOME 4.0 (2021-2025) that receives funding from the European Union’s Horizon 2020 Research and Innovation Programme, under Grant Agreement n. 953163.
  • VIPCOAT (2021-2025) that receives funding from the European Union’s Horizon 2020 Research and Innovation Programme, under Grant Agreement n. 952903.

DLite is developed with the hope that it will be a delight to work with.

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

DLite-Python-0.3.20.tar.gz (14.5 kB view details)

Uploaded Source

Built Distributions

DLite_Python-0.3.20-cp311-cp311-win_amd64.whl (355.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

DLite_Python-0.3.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

DLite_Python-0.3.20-cp310-cp310-win_amd64.whl (355.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

DLite_Python-0.3.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

DLite_Python-0.3.20-cp39-cp39-win_amd64.whl (355.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

DLite_Python-0.3.20-cp39-cp39-musllinux_1_1_i686.whl (375.8 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

DLite_Python-0.3.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

DLite_Python-0.3.20-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (15.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

DLite_Python-0.3.20-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

DLite_Python-0.3.20-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (7.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

DLite_Python-0.3.20-cp38-cp38-win_amd64.whl (355.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

DLite_Python-0.3.20-cp38-cp38-musllinux_1_1_i686.whl (375.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

DLite_Python-0.3.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

DLite_Python-0.3.20-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (15.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

DLite_Python-0.3.20-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

DLite_Python-0.3.20-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (7.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

DLite_Python-0.3.20-cp37-cp37m-win_amd64.whl (354.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

DLite_Python-0.3.20-cp37-cp37m-musllinux_1_1_i686.whl (376.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

DLite_Python-0.3.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

DLite_Python-0.3.20-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (15.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

DLite_Python-0.3.20-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

DLite_Python-0.3.20-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (7.0 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

File details

Details for the file DLite-Python-0.3.20.tar.gz.

File metadata

  • Download URL: DLite-Python-0.3.20.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for DLite-Python-0.3.20.tar.gz
Algorithm Hash digest
SHA256 7f6520681073f977a749472e64ee40dd07509e245351c8efdde2526fcc690167
MD5 6b59874d8b143b61e4990136d8f6fec8
BLAKE2b-256 d23e03fa7d4ddb8854355e2204a82e13c7f1ac640d21b9a1272f6249f70e706b

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e3c4fa3f875e4ce15e47ea28f269c4e60888872b1433663b96f74eeebee4a6fd
MD5 2b84e14421e0f921bebbfb8df3c35bde
BLAKE2b-256 75651af0cf3946b5da2e85b27cd4245d9ccf24e5a25e56b80d5e7e1973626115

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b54fedc7e3d6cdb2af2f223a15ef3891b304b4cb9fdd39b4b282cc21c5961c2f
MD5 f78728f1cdf07cf2214c3c4e7ff05142
BLAKE2b-256 9a1e719a6282eecd28a1161713394f048991ae7d2ee7b5727a3050025a714557

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 938d96f6b09c08c180f0ced68f486baaf3e00b03eb61556754d9585aa1a76740
MD5 7d996631dee4b1b44229855585a0d57a
BLAKE2b-256 c034db248af23bb9a176f9eb23440ae7bc9c6a09cea932dc26e29cd94e389b40

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 057d54c39b94814a87e505f07bb5a0bccde6f1c7974991e18b951ccb46027dfa
MD5 058440dc096b80b7bfaef4628ce116d4
BLAKE2b-256 d1e08f596139b40f3c24eb33584c24f46da0f9d7e7ed1343089d3f40113ecc9d

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c3b793dbaa992d4cb17bc2ff85fbfc4b3562852e4e6d7834fa8d52d9ec50f5b9
MD5 1872f8071135b31e85f794cf5db30975
BLAKE2b-256 000e0efacf41b113b152c92801b250ee4286fc7127f363a67a40f4f8454626c4

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a63099f6dfe75b17d0402d8e18a010051a7b82a30de2bae47b95812dfe6392df
MD5 4d8285427804ebf4375c7400457e0af9
BLAKE2b-256 8848ebe748c53ed90232fdcca1d6fbce6a204edb68f4d87054b76a2b54203c89

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdda6be1420cd472bb7eb5ddb4b924d9b290f19a2fc504538b7911110e4f2eb4
MD5 e2b4d57d73b24bed4416a3aefdf77850
BLAKE2b-256 7a1eadc7b5a738a41ff530d67d9c0546a4630fecc9ee63c53bfd2f5567608d21

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a3766595c396e7d6b30a1d50d1b852486ea106286839f2c350944d7a71e003be
MD5 191cc8b3f1ef1992e0a4cd4616f80524
BLAKE2b-256 e15c38bd7f89eb4e4ccb29ee7920771cdf9c84f8ebdbbb85b8d46ab7e41bc524

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 887e5d3a2e7674d59be285312e9588d9397333881b758e4495135019fe8b7eb5
MD5 15e49fdae7a5eb02bae63395f7f5d8ad
BLAKE2b-256 22d70817c545c680b3ac597e8b3e8718582406f2ea0cd9acc4f7f28606db8309

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ff57fd3d367d98914aa58bfe53c25278472487d1b781de13ca2f39e6da579320
MD5 0525a9faf8a8c0bb34ed418c37acdde1
BLAKE2b-256 9a2a58646a6ac9e40ab606a3aa6d7831d41f927003483e7c3d021fd3ca9c295c

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d36b8967acbf1b35e856b28e59e9feffaf0e81b307984459cf2f5f6f2c917dac
MD5 a9db2767c1dee18870542540e18bd03f
BLAKE2b-256 bb7f6a78946e7210754568cc77609adb1649b787027cb9c81c6a1fd73bc976fb

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c2406950bb43ec3cb587568d5a1150a4e3b993267b8fb3dc3e09f7c1d7624c34
MD5 8cc4d510bb4fa70bd641adcf78dd1f3a
BLAKE2b-256 6557bcfebdf0c7e914fe07d6ec2f765ac2d729549ddc3df0132b833a989444cb

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60133de583f1e7bf51d403470d4618044c7d50d0ea3e5cdc18aac1726f4c2c9d
MD5 a59de9a8704e7007b5ef00369ed77aab
BLAKE2b-256 4196243b347a2d9ca89c47cb98e651e15c01286dd5e9ab55fca1f45e1ae5ae35

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c7bc5236781cafa08b86e887b70cf0d05722f1062ffa06b697da2881f322a150
MD5 bfa22f6f8725b73d80539b6bda937efb
BLAKE2b-256 6e9c08380b0dbf9de69a08bd7391b85396a983ff11b702fac653a3ff0f6e4198

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ee5c2c7fcdee6322ea7c6c56d9ec72b95b4349abb4878fb8055d20390ba4c5e9
MD5 5df96b329dc5349eddfa067a7f8a3635
BLAKE2b-256 5addca0e7451c4f821619dcbb249f0445e066e5bff62ffe654908e8bc5df7f5a

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c46eb763c30cf90a5ab25b47b9e6e4222cc413c772ab942b251d05e699bba01b
MD5 5531da8c8d5b12ef030b1a86c71f8cd7
BLAKE2b-256 504ee37f89991d7e3da88cf0adc3d72d3289e4b1739981a670b57967c86babd1

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 38133211702566432bc24b238b91347c6aafbda62546f367986b5233881d0090
MD5 1dbbd1bd84543f9a2d49ef9537821b56
BLAKE2b-256 c911414089c144944642e4c49d7b487c61bb3dc06e46aa233fdc30cefbc5df80

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 853b878f148ab1aec7af798729e02764051e8113152209e3ef9b49da80663f58
MD5 4ace12a36aecfb37e31a1905254297a3
BLAKE2b-256 d786a75129557d2564c5bdcd63390aef2caf14102fee126bf6610bd48ebc0688

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7235ea56f4e3590ad2d8aa7df3586153b10073067004881f9fa52687c3988559
MD5 d169f663af2f4cca4b9a139388a65259
BLAKE2b-256 61da2e9b8d06135bfd01ccacb7b67d6148fd2ebea6d6f06ce40118d46df12a67

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4252826285c216c7a4236c5b455814f10b729f3547eba2dfb023204551da3ff5
MD5 1af2c56d2e87bcf0055295815fa4907b
BLAKE2b-256 fab48e311ad059b0608617c5a4f5d2e578a0927478218ff8ac2aea6b474e8dd6

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f08ccc65b1e1d0c9772295f3a623ee31d7f660db38f6790c85999e8873e6c2b3
MD5 7595d35fa62e9a48811cace4d42e26a0
BLAKE2b-256 34a2888bbeb7a18391661d0ce1252883d681ccd60b557bfe13d1c41ab77ec8b4

See more details on using hashes here.

File details

Details for the file DLite_Python-0.3.20-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for DLite_Python-0.3.20-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 e079e415eea19983fac985eb6f78e7761175651d15d028e905bdf2ea46d4a359
MD5 1f06b9bacb86d091e25a3d9dc03dcf32
BLAKE2b-256 e9855bff4a1198d131a86124a6905af59c8d32c2a2032e35ba871aa899cd5b40

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