@@ -16,73 +16,28 @@ All the data is collected in a directory called `.hermes` located in the root of
1616You should not need to interact with this data directly.
1717Instead, use {class}` hermes.model.context.HermesContext ` and respective subclasses to access the data in a consistent way.
1818
19-
20- ## Harvest Data
21-
22- The data of the havesters is cached in the sub-directory ` .hermes/harvest ` .
23-
24-
2519## Data representation
2620
27- We are trying to be fully JSON-LD compliant. However, there are two special cases, where we are a bit more lazy:
21+ * hermes* operates on expanded JSON-LD datasets.
22+ All internal data must be valid JSON-LD datasets in expanded form.
23+ All internal data must use CodeMeta vocabulary where applicable.
24+ All vocabulary used in internal datasets must be defined by a JSON-LD context.
2825
29- - Storing provenance of harvested data (for later curation)
30- - Storing alternatives of harvested data (for later curation)
26+ * hermes* provides classes that facilitate the access to the expanded JSON-LD data.
3127
32- Internally, ` hermes ` works with the expanded version of the JSON-LD file.
33- However, there are helper classes that allow you to use compact references.
28+ ### * hermes* internal processing data
3429
35- For the storing of provenance and alternatives, we introduce our own terms.
36- Especially, we add a ` hermes:meta ` key to the top level record.
37- This top level key contains a list of additional meta-metadata (i.e., provenance and alternatives).
30+ * hermes* collects internal processing information in the ` hermes-rt ` namespace.
3831
39- Each entry in the meta-metadata list is a dictionary that contains at least a ` reference ` value and one or more of
40- ` provenance ` and ` alternative ` keys.
41- The ` refrence ` value should be a valid JSON Path that references the object that is subject to these metadata.
42- The ` provenance ` value should be a JSON dataset that keeps information about where the data came from.
43- The ` alternative ` value should be a list with alternative records.
32+ ## Data cache
4433
45- Each alternative record contains a ` value ` and probably an additional ` provenance ` key.
34+ For each processing step there exists a command directory in the ` .hermes ` dir.
35+ Within this command, there exists one further plugin directory for each plugin.
36+ Within this plugin diretory, there are up to for files stores:
4637
47- Example:
38+ - ` codemeta.json ` : The (possibly extended) CodeMeta data representation of the dataset.
39+ This should be valid compact JSON-LD data.
40+ - ` expanded.json ` : The expanded representation of the dataset. This should be valid expanded JSON-LD data.
41+ - ` context.json ` : The JSON-LD context that can be used to transform ` expanded.json ` into ` codemeta.json ` .
42+ - ` prov.json ` : A JSON-LD dataset that contains the provenance collected by * hermes* during the run.
4843
49- ``` json
50- {
51- "@context" : [
52- " https://doi.org/10.5063/schema/codemeta-2.0" ,
53- {"hermes" : " https://schema.software-metadata.pub/hermes/1.0" },
54- {"legalName" : {"@id" : " schema:name" }}
55- ],
56- "@type" : " SoftwareSourceCode" ,
57- "author" : [
58- {
59- "@id" : " https://orcid.org/0000-0001-6372-3853" ,
60- "@type" : " Person" ,
61- "affiliation" : {
62- "@type" : " Organization" ,
63- "legalName" : " German Aerospace Center (DLR)"
64- },
65- "familyName" : " Meinel" ,
66- "givenName" : " Michael" ,
67- "email" : " michael.meinel@dlr.de"
68- }
69- ],
70- "description" : " Tool to automate software publication. Not stable yet." ,
71- "identifier" : " https://doi.org/10.5281/zenodo.13221384" ,
72- "license" : " https://spdx.org/licenses/Apache-2.0" ,
73- "name" : " hermes" ,
74- "version" : " 0.8.1" ,
75- "hermes:meta" : [
76- {
77- "reference" : " $" ,
78- "provenance" : { "harvester" : " cff" , "source" : " CITATION.cff" }
79- },
80- {
81- "reference" : " $.author.0.affiliation.legalName" ,
82- "alternative" : [
83- {"value" : " DLR e.V." , "provenance" : { "harvester" : " orcid" }}
84- ],
85- }
86- ]
87- }
88- ```
0 commit comments