Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sintef/soft7
SINTEF Open Framework and Tools for Data Driven Semantic Interoperability
https://github.com/sintef/soft7
Last synced: about 2 months ago
JSON representation
SINTEF Open Framework and Tools for Data Driven Semantic Interoperability
- Host: GitHub
- URL: https://github.com/sintef/soft7
- Owner: SINTEF
- License: mit
- Created: 2022-05-02T11:08:18.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-12T08:16:55.000Z (about 2 months ago)
- Last Synced: 2024-11-12T09:22:39.020Z (about 2 months ago)
- Language: Python
- Homepage: https://sintef.github.io/soft7
- Size: 348 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SOFT7
## OTEAPI plugin
The `soft7` packages comes with an [OTEAPI](https://github.com/EMMC-ASBL/oteapi-core) plugin that allows one to convert any core parser data to a SOFT7 Entity instance.
To use the plugin, call the `'soft7'` `functionType` function strategy.
### Test the plugin
At the root of the repository is a [Docker Compose](https://docs.docker.com/compose/) file, which, when run, will start an [OTEAPI Service](https://github.com/EMMC-ASBL/oteapi-services#readme) that includes the `soft7` OTEAPI plugin.
To start the service, run:
```bash
docker compose pull
docker compose up -d
```To follow along with the installation of the `soft7` package and startup of the OTEAPI Service, run:
```bash
docker logs -f soft7-oteapi-1
```Press Ctrl+C to stop following the logs.
To eventually stop the services, run:
```bash
docker compose down
```But first, let's test the plugin.
Open a Python shell, an [IPython shell](https://ipython.org/), or a [Jupyter Notebook](https://jupyter.org/), and run:
```python
from s7.factories import create_datasource# Let us use an OPTIMADE structure from the Materials Project as our "raw" data source.
# The chosen structure is mp-1228448 (Al2O3):
# https://materialsproject.org/materials/mp-1228448/
# For more information about OPTIMADE, see https://www.optimade.org/
# For more information about the Materials Project, see https://materialsproject.org/
dataresource_config = {
"downloadUrl": (
"https://optimade.materialsproject.org/v1/structures/mp-1228448?"
"response_format=json"
),
"mediaType": "application/json",
}# We need to setup a mapping configuration to tell the plugin how to map the OPTIMADE
# structure to a SOFT7 Entity instance.
# This requires knowledge of the OPTIMADE structure and the SOFT7 Entity.
# In our case the OPTIMADE structure specification is available at
# https://github.com/Materials-Consortia/OPTIMADE/blob/v1.1.0/optimade.rst#structures-entries
# and the SOFT7 Entity of choice is the `OPTIMADEStructure` Entity, which can be found
# at http://onto-ns.com/meta/1.0/OPTIMADEStructure
mapping_config = {
"mappingType": "triples",
"prefixes": {
"optimade": "https://optimade.materialsproject.org/v1/structures/mp-1228448#",
"soft7": "http://onto-ns.com/meta/1.0/OPTIMADEStructure#",
},
"triples": {
("optimade:data.id", "", "soft7:properties.id"),
("optimade:data.type", "", "soft7:properties.type"),
("optimade:data.attributes", "", "soft7:properties."),
}
}
```