From 56c8c8a586be2caf1d7cd82169a80f617264f2bb Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Thu, 14 Sep 2023 11:48:55 -0400 Subject: [PATCH 1/8] Added hardware to demo metadata --- .../demo.metadata.schema.0.1.0.json | 7 +++++++ .../objects/hardware.schema.0.1.0.json | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 metadata_schemas/objects/hardware.schema.0.1.0.json diff --git a/metadata_schemas/demo.metadata.schema.0.1.0.json b/metadata_schemas/demo.metadata.schema.0.1.0.json index 3a7e28b7fd..d879594eb1 100644 --- a/metadata_schemas/demo.metadata.schema.0.1.0.json +++ b/metadata_schemas/demo.metadata.schema.0.1.0.json @@ -106,6 +106,13 @@ "items": { "$ref": "file:./objects/related.content.schema.0.1.0.json" } + }, + "hardware": { + "description": "An array of objects each consisting of the name of a hardware vendor and a link to run the demo on their hardware. An empty array is allowed.", + "type": "array", + "items": { + "$ref": "file:./objects/hardware.schema.0.1.0.json" + } } }, "required": [ diff --git a/metadata_schemas/objects/hardware.schema.0.1.0.json b/metadata_schemas/objects/hardware.schema.0.1.0.json new file mode 100644 index 0000000000..d9ae676b47 --- /dev/null +++ b/metadata_schemas/objects/hardware.schema.0.1.0.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "hardware.schema.0.1.0.json", + "title": "Hardware", + "description": "Hardware vendors that can run the demo on their hardware", + "type": "object", + "properties": { + "name": { + "description": "The name of the hardware vendor", + "type": "string" + }, + "link": { + "description": "Link to run the demo on the vendor's hardware", + "type": "string" + } + }, + "required": [ + "name", "link" + ] +} \ No newline at end of file From 26d641c24fb4ab95df69726598a595510390f6c1 Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Thu, 14 Sep 2023 12:23:55 -0400 Subject: [PATCH 2/8] added id and logo fields to the hardware metadata schema --- metadata_schemas/demo.metadata.schema.0.1.0.json | 2 +- metadata_schemas/objects/hardware.schema.0.1.0.json | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/metadata_schemas/demo.metadata.schema.0.1.0.json b/metadata_schemas/demo.metadata.schema.0.1.0.json index d879594eb1..7c6c628140 100644 --- a/metadata_schemas/demo.metadata.schema.0.1.0.json +++ b/metadata_schemas/demo.metadata.schema.0.1.0.json @@ -108,7 +108,7 @@ } }, "hardware": { - "description": "An array of objects each consisting of the name of a hardware vendor and a link to run the demo on their hardware. An empty array is allowed.", + "description": "An array of objects representing third-party vendors who can run the demo on their hardware. An empty array is allowed.", "type": "array", "items": { "$ref": "file:./objects/hardware.schema.0.1.0.json" diff --git a/metadata_schemas/objects/hardware.schema.0.1.0.json b/metadata_schemas/objects/hardware.schema.0.1.0.json index d9ae676b47..3719069902 100644 --- a/metadata_schemas/objects/hardware.schema.0.1.0.json +++ b/metadata_schemas/objects/hardware.schema.0.1.0.json @@ -5,6 +5,10 @@ "description": "Hardware vendors that can run the demo on their hardware", "type": "object", "properties": { + "id": { + "description": "The ID of the hardware vendor", + "type": "string" + }, "name": { "description": "The name of the hardware vendor", "type": "string" @@ -12,7 +16,12 @@ "link": { "description": "Link to run the demo on the vendor's hardware", "type": "string" - } + }, + "logo": { + "description": "The URI of the vendor's logo image, whether it be something hosted locally or on another site.", + "type": "string", + "format": "uri-reference" + } }, "required": [ "name", "link" From f54c3d8a0b3638c176000775d773bbb17686171a Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Thu, 14 Sep 2023 14:24:05 -0400 Subject: [PATCH 3/8] added hardware metadata to select demos --- _static/hardware_logos/aws.png | Bin 0 -> 28021 bytes ...rial_quantum_transfer_learning.metadata.json | 10 +++++++++- .../tutorial_quanvolution.metadata.json | 10 +++++++++- .../tutorial_qubit_rotation.metadata.json | 8 ++++++++ ...utorial_variational_classifier.metadata.json | 8 ++++++++ .../objects/hardware.schema.0.1.0.json | 2 +- 6 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 _static/hardware_logos/aws.png diff --git a/_static/hardware_logos/aws.png b/_static/hardware_logos/aws.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0e78ac3ac48bfa8d0d105ae68231593bbe0e33 GIT binary patch literal 28021 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 F@P98tNW1_5 literal 0 HcmV?d00001 diff --git a/demonstrations/tutorial_quantum_transfer_learning.metadata.json b/demonstrations/tutorial_quantum_transfer_learning.metadata.json index 3db96a20fa..ef2d6bb9fc 100644 --- a/demonstrations/tutorial_quantum_transfer_learning.metadata.json +++ b/demonstrations/tutorial_quantum_transfer_learning.metadata.json @@ -60,5 +60,13 @@ ], "basedOnPapers": [], "referencedByPapers": [], - "relatedContent": [] + "relatedContent": [], + "hardware": [ + { + "id": "aws", + "name": "Amazon", + "link": "https://pennylane.ai/qml/demos/tutorial_quantum_transfer_learning", + "logo": "/_static/hardware_logos/aws.png" + } + ] } diff --git a/demonstrations/tutorial_quanvolution.metadata.json b/demonstrations/tutorial_quanvolution.metadata.json index 02b338d42b..cc129ea9bd 100644 --- a/demonstrations/tutorial_quanvolution.metadata.json +++ b/demonstrations/tutorial_quanvolution.metadata.json @@ -33,5 +33,13 @@ ], "basedOnPapers": [], "referencedByPapers": [], - "relatedContent": [] + "relatedContent": [], + "hardware": [ + { + "id": "aws", + "name": "Amazon", + "link": "https://pennylane.ai/qml/demos/tutorial_quanvolution", + "logo": "/_static/hardware_logos/aws.png" + } + ] } diff --git a/demonstrations/tutorial_qubit_rotation.metadata.json b/demonstrations/tutorial_qubit_rotation.metadata.json index 83cf4746a3..9c1d9eb30b 100644 --- a/demonstrations/tutorial_qubit_rotation.metadata.json +++ b/demonstrations/tutorial_qubit_rotation.metadata.json @@ -39,5 +39,13 @@ "id": "tutorial_state_preparation", "weight": 1.0 } + ], + "hardware": [ + { + "id": "aws", + "name": "Amazon", + "link": "https://pennylane.ai/qml/demos/tutorial_qubit_rotation", + "logo": "/_static/hardware_logos/aws.png" + } ] } diff --git a/demonstrations/tutorial_variational_classifier.metadata.json b/demonstrations/tutorial_variational_classifier.metadata.json index 97f1bdc3b8..0423a3d02e 100644 --- a/demonstrations/tutorial_variational_classifier.metadata.json +++ b/demonstrations/tutorial_variational_classifier.metadata.json @@ -39,5 +39,13 @@ "id": "ensemble_multi_qpu", "weight": 1.0 } + ], + "hardware": [ + { + "id": "aws", + "name": "Amazon", + "link": "https://pennylane.ai/qml/demos/tutorial_variational_classifier", + "logo": "/_static/hardware_logos/aws.png" + } ] } diff --git a/metadata_schemas/objects/hardware.schema.0.1.0.json b/metadata_schemas/objects/hardware.schema.0.1.0.json index 3719069902..45385ae165 100644 --- a/metadata_schemas/objects/hardware.schema.0.1.0.json +++ b/metadata_schemas/objects/hardware.schema.0.1.0.json @@ -24,6 +24,6 @@ } }, "required": [ - "name", "link" + "id", "name", "link", "logo" ] } \ No newline at end of file From 67cb1c322d14e82d19de84af626c901f23bb8814 Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Thu, 14 Sep 2023 14:54:03 -0400 Subject: [PATCH 4/8] updated demonstrations_metadata.md --- demonstrations_metadata.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/demonstrations_metadata.md b/demonstrations_metadata.md index 8cd24ce48c..fff385beab 100644 --- a/demonstrations_metadata.md +++ b/demonstrations_metadata.md @@ -58,6 +58,14 @@ Below is given an example of a complete metadata file for a demonstration. "id": "tutorial_qubit_rotation", "weight": 1.0 } + ], + "hardware": [ + { + "id": "aws", + "name": "Amazon", + "link": "https://pennylane.ai/qml/demos/tutorial_quantum_transfer_learning", + "logo": "/_static/hardware_logos/aws.png" + } ] } ``` @@ -84,6 +92,7 @@ The table below gives details about the fields in the metadata JSON file for ver | `basedOnPapers` | Yes, but can be an empty array | `array` of `string` | An array of the DOIs for the papers this demo is based on. | | `referencedByPapers` | Yes, but can be an empty array | `array` of `string` | An array of the DOIs of any papers that reference this demo. | | `relatedContent` | Yes, but can be an empty array | `array` of `object` | An array of objects describing the content related to this demo. See below for the object structure. | +| `hardware` | No. Can be an empty array. | `array` of `object` | An array of objects representing third-party vendors who can run the demo on their hardware. See below for the object structure. | ### Author Object Properties @@ -125,6 +134,15 @@ The table below gives details about the fields in the metadata JSON file for ver | `id` | Yes | `string` | The id of the content that this relation refers to. For demos, it's the file name of the demo without the extension - i.e., `tutorial_haar_measure`. | | `weight` | Yes | `number` | A number between -1.0 and 1.0 indicating both how closely related these two pieces of content are, and which one it is preferable to encounter first. A value of 1.0 indicates that these two pieces of content are *very* closely related, and this one should be read first, and the linked one second. A value of -1.0 indicates again that these two pieces of content are very closely related, but that the linked one should be read first. A value of 0.0 indicates that these two pieces of content have nothing to do with each other. | +### Hardware Object Properties + +| Name | Is Required | Value Type | Description | +|---|---|---|---| +| `id` | Yes | `string` | The ID of the hardware vendor | +| `name` | Yes | `string` | The name of the hardware vendor | +| `link` | Yes | `string` | Link to run the demo on the vendor's hardware | +| `logo` | Yes | `string` | The URI of the vendor's logo image, whether it be something hosted locally or on another site. | + @@ -202,7 +220,9 @@ The table below gives details about the fields in the metadata JSON file for ver "id": "", "weight": 1.0 } - ] + ], + "relatedContent": [], + "hardware": [] } ``` From 41632939d5031f2530116a297c10c4a5c0fd3ad4 Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Fri, 15 Sep 2023 11:52:30 -0400 Subject: [PATCH 5/8] removed hardware metadata from all but one demo for testing --- .../tutorial_quantum_transfer_learning.metadata.json | 10 +--------- demonstrations/tutorial_quanvolution.metadata.json | 10 +--------- .../tutorial_variational_classifier.metadata.json | 8 -------- 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/demonstrations/tutorial_quantum_transfer_learning.metadata.json b/demonstrations/tutorial_quantum_transfer_learning.metadata.json index ef2d6bb9fc..3db96a20fa 100644 --- a/demonstrations/tutorial_quantum_transfer_learning.metadata.json +++ b/demonstrations/tutorial_quantum_transfer_learning.metadata.json @@ -60,13 +60,5 @@ ], "basedOnPapers": [], "referencedByPapers": [], - "relatedContent": [], - "hardware": [ - { - "id": "aws", - "name": "Amazon", - "link": "https://pennylane.ai/qml/demos/tutorial_quantum_transfer_learning", - "logo": "/_static/hardware_logos/aws.png" - } - ] + "relatedContent": [] } diff --git a/demonstrations/tutorial_quanvolution.metadata.json b/demonstrations/tutorial_quanvolution.metadata.json index cc129ea9bd..02b338d42b 100644 --- a/demonstrations/tutorial_quanvolution.metadata.json +++ b/demonstrations/tutorial_quanvolution.metadata.json @@ -33,13 +33,5 @@ ], "basedOnPapers": [], "referencedByPapers": [], - "relatedContent": [], - "hardware": [ - { - "id": "aws", - "name": "Amazon", - "link": "https://pennylane.ai/qml/demos/tutorial_quanvolution", - "logo": "/_static/hardware_logos/aws.png" - } - ] + "relatedContent": [] } diff --git a/demonstrations/tutorial_variational_classifier.metadata.json b/demonstrations/tutorial_variational_classifier.metadata.json index 0423a3d02e..97f1bdc3b8 100644 --- a/demonstrations/tutorial_variational_classifier.metadata.json +++ b/demonstrations/tutorial_variational_classifier.metadata.json @@ -39,13 +39,5 @@ "id": "ensemble_multi_qpu", "weight": 1.0 } - ], - "hardware": [ - { - "id": "aws", - "name": "Amazon", - "link": "https://pennylane.ai/qml/demos/tutorial_variational_classifier", - "logo": "/_static/hardware_logos/aws.png" - } ] } From 4998fb6421b26f00b181c969dbadded390787332 Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Mon, 18 Sep 2023 11:12:41 -0400 Subject: [PATCH 6/8] removed unnecessary name field --- demonstrations/tutorial_qubit_rotation.metadata.json | 1 - demonstrations_metadata.md | 2 -- metadata_schemas/objects/hardware.schema.0.1.0.json | 6 +----- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/demonstrations/tutorial_qubit_rotation.metadata.json b/demonstrations/tutorial_qubit_rotation.metadata.json index 9c1d9eb30b..5ebff321db 100644 --- a/demonstrations/tutorial_qubit_rotation.metadata.json +++ b/demonstrations/tutorial_qubit_rotation.metadata.json @@ -43,7 +43,6 @@ "hardware": [ { "id": "aws", - "name": "Amazon", "link": "https://pennylane.ai/qml/demos/tutorial_qubit_rotation", "logo": "/_static/hardware_logos/aws.png" } diff --git a/demonstrations_metadata.md b/demonstrations_metadata.md index fff385beab..9aaf78a408 100644 --- a/demonstrations_metadata.md +++ b/demonstrations_metadata.md @@ -62,7 +62,6 @@ Below is given an example of a complete metadata file for a demonstration. "hardware": [ { "id": "aws", - "name": "Amazon", "link": "https://pennylane.ai/qml/demos/tutorial_quantum_transfer_learning", "logo": "/_static/hardware_logos/aws.png" } @@ -139,7 +138,6 @@ The table below gives details about the fields in the metadata JSON file for ver | Name | Is Required | Value Type | Description | |---|---|---|---| | `id` | Yes | `string` | The ID of the hardware vendor | -| `name` | Yes | `string` | The name of the hardware vendor | | `link` | Yes | `string` | Link to run the demo on the vendor's hardware | | `logo` | Yes | `string` | The URI of the vendor's logo image, whether it be something hosted locally or on another site. | diff --git a/metadata_schemas/objects/hardware.schema.0.1.0.json b/metadata_schemas/objects/hardware.schema.0.1.0.json index 45385ae165..7fa7ec8c2b 100644 --- a/metadata_schemas/objects/hardware.schema.0.1.0.json +++ b/metadata_schemas/objects/hardware.schema.0.1.0.json @@ -9,10 +9,6 @@ "description": "The ID of the hardware vendor", "type": "string" }, - "name": { - "description": "The name of the hardware vendor", - "type": "string" - }, "link": { "description": "Link to run the demo on the vendor's hardware", "type": "string" @@ -24,6 +20,6 @@ } }, "required": [ - "id", "name", "link", "logo" + "id", "link", "logo" ] } \ No newline at end of file From 807d6df1663ef8e5a9bf53a4db6ce2b1dbdf44c5 Mon Sep 17 00:00:00 2001 From: Lucas Silbernagel Date: Mon, 18 Sep 2023 11:48:21 -0400 Subject: [PATCH 7/8] updated hardware id to enum type --- demonstrations_metadata.md | 2 +- metadata_schemas/objects/hardware.schema.0.1.0.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demonstrations_metadata.md b/demonstrations_metadata.md index 9aaf78a408..11865a9f40 100644 --- a/demonstrations_metadata.md +++ b/demonstrations_metadata.md @@ -137,7 +137,7 @@ The table below gives details about the fields in the metadata JSON file for ver | Name | Is Required | Value Type | Description | |---|---|---|---| -| `id` | Yes | `string` | The ID of the hardware vendor | +| `id` | Yes | `enum` | The ID of the hardware vendor | | `link` | Yes | `string` | Link to run the demo on the vendor's hardware | | `logo` | Yes | `string` | The URI of the vendor's logo image, whether it be something hosted locally or on another site. | diff --git a/metadata_schemas/objects/hardware.schema.0.1.0.json b/metadata_schemas/objects/hardware.schema.0.1.0.json index 7fa7ec8c2b..fefe1e9854 100644 --- a/metadata_schemas/objects/hardware.schema.0.1.0.json +++ b/metadata_schemas/objects/hardware.schema.0.1.0.json @@ -7,7 +7,7 @@ "properties": { "id": { "description": "The ID of the hardware vendor", - "type": "string" + "enum": ["aws"] }, "link": { "description": "Link to run the demo on the vendor's hardware", From 41dd34e148126657ddac3acaa87c4d51d1040b26 Mon Sep 17 00:00:00 2001 From: Rashid N H M <95639609+rashidnhm@users.noreply.github.com> Date: Wed, 20 Sep 2023 11:15:22 -0400 Subject: [PATCH 8/8] Trigger CI