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[full]

The bracket [full] is optional, but ensures that you install all optional dependencies together with DLite. Without [full] you get a minimal DLite installation that only depends on NumPy. This would disable most storage plugins, except for the built-in "json", "bson" and "rdf" (when compiled against Redland librdf). 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.
  • MEDIATE (2022-2025) that receives funding from the RCN, Norway; FNR, Luxenburg; SMWK Germany via the M-era.net programme, project9557,
  • MatCHMaker (2022-2026) that receives funding from the European Union’s Horizon 2020 Research and Innovation Programme, under Grant Agreement n. 101091687.

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.4.6.tar.gz (17.3 kB view details)

Uploaded Source

Built Distributions

DLite_Python-0.4.6-cp311-cp311-win_amd64.whl (370.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

DLite_Python-0.4.6-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.4.6-cp310-cp310-win_amd64.whl (370.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

DLite_Python-0.4.6-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.4.6-cp39-cp39-win_amd64.whl (370.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

DLite_Python-0.4.6-cp39-cp39-musllinux_1_1_i686.whl (397.7 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

DLite_Python-0.4.6-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.4.6-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.4.6-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.4.6-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.4.6-cp38-cp38-win_amd64.whl (370.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

DLite_Python-0.4.6-cp38-cp38-musllinux_1_1_i686.whl (397.6 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

DLite_Python-0.4.6-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.4.6-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.4.6-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.4.6-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.4.6-cp37-cp37m-win_amd64.whl (369.7 kB view details)

Uploaded CPython 3.7m Windows x86-64

DLite_Python-0.4.6-cp37-cp37m-musllinux_1_1_i686.whl (398.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

DLite_Python-0.4.6-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.4.6-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.4.6-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.4.6-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.4.6.tar.gz.

File metadata

  • Download URL: DLite-Python-0.4.6.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for DLite-Python-0.4.6.tar.gz
Algorithm Hash digest
SHA256 9520cb28b80e51389a910b40f7d7bcb22290fe5aaf8f6928d9c9cc0fe0f66a60
MD5 4788057961d4353bc89abc664e156403
BLAKE2b-256 9f706975d71ade5950c46f07bf4f3ac47ed3f00849a0b053273e410a326a00ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f22b59aef668514d83f8f20dd70cfb7324da97192f6534721c7a219c2296bab8
MD5 fb409a80298db610e870106b8ceada8b
BLAKE2b-256 c8ccf691c9bb0d23a3322b0f5fdfa99c31de8f818f70e9a495723604cc62ccec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62ad979178f4135d7ef6f6e1decde7c171fb31db85ecd5de7243b0f629e06bc3
MD5 a4c334bdb16b7406d3e4a67890b2e27e
BLAKE2b-256 9a6cd1b33ba1b13620107e443a427e7ae1838b9c6a2eb582a0adc7ddc0e355cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fea0afdd57966acacff7bdd504e3577238976226ffa00839273f22bd0227473f
MD5 4816d29702aa58d6ec6e33f17cce8bf3
BLAKE2b-256 14d5a23756e0a217153d1afe13b07601f08a4f590e809e8f41bf89b1237c049e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50b47bbe2f9e03749047d4d15e4316c059c702e2daffcb05b9f150091ad274a8
MD5 f831e8d645967d258d9852e4be0f68c4
BLAKE2b-256 058cd27fbf7cb32af14232a73c96db915c7430c9f8af776fefe4962bdf9682c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4688477aa10e5f1a6d8890e2232ad0bcef1fa4a5a12fe493a3018cf7d508994d
MD5 41e20e366a5e55cfc5dc84b641dbb5b0
BLAKE2b-256 879996603ba6555e6c9804fedccd159122c53483d6fd9672d5ee9f14635a0d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 83c7377fd662ec44b9f1c12c87c61157991522b28d52d163a5cd28035ad01a83
MD5 efa66c2689d600e674a6c4a6a86012de
BLAKE2b-256 383022550ba6259b793f6e0d4ed2bc29c4c8bec32e6fd4b639c91d32b262adf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 92a4c42a51ce565d497434a7697d67fa5f4a0a3bd5b1e45ddbd89b1174bc89b7
MD5 541fd37cb17c535081fd4709637a2582
BLAKE2b-256 b50efa7859a70f0287a96e09eb959742e3e00890bff33379fb850b9aaa18d0d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d4b8f5bdaea2f21502bd44ada70e5bb3ede98321f22a5017a67014dfb46fe804
MD5 6e56d1a2c2bde1407fd5cc48298cf853
BLAKE2b-256 ad511b9a3929af8f10a2b08091e8edfb158d8924727409b04137370dead175e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0c60b22dc9622d122935eb3d2676de2c840ffbe56718406bfd7fe131609783da
MD5 159c0ad6a822490dff3ae3498811f1d2
BLAKE2b-256 60b18fd65891d48e3b7c66ebf600f017ac1b4fc89ca9bc06173a70fc5cc6c478

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a17ebb68b0b7270f0c3c99a18afd0fe959e884b7761c27c54595d8d8ba66f5d8
MD5 cf28b49a34d8a9dc07fd7ba71ef53c18
BLAKE2b-256 2904c8212dfc0e42cf83a6147d23ec9143d38981b65566594f057bae847c53bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5bad852692e95433f7c71120558c1483ff938131414103e112f6a548e824f6c4
MD5 a68eb9c717edcc4b4cf0eead348c4623
BLAKE2b-256 76af68098d43c9a3a7e827aafd5ad944753a492e108a3cc670a78d05b0614bce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d7aa9da0b1a30feb22fe4d4da476f9ce5fa4f38ec750b033a0ddc15319f002af
MD5 bf4e2bbb6ef5ecf0e6e6ad05d01ca9c9
BLAKE2b-256 6241c4beb4f0f31c4e5b407d4cb88da523bb63b539f68c8a1743b5a83d1ebc42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7d64f9b376a6aea9dc2aa30036a2d9fd4cce3658edb008f28471aa8cbbb94f2
MD5 905943be833a0c34f4f93d03fdd5ec86
BLAKE2b-256 82114fb6842f9c8aa814e6e977545edfbbd0ed5603afc6403f4e71c21ab81b92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 54b869ceec7f8d889681497a80053533c6e2f223ec93510cbc1350a4c43a7716
MD5 d1bd0a76991e2e6b0c284edd9eabc600
BLAKE2b-256 48703b6984249936a34691594947195dc035d9f565da649815a4bdb29cda0433

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9c95c902a61f4e21c63974333178e486188489436aa40f80c7b46e9999414157
MD5 4fa1696291a832b13407f51f1e1059af
BLAKE2b-256 4bfc345030f2d0f4c67cd5aa064f7f41ec1cbdd659085c02ddaab9cde49b6c00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9f2938a431548ecef8344f17cf7b1acf869f5549a830c626c56fd23cfd48d529
MD5 076a9c5f0763d9f99d4788bab07dc9da
BLAKE2b-256 ee70fda37a2fe71a6c30b0a7dd80e84cc9ab809b9277bc6f6568efa35bd7e453

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 21e972439f695d48b1234c8c4bbef873853d7a71ea2e1136b5e6c29418324b63
MD5 8425ced2d9b0707234dac1722240acf0
BLAKE2b-256 6095114b582f769014749fe3cd43d3ea8d14416660fd1d5febdc846e89955244

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 76ae4688a4a2a814d650e824cc45eb0c44a28858bdc28af4478afb472b38c3ce
MD5 934a88f62b70c7aa5adada130a19fbfb
BLAKE2b-256 88394c7e8d3fc1bd56b01f561733ec847947cbda2750b405d0ab4ecaad71306b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 65312eab28b852a60e67c1f71125be052fb8733e311694a93caa1250e6debea7
MD5 d58f3f84dbd76cc2d5cb9e493d617e2d
BLAKE2b-256 77eeab163fbe69659060bc771937a29a53a7c673aa91d50ef1614a381709104d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 201b8d7ac9d88d06cb05f1803cfee6b9552d7b91c3fc11e84c146b9dcb08f4d3
MD5 df6400485b8bb0724107cbc8809a534c
BLAKE2b-256 8c1f58fcded78ce87c68a62998adfc06a09fbbfc27f624c28d3987b5e6855111

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e52b7fe6911c36bcde38db39d0f80474724d03ff3573a385c4e98405b2713f99
MD5 bf7b4dd4de89db3d19f421ec08f7a9e9
BLAKE2b-256 85f45789c872002493633226d59c2d7e7ea1a830bca0a51a64c3ecc81f0199da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DLite_Python-0.4.6-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 bdb3e935f52461283dada5ff95649288cc9f8d7f47162f7afd78410663fd114a
MD5 9465e997376c1f92e1c30a3fe9deb8f1
BLAKE2b-256 cbca5f00b2f6ed98d0ef3dd462807687e710cfa83e1d310430d0d94c6dfb77a2

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