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 DOI

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": {
    "Sherlock Holmes" {
      "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:
    Sherlock Holmes:
      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.21.tar.gz (14.8 kB view details)

Uploaded Source

Built Distributions

DLite_Python-0.3.21-cp311-cp311-win_amd64.whl (362.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

DLite_Python-0.3.21-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.21-cp310-cp310-win_amd64.whl (362.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

DLite_Python-0.3.21-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.21-cp39-cp39-win_amd64.whl (362.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

DLite_Python-0.3.21-cp39-cp39-musllinux_1_1_i686.whl (382.9 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

DLite_Python-0.3.21-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.21-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (15.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

DLite_Python-0.3.21-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.21-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.21-cp38-cp38-win_amd64.whl (362.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

DLite_Python-0.3.21-cp38-cp38-musllinux_1_1_i686.whl (382.9 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

DLite_Python-0.3.21-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.21-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (15.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

DLite_Python-0.3.21-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.21-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.21-cp37-cp37m-win_amd64.whl (361.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

DLite_Python-0.3.21-cp37-cp37m-musllinux_1_1_i686.whl (383.7 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

DLite_Python-0.3.21-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.21-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (15.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

DLite_Python-0.3.21-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.21-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.21.tar.gz.

File metadata

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

File hashes

Hashes for DLite-Python-0.3.21.tar.gz
Algorithm Hash digest
SHA256 74632c52beed31d70358c37ba7923f6a1d971f965c580969103f6b8da3adb2fc
MD5 6fe5337814182572b4cd61ec148cce09
BLAKE2b-256 ad52cbe18a06cea7ad5996ec4b25501536903dc1fac0ac80a129336bc6e7698d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 84ac5bdd35284e01c9fad212ea83bdeec64acfb9e2e7fd58826771e97dd7bd20
MD5 0f587f0bb4980f2790406c037d2f4c1c
BLAKE2b-256 0a3a8309c6ef85540be3a5db2f88cd0a35e9320151b5dda6dcb453fc7bdd43a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06349a1e618e0ad1d45d86225044789456142747c5da889fc601113a62e8d50f
MD5 2f087c79d4ae13af0cf9a4a504acf606
BLAKE2b-256 be2ded158550e5695128097f17c321f43ad7a62a2d277e75e3fb244838b86624

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c40d50fd8fa7c6c734867806b85bd239ecfbfd402acea8c6d971afb4448b163b
MD5 3a6bd1fd49b6c4fb067bdae1d0543622
BLAKE2b-256 eb6cbe2243f4ca306f537441e026ae406cadc398dedccd7339734128aaa1bc76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd02fa77aa3c6fb73e3ea1a3df011cb75ef026f9de485be690aa77aeb8cac457
MD5 07c3a8d0bc393cf817822f9f1abc676a
BLAKE2b-256 713453a01446ed6d5ae85af4ddbfdb47fea864e7a01274841f22c93b3e377ac4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 264dfc5b3617ed1dcbe7b360231a2211ab7186dcc554b12e00643ca3b4dbd9c7
MD5 e9ebca634d97722c73a13e2ec6224f2b
BLAKE2b-256 ed268d0f34d101bbdd0f7472dfb5aa616f9417d413e605fe5ce2dd3b64800930

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2bdd6127f7f3e4f3a40332743ce67d11eb36608320b5424b50e64fef0b854dbc
MD5 8bd2fea2c1e603fed2c391c53b3c38ee
BLAKE2b-256 b7faa6f9109a7723ca808ffa920c00584237e252c39ac81876b6e949e2716435

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9c26673460c96e979fa30cdfd56348b788df2df680788bdc5dd2d98b3a7fdd9
MD5 d852a3e7f296581d72ad77d8f77b09b0
BLAKE2b-256 d91966bcb551eb4f12aa70282051d89bb0ddfdb888ccb9cf110122be38179a72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 973b0ebde631472265f4368bf4276b5473370147d3b7d26a1bfba3ac341b6709
MD5 23f867734dfdd10f2e082bb2c8fb24f0
BLAKE2b-256 aba47cdd9c957bb99f36dd3d1fe492c3ca13f9fc28e3780450be0abc715d9375

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 10464b793e6da9945df624866652dbafcc226f3a01a414cd5f5d82036a251a74
MD5 6118da4b58298f0339eeeaa9757088b7
BLAKE2b-256 f8feefc5e117f8084c2ca734023394282090e005120ae7e453b67b3050ec5414

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 e90d02aecbae3c606f16dc0bfca697cdc732bcacc515679b92d1bce2e41159fc
MD5 230ad0efc79245f6e49ae9430b1a4bc3
BLAKE2b-256 f85cda14c4ef2a4bdea3f9aa306cfd2dfadc2de8f6d947fc6f60ffe4bed0dcdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 237fc4b4c23665b55eb4da631716eb5cc07d3c8f29b6008561edc5d950935b6a
MD5 b51ff2d9e7c392a5f7ae3da6ed79b3ed
BLAKE2b-256 b4bd420dcb2612cafc2b656e2b7840b13a88c28880209d6162094ff04ef5da96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 bdc2cc92fef7ee323a6ca80d6e665ab9169cf4e0b1a3d58b52d3d5e5b3740142
MD5 67706e9af96dce02929ffab8f4269cae
BLAKE2b-256 38a1902f30440027e9f0392413912b82cdadd83d9f10d87f6813ebfd4f65ca75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4cfda8008c9dad7f7032126de7dc869175fdb97b21b3d4bc834b6122bf5b25b
MD5 5420d79da288fbd8fccca69aa4a92bb6
BLAKE2b-256 69155332d31abc10154a49f79218f5934a0a061725bcd477d720a2b095a35da1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3ea7e5daf48316cf7a16d2a0171c36de2b0662f598f497acfe2ce76a9a2d4b5b
MD5 82c741be903e8dcc4a556d9be1644c1f
BLAKE2b-256 0702895346b60f11cf2824c6d77a41f292800a5d28e794699816d46bae7be2ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cd44a5b1cc57311e030523db25171878cbf7c4d45199e043a22b8c6c87afa0bf
MD5 7a9b3d809e67e795b082fa2a04a3de18
BLAKE2b-256 96570a625075cac23855f8f7954e497b7a066f2f330ea51981199ec733fc9182

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8c7a0df307d1eb961dad84a243876b41f78390545a1405b08fb02a528838db82
MD5 e593fcdb52b09b17aaf7cd403454255f
BLAKE2b-256 b7596f438474d2ad5185eef689621e9cdc8d1b203e5f8be578a6114d9339d429

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4d1dfb4628580f224bbd3696f5c89f0dc5f2af2c85f0f650c33b9b03218b693a
MD5 eda0e0e0bfa546e9e0df323c40041fdf
BLAKE2b-256 de11b4fcc230ed86b096937ac063dd3f1a02bc0ac836d4cad178ea8be5a07493

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d242b19d6900573331d63042175093b29fb992a913052b8d55a51d570498cfc7
MD5 f5d9e8041ec48f83be5dd0b27de37fe1
BLAKE2b-256 102496825bf386655c7157ebf026ffc7264e6b863a06b805d710095aa08d5f0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d04c309adfe80eb6433aaf4c8cb1bb1164d12026bda6c4a78c5be53641fb302
MD5 94c16b3cf9c2f42ddd7851af0bef15b0
BLAKE2b-256 34f4d4ce30aa16739dac1568e0a6ce4f21ad6e21816bca7638f5c2b25f4e0632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 83da80fc8548802f0c202fad7e338452ca629db21698b81b2bfb458f4f55e0d1
MD5 94e7fef085b17476ac737868b4641859
BLAKE2b-256 a29b36357fc62bc6153aa9b63c59b9c151816215d6852bbeadc5068a401ef4ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 70504b1bb8892a9957eb03632518810210092b52d75e9eb3eea91b05bd9b0c81
MD5 fa172d91886f13b9e4b1492b20a7604e
BLAKE2b-256 288f659f7263bfcc4136ef317df2df806dde71c2b0c5519a54379cbd9035ffd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.3.21-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 bfef9e1b15a35b412643d63b5a215e7ff521dfabab692cc0efb1b0bd43362dd2
MD5 effc7f1f66568b1cca71979a21a9fe2b
BLAKE2b-256 da31f47c93b6da7d471db23990e4f696c8c5ee780126c3d436ed528e8fcb06ef

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