A rules engine for RDF data
Project description
RDF-Engine
Why?
Motivation: This was developed as part of BIM2RDF where the conversion from BIM to RDF is framed as 'mapping rules'.
How?
Rules are processes that generate quads. They are simply applied until no new quads are produced. Oxigraph is used to store data.
A rule is defined as a function that takes an Oxigraph instance and returns quads.
Features
- Handling of anonymous/blank nodes: They can be derandomized.
- Oxigraph can handle RDF-star data and querying.
However, RDF-star is derandomized for each graph in a rule.
RDF-star data is expected to be of form
<<data.subject data.predicate data.object >> meta.predicate meta.object.
Usage
The package can be obtained from PyPi.
Note the CLI is optional: rdf-engine[cli].
A 'program' is defined as a sequence of engine runs initialized by a `db'. Each engine run takes:
- (engine)
params - and a list of
rules. Each rule needs amodule,maker, andparams. See program example in test script.
Development Philosophy
- KISS: It should only address executing rules. Therefore, the code is expected to be feature complete (without need for adding more 'features').
- Minimal dependencies: follows from above.
- Explicit > Implicit: Parameters should be specificed (explicitly).
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 rdf_engine-219.tar.gz.
File metadata
- Download URL: rdf_engine-219.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0ad4e3dc132b50fc42efbbd2dfec6fa356257c39944edfd9c9bc1eea78e23c3
|
|
| MD5 |
82c2f0a874c61a2978e141788c4bf99f
|
|
| BLAKE2b-256 |
a223a545ff4e720e19f6ca8a26edfd2d915d2f8d31a1d5bed8606d015b5dd206
|
Provenance
The following attestation bundles were made for rdf_engine-219.tar.gz:
Publisher:
python-publish.yml on pnnl/rdf-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rdf_engine-219.tar.gz -
Subject digest:
c0ad4e3dc132b50fc42efbbd2dfec6fa356257c39944edfd9c9bc1eea78e23c3 - Sigstore transparency entry: 172267940
- Sigstore integration time:
-
Permalink:
pnnl/rdf-engine@8ca92a88ad588de1f8024ba8d9419d7ac72f0220 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/pnnl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@8ca92a88ad588de1f8024ba8d9419d7ac72f0220 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rdf_engine-219-py3-none-any.whl.
File metadata
- Download URL: rdf_engine-219-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72c109a8e5123bd0d4bc804a442f365e7b54895942886b743d5ab79730bb4b23
|
|
| MD5 |
d0d9fb2e1dbc569898f854bee9021f8f
|
|
| BLAKE2b-256 |
a1842459dce7216f91d1cec0b6a32e717c00e61d17ba050bfeec5bc58b23ff6e
|
Provenance
The following attestation bundles were made for rdf_engine-219-py3-none-any.whl:
Publisher:
python-publish.yml on pnnl/rdf-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rdf_engine-219-py3-none-any.whl -
Subject digest:
72c109a8e5123bd0d4bc804a442f365e7b54895942886b743d5ab79730bb4b23 - Sigstore transparency entry: 172267941
- Sigstore integration time:
-
Permalink:
pnnl/rdf-engine@8ca92a88ad588de1f8024ba8d9419d7ac72f0220 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/pnnl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@8ca92a88ad588de1f8024ba8d9419d7ac72f0220 -
Trigger Event:
push
-
Statement type: