Semantic registration service for UUID and metadata mapping.
Project description
Registry Service
Standalone semantic registration service for UUID and metadata mapping.
Indaleko is an implementation of the Unified Personal Index service, a means of using metadata to bridge human episodic memory and traditional storage. Indaleko uses dynamic data sources, so the purpose of the registration service is:
- To allow dynamically adding services to the system. Each new service is given a UUID to represent it.
- To separate semantic meaning from database labeling.
- Every collection (table) in the database has a UUID name. The mapping of that name to the UUID is maintained separately from the database where the information is stored.
- Elements in the schema are UUIDs. The mapping of that element to the UUID is maintained separately from the database where the information is stored.
- Each UUID may have optional metadata associated with it. For example, this can be used to have per data type encryption keys to protect sensitive information. This works because the mapping table is small relative to the data and can be protected, even when using public facing services for the database.
- Semantic descriptions need not be limited to a single name. They can (and should) be provided with a description. Indaleko uses these along with LLMs to construct an ontology. In this way a dynamic system with distributed providers can be identified as providing equivalent information (that is, there is a mapping between them, such as data providers that keep distance in parsecs and another that keeps it in Angstrom.)
- Semantic labels, which are the identifier used by the service provider, must be unique and once the label->UUID mapping is established it is immutable. Note that this mapping will vary on a per-installation basis.
- UUIDs can be mapped back to semantic labels, semantic descriptions, and other properties the registry stores.
Status
Test Version
Distribution Version
Installation
Install via uv:
uv pip install .
Usage
Run the service with the CLI:
registry-service
Or directly with Uvicorn:
uvicorn registry_service.service:app --host 0.0.0.0 --port 8000
Lookup
To resolve a semantic label to a UUID:
...
Reverse Lookup
To resolve a UUID back to its semantic identifier, call the /lookup endpoint with the uuid query parameter:
curl -X GET "http://localhost:8000/lookup?uuid=<UUID>"
Response example:
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"category": "semantic_label",
"name": "test_label"
}
Running Tests
Execute the full test suite:
pytest
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file indaleko_registry_service-0.1.0.tar.gz.
File metadata
- Download URL: indaleko_registry_service-0.1.0.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdbc109a8b34ec91888f7acc387cfad98de9f1ea77789989913c1a3800da137e
|
|
| MD5 |
e2606e542af5c1aef5b79fd28b6237bd
|
|
| BLAKE2b-256 |
1facd0c1c9ddfd7e429049cb376bac025e178783febb4ab6c2b126db62401d29
|
File details
Details for the file indaleko_registry_service-0.1.0-py3-none-any.whl.
File metadata
- Download URL: indaleko_registry_service-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cdb386ee3101b63d0c1160c0ad0bdee02e0d41ff5a254c468afa9514d3e3db5
|
|
| MD5 |
a7361656f6c23843753561909e20b625
|
|
| BLAKE2b-256 |
dd5383c55b54da1c3e0d8e21940fafa162d51a2e5d3d1067eef9ae11af3f2cea
|