From 89b2a92f2d635035f6796f5aa1b20a2e3e5e505a Mon Sep 17 00:00:00 2001 From: Florian Rhiem Date: Tue, 27 Aug 2024 11:11:25 +0200 Subject: [PATCH] Update SampleDB example for SampleDB 0.29.1 (#80) * Update SampleDB example for SampleDB 0.29.1 * Update SampleDB example to contain compressed form JSON-LD --- examples/SampleDB/README.md | 713 ++++++++++++++++++++++++-- examples/SampleDB/sampledb_export.eln | Bin 34270 -> 56071 bytes 2 files changed, 661 insertions(+), 52 deletions(-) diff --git a/examples/SampleDB/README.md b/examples/SampleDB/README.md index d6ae82b..6c1c46e 100644 --- a/examples/SampleDB/README.md +++ b/examples/SampleDB/README.md @@ -22,32 +22,33 @@ Each export contains one or more SampleDB objects, identified by their ID, with ## Concepts used -| SampleDB concepts | JSON property | JSON object | -|------------------------------|---------------|----------------| -| object | hasPart | ./ | -| object name | name | object | -| object creation time | dateCreated | object | -| object modification time | dateModified | object | -| object url | url | object | -| object creator | author | object | -| object tags | keywords | object | -| object references | mentions | object | -| object ID | identifier | object | -| action type | genre | object | -| comments | comment | object | -| files | hasPart | object | -| object version | hasPart | object | -| object version data | hasPart | object version | -| object version schema | hasPart | object version | -| object version creation time | dateCreated | object version | -| object version creator | author | object version | -| object version url | url | object version | -| comment author | author | comment | -| comment creation time | dateCreated | comment | -| comment content | text | comment | -| file name | name | file | -| file uploader | author | file | -| file upload time | dateCreated | file | +| SampleDB concepts | JSON property | JSON object | +|------------------------------|-------------------|----------------| +| object | hasPart | ./ | +| object name | name | object | +| object creation time | dateCreated | object | +| object modification time | dateModified | object | +| object url | url | object | +| object creator | author | object | +| object metadata | variableMeasured | object | +| object tags | keywords | object | +| object references | mentions | object | +| object ID | identifier | object | +| action type | genre | object | +| comments | comment | object | +| files | hasPart | object | +| object version | hasPart | object | +| object version data | hasPart | object version | +| object version schema | hasPart | object version | +| object version creation time | dateCreated | object version | +| object version creator | author | object version | +| object version url | url | object version | +| comment author | author | comment | +| comment creation time | dateCreated | comment | +| comment content | text | comment | +| file name | name | file | +| file uploader | author | file | +| file upload time | dateCreated | file | ## SampleDB examples @@ -70,13 +71,11 @@ Each export contains one or more SampleDB objects, identified by their ID, with "@id": "SampleDB" }, "version": "1.0", - "dateCreated": "2024-01-09T11:51:15.502380" + "dateCreated": "2024-08-22T13:13:14.588759" }, { "@id": "./", - "@type": [ - "Dataset" - ], + "@type": "Dataset", "hasPart": [ { "@id": "./objects/7" @@ -100,19 +99,44 @@ Each export contains one or more SampleDB objects, identified by their ID, with "identifier": "7", "name": "Measurement", "description": "Object #7", - "dateCreated": "2024-01-09T11:50:17.474030", - "dateModified": "2024-01-09T11:50:17.474030", + "dateCreated": "2024-08-22T13:12:15.196040", + "dateModified": "2024-08-22T13:12:15.196040", "author": { "@id": "./users/3" }, + "creator": { + "@id": "./users/3" + }, "url": "http://localhost:5000/objects/7", - "genre": "measurement", - "keywords": "example_tag, other_tag, tag3", - "mentions": [ + "variableMeasured": [ { - "@id": "./objects/1" + "value": "Measurement", + "@type": "PropertyValue", + "propertyID": "name", + "name": "Object Name" + }, + { + "value": "./objects/1", + "@type": "PropertyValue", + "propertyID": "sample", + "name": "Sample" + }, + { + "value": "This is a test.\nThis **is** a *second* line.\n\nThis line follows an empty line.", + "@type": "PropertyValue", + "propertyID": "comment", + "name": "Comment" + }, + { + "value": "2024-08-22T13:12:15.000000", + "@type": "PropertyValue", + "propertyID": "datetime", + "name": "Measurement Date/Time" } ], + "mentions": { + "@id": "./objects/1" + }, "comment": [], "hasPart": [ { @@ -121,18 +145,49 @@ Each export contains one or more SampleDB objects, identified by their ID, with { "@id": "./objects/7/files.json" } - ] + ], + "genre": "measurement", + "keywords": "example_tag, other_tag, tag3" }, { "@id": "./objects/7/version/0", "@type": "Dataset", "name": "Measurement", "description": "Object #7 version #0", - "dateCreated": "2024-01-09T11:50:17.474030", + "dateCreated": "2024-08-22T13:12:15.196040", + "creator": { + "@id": "./users/3" + }, "author": { "@id": "./users/3" }, "url": "http://localhost:5000/objects/7/versions/0", + "variableMeasured": [ + { + "value": "Measurement", + "@type": "PropertyValue", + "propertyID": "name", + "name": "Object Name" + }, + { + "value": "./objects/1", + "@type": "PropertyValue", + "propertyID": "sample", + "name": "Sample" + }, + { + "value": "This is a test.\nThis **is** a *second* line.\n\nThis line follows an empty line.", + "@type": "PropertyValue", + "propertyID": "comment", + "name": "Comment" + }, + { + "value": "2024-08-22T13:12:15.000000", + "@type": "PropertyValue", + "propertyID": "datetime", + "name": "Measurement Date/Time" + } + ], "hasPart": [ { "@id": "./objects/7/version/0/schema.json" @@ -148,8 +203,8 @@ Each export contains one or more SampleDB objects, identified by their ID, with "description": "Schema for Object #7 version #0", "name": "schema.json", "encodingFormat": "application/json", - "contentSize": 659, - "sha256": "5021dfb058f6e922a98e46742d39134133f08bfd1020fcc3632a4ce96b53a25d" + "contentSize": 784, + "sha256": "17dbb2aba3461cba3031823aaf3a8def73405a0606bb19b8d690cd0870b80ac7" }, { "@id": "./objects/7/version/0/data.json", @@ -157,8 +212,8 @@ Each export contains one or more SampleDB objects, identified by their ID, with "description": "Data for Object #7 version #0", "name": "data.json", "encodingFormat": "application/json", - "contentSize": 463, - "sha256": "d7dd3f955e4a4dd91d7ef78ccc684d4b7c2ce4ae32aa37f805aa6cc32502284b" + "contentSize": 551, + "sha256": "bae26cd574671803b79a0d6c44182dfe733d6dd864bc92df576c35a9b529a977" }, { "@id": "./objects/7/files.json", @@ -175,13 +230,289 @@ Each export contains one or more SampleDB objects, identified by their ID, with "identifier": "1", "name": "OMBE-1", "description": "Object #1", - "dateCreated": "2024-01-09T11:50:17.123065", - "dateModified": "2024-01-09T11:50:17.123065", + "dateCreated": "2024-08-22T13:12:14.823844", + "dateModified": "2024-08-22T13:12:14.823844", "author": { "@id": "./users/2" }, + "creator": { + "@id": "./users/2" + }, "url": "http://localhost:5000/objects/1", - "genre": "sample", + "variableMeasured": [ + { + "value": "OMBE-1", + "@type": "PropertyValue", + "propertyID": "name", + "name": "Sample Name" + }, + { + "value": "2017-02-24T11:56:00.000000", + "@type": "PropertyValue", + "propertyID": "created", + "name": "Creation Datetime" + }, + { + "value": false, + "@type": "PropertyValue", + "propertyID": "checkbox", + "name": "Checkbox" + }, + { + "value": "Option B", + "@type": "PropertyValue", + "propertyID": "dropdown", + "name": "Dropdown" + }, + { + "value": "GaAs", + "@type": "PropertyValue", + "propertyID": "substrate", + "name": "Substrate" + }, + { + "value": "Seed Layer", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/name", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Fe", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/elements/0/name", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.09999999999999999, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/elements/0/rate", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 5.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/thickness", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/oxygen_flow", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 129.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/substrate_temperature", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 1.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/0/repetitions", + "name": "Multilayers \u2192 0 \u2192 Film Layer Repetitions", + "unitCode": "C62" + }, + { + "value": "Buffer Layer", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/name", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Ag", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/elements/0/name", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 1.0, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/elements/0/rate", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 1500.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/thickness", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/oxygen_flow", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 129.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/substrate_temperature", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 1.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/1/repetitions", + "name": "Multilayers \u2192 1 \u2192 Film Layer Repetitions", + "unitCode": "C62" + }, + { + "value": "Pd", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Pd", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/elements/0/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.01, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/elements/0/rate", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 150.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/thickness", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/oxygen_flow", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 99.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/substrate_temperature", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": "Fe", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Film Name" + }, + { + "value": "Fe", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/elements/0/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.049999999999999996, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/elements/0/rate", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 10.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/thickness", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/oxygen_flow", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Oxygen Flow" + }, + { + "value": 129.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/substrate_temperature", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 10.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/2/repetitions", + "name": "Multilayers \u2192 2 \u2192 Film Layer Repetitions", + "unitCode": "C62" + }, + { + "value": "Pd Layer", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/name", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Pd", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/elements/0/name", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.09999999999999999, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/elements/0/rate", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 150.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/thickness", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/oxygen_flow", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 99.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/substrate_temperature", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 1.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/3/repetitions", + "name": "Multilayers \u2192 3 \u2192 Film Layer Repetitions", + "unitCode": "C62" + } + ], "comment": [ { "@id": "./objects/1/comments/1" @@ -203,18 +534,296 @@ Each export contains one or more SampleDB objects, identified by their ID, with { "@id": "./objects/1/files/1/demo.png" } - ] + ], + "genre": "sample" }, { "@id": "./objects/1/version/0", "@type": "Dataset", "name": "OMBE-1", "description": "Object #1 version #0", - "dateCreated": "2024-01-09T11:50:17.123065", + "dateCreated": "2024-08-22T13:12:14.823844", + "creator": { + "@id": "./users/2" + }, "author": { "@id": "./users/2" }, "url": "http://localhost:5000/objects/1/versions/0", + "variableMeasured": [ + { + "value": "OMBE-1", + "@type": "PropertyValue", + "propertyID": "name", + "name": "Sample Name" + }, + { + "value": "2017-02-24T11:56:00.000000", + "@type": "PropertyValue", + "propertyID": "created", + "name": "Creation Datetime" + }, + { + "value": false, + "@type": "PropertyValue", + "propertyID": "checkbox", + "name": "Checkbox" + }, + { + "value": "Option B", + "@type": "PropertyValue", + "propertyID": "dropdown", + "name": "Dropdown" + }, + { + "value": "GaAs", + "@type": "PropertyValue", + "propertyID": "substrate", + "name": "Substrate" + }, + { + "value": "Seed Layer", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/name", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Fe", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/elements/0/name", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.09999999999999999, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/elements/0/rate", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 5.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/thickness", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/oxygen_flow", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 129.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/0/films/0/substrate_temperature", + "name": "Multilayers \u2192 0 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 1.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/0/repetitions", + "name": "Multilayers \u2192 0 \u2192 Film Layer Repetitions", + "unitCode": "C62" + }, + { + "value": "Buffer Layer", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/name", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Ag", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/elements/0/name", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 1.0, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/elements/0/rate", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 1500.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/thickness", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/oxygen_flow", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 129.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/1/films/0/substrate_temperature", + "name": "Multilayers \u2192 1 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 1.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/1/repetitions", + "name": "Multilayers \u2192 1 \u2192 Film Layer Repetitions", + "unitCode": "C62" + }, + { + "value": "Pd", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Pd", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/elements/0/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.01, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/elements/0/rate", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 150.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/thickness", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/oxygen_flow", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 99.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/0/substrate_temperature", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": "Fe", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Film Name" + }, + { + "value": "Fe", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/elements/0/name", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.049999999999999996, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/elements/0/rate", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 10.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/thickness", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/oxygen_flow", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Oxygen Flow" + }, + { + "value": 129.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/2/films/1/substrate_temperature", + "name": "Multilayers \u2192 2 \u2192 Films \u2192 1 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 10.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/2/repetitions", + "name": "Multilayers \u2192 2 \u2192 Film Layer Repetitions", + "unitCode": "C62" + }, + { + "value": "Pd Layer", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/name", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Film Name" + }, + { + "value": "Pd", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/elements/0/name", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Element Name" + }, + { + "value": 0.09999999999999999, + "unitText": "\u00c5/s", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/elements/0/rate", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Elements \u2192 0 \u2192 Rate" + }, + { + "value": 150.0, + "unitText": "\u00c5", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/thickness", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Film Thickness", + "unitCode": "A11" + }, + { + "value": 0.0, + "unitText": "sccm", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/oxygen_flow", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Oxygen Flow" + }, + { + "value": 99.99999999999997, + "unitText": "degC", + "@type": "PropertyValue", + "propertyID": "multilayer/3/films/0/substrate_temperature", + "name": "Multilayers \u2192 3 \u2192 Films \u2192 0 \u2192 Substrate Temperature", + "unitCode": "CEL" + }, + { + "value": 1.0, + "unitText": "1", + "@type": "PropertyValue", + "propertyID": "multilayer/3/repetitions", + "name": "Multilayers \u2192 3 \u2192 Film Layer Repetitions", + "unitCode": "C62" + } + ], "hasPart": [ { "@id": "./objects/1/version/0/schema.json" @@ -251,7 +860,7 @@ Each export contains one or more SampleDB objects, identified by their ID, with "author": { "@id": "./users/2" }, - "dateCreated": "2024-01-09T11:50:17.186542", + "dateCreated": "2024-08-22T13:12:14.931692", "text": "This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. This comment is very long. \nThis comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. \n\nThis comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. This comment has three paragraphs. " }, { @@ -263,7 +872,7 @@ Each export contains one or more SampleDB objects, identified by their ID, with "author": { "@id": "./users/2" }, - "dateCreated": "2024-01-09T11:50:17.195133", + "dateCreated": "2024-08-22T13:12:14.938640", "text": "This is another, shorter comment" }, { @@ -273,7 +882,7 @@ Each export contains one or more SampleDB objects, identified by their ID, with "name": "files.json", "encodingFormat": "application/json", "contentSize": 763, - "sha256": "78f19d39db3d10611c8663391e33d7734cade730fb5e78c5d997c2fad60f39f9" + "sha256": "f5ce84286724361b27832afda621e7c4f287cfdfd75b1034586f9c69648e6b4f" }, { "@id": "./objects/1/files/0/example.txt", @@ -283,7 +892,7 @@ Each export contains one or more SampleDB objects, identified by their ID, with "author": { "@id": "./users/2" }, - "dateCreated": "2024-01-09T11:50:17.204828", + "dateCreated": "2024-08-22T13:12:14.948203", "encodingFormat": "text/plain", "contentSize": 17, "contentUrl": "http://localhost:5000/objects/1/files/0", @@ -297,7 +906,7 @@ Each export contains one or more SampleDB objects, identified by their ID, with "author": { "@id": "./users/2" }, - "dateCreated": "2024-01-09T11:50:17.214566", + "dateCreated": "2024-08-22T13:12:14.958039", "encodingFormat": "image/png", "contentSize": 9952, "contentUrl": "http://localhost:5000/objects/1/files/1", diff --git a/examples/SampleDB/sampledb_export.eln b/examples/SampleDB/sampledb_export.eln index e32df87fb5d5dc0aabb9b06c1009e620098eee19..a2cdb4706c42c903836204ca4658d4501798688b 100644 GIT binary patch literal 56071 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