diff --git a/EVES/EVES-003/eves-003.md b/EVES/EVES-003/eves-003.md index 283cbff..3b67e40 100644 --- a/EVES/EVES-003/eves-003.md +++ b/EVES/EVES-003/eves-003.md @@ -13,11 +13,11 @@ replaces: None ## Abstract This specification defines the structure of an asset in the ENVITED-X Data Space and outlines the process for uploading assets to ensure compliance, security, and interoperability. -It leverages existing standards, such as the Gaia-X 4 PLC-AAD Manifest Ontology, and implements privacy layers, validation, and metadata mapping aligned with [Tezos TZIP-21](https://docs.tezos.com/architecture/governance/improvement-process#tzip-21-rich-contract-metadata). +It leverages existing specifications, such as the Gaia-X Trust Framework, the Gaia-X 4 PLC-AAD Ontologies, and implements privacy layers, validation, and metadata mapping aligned with [Tezos TZIP-21](https://docs.tezos.com/architecture/governance/improvement-process#tzip-21-rich-contract-metadata). ## Motivation -Standardizing the definition and upload process for assets in the ENVITED-X Data Space ensures: +Standardizing the definition and upload process for digital assets `SimulationAssets` in the ENVITED-X Data Space ensures: - Interoperability with existing Gaia-X data spaces. - Security through CID-based identification and metadata validation. @@ -27,40 +27,56 @@ This EVES addresses the need for clear guidelines to onboard assets and synchron ## Specification -### 1. Asset Definition +### 1. Digital Asset Definition -An asset is defined by the [Gaia-X 4 PLC-AAD Manifest Ontology](https://github.com/ASCS-eV/ontology-management-base/tree/main/manifest). -The example implementation in the 📁 `metadata/` folder is based on release v0.1.8 of the [HD-Map Asset Example](https://github.com/ASCS-eV/hd-map-asset-example/releases/tag/v0.1.8). +The `envited-x:SimulationAsset` defines a digital asset within the domain of simulation including the core simulation data and all necessary files for describing, evaluating, and visualizing the dataset. +All simulation assets MUST be derived from a common `envited-x` ontology defined in the [Gaia-X 4 PLC-AAD Ontology Management Base][1]. +A data space portal SHALL display the currently supported version of the ontologies like e.g.: `https://ontologies.envited-x.net/envited-x/v2/ontology#`. +Each simulation asset SHALL be compliant with the [Gaia-X Ontology and SHACL shapes 2210][2]. +The `gx` turtle shacle shapes are derived from the [Gaia-X Trust Framework Schema][3] and the respective application/ld+json [Gaia-X Trust Framework Shapes][4]. +A [GaiaX Compliant Claims Example][5] MAY be generated using the [GaiaX 4 PLC-AAD Claim Compliance Provider][6]. -This EVES references the [Gaia-X Policy Rules Compliance Document (Release 24.11)](https://docs.gaia-x.eu/policy-rules-committee/compliance-document/24.11/). Compatibility with this release is **to be verified** in a future update of this EVES. +The example implementation in the 📁 `example/` folder is based on release v0.2.3 of the [ASCS HD-Map Asset Example][7]. + +Asset examples can be found in the following repositories: + +- [HD-Map Asset Example](https://github.com/ASCS-eV/hd-map-asset-example) +- [Environment Asset Example](https://github.com/ASCS-eV/environment-model-asset-example) +- [Scenario Asset Example](https://github.com/ASCS-eV/scenario-asset-example) +- [OSI-Trace Asset Example](https://github.com/ASCS-eV/ositrace-asset-example/tree/main) ### 2. Pinata IPFS and CID Management +It is RECOMMENDED to use [IPFS][8] within the ENVITED-X Data Space for making public data available. +IPFS is a peer-to-peer content delivery network built around the innovation of content addressing: store, retrieve, and locate data based on the fingerprint of its actual content rather than its name or location. + #### CID v1 -- Assets uploaded via [Pinata](https://pinata.cloud/) MUST use [CID v1](https://docs.ipfs.tech/concepts/content-addressing/#version-1-v1). -- This is achievable only through the API using the `pinataOptions` parameter, as outlined [here](https://docs.pinata.cloud/web3/pinning/pinata-metadata#pinataoptions). +Artifacts uploaded to IPFS e.g. using services like [Pinata][9] MUST use the content identifier version [CID v1][11]. +In Pinata this is achievable through the API using the `pinataOptions` parameter, as outlined in the [documentation][10]. #### File Naming -- Uploaded file names MUST exclude extensions (e.g., use `file` instead of `file.json`) to avoid issues such as double extensions during downloads (e.g., `file.json.json`). +Uploaded file names MUST exclude extensions (e.g., use `file` instead of `file.json`) to avoid issues such as double extensions during downloads (e.g., `file.json.json`). ### 3. Privacy Layer The ENVITED-X Data Space implements a three-tiered privacy model: -| manifest:accessRole | ENVITED-X Domain | Comment | +| envited-x:accessRole | ENVITED-X Domain | Comment | | -------------------- | --------------------------------------------------------------------- | ------------------------------------- | -| `owner` | | CID v1, signed URLs, asset credential | -| `registeredUser` | | CID v1, signed URLs, DEMIM credential | -| `publicUser` | to | CID v1, public, indexer to new URL | +| `isOwner` | | CID v1, signed URLs, asset credential | +| `isRegistered` | | CID v1, signed URLs, DEMIM credential | +| `isPublic` | to | CID v1, public, indexer to new URL | ### 4. Asset Validation and Upload Process +The following process is implemented in the [ENVITED-X Data Space][12] portal developed by the Automotive Solution Center for Simulation e.V. + #### Step 1: Client-Side Pre-Validation - Drag and drop `asset.zip` into the upload field. -- Validate the `manifest.json`: +- Validate the `manifest_reference.json`: 1. Ensure JSON structure matches the manifest SHACL constraints. 2. Verify all referenced files exist locally or remotely as specified. 3. Locate the `domainMetadata.json` file. @@ -73,12 +89,12 @@ The ENVITED-X Data Space implements a three-tiered privacy model: - Trigger the upload process by clicking the "Upload" button. - Calculate the CID of `asset.zip`. - Rename `asset.zip` to `CID.zip` and store at `https://assets.envited-x.net/Asset-CID`. -- Store *registeredUser* metadata at `https://metadata.envited-x.net/Asset-CID`. -- Store *publicUser* metadata at `https://ipfs.envited-x.net/Asset-CID/Data-CID`. -- Calculate CIDs for all `publicUser` data. -- Create `tzip21_asset_manifest.json` by replacing relative paths in `manifest.json` with IPFS/envited-x.net URLs. -- Replace `@id` from `manifest.json` with generated UUID in `tzip21_asset_manifest.json`. -- Create `tzip21_token_metadata.json` and map metadata fields. +- Store `isRegistered` metadata at `https://metadata.envited-x.net/Asset-CID`. +- Store `isPublic` metadata at `https://ipfs.envited-x.net/Asset-CID/Data-CID`. +- Calculate CIDs for all `isPublic` data. +- Create `tzip21_manifest.json` by replacing relative paths in `manifest_reference.json` with IPFS/envited-x.net URLs. +- Replace `@id` from `manifest_reference.json` with generated UUID in `tzip21_manifest.json`. +- Create `tzip21_token_metadata.json` and map the metadata fields OPTIONALLY use an application/ld+json conform to the [tzip21 ontology][19]. #### Step 3: Preview Data @@ -87,28 +103,29 @@ The ENVITED-X Data Space implements a three-tiered privacy model: #### Step 4: Mint Token -- Requirement: Use signed CIDs for the upload to Pinata according to EIP-712. -- Upload `publicUser` information and `tzip21_asset_manifest.json` to IPFS. -- Verify that CIDs from Pinata returned the same CIDs then the pre-calculation. +- It is RECOMMENDED to use signed CIDs for the upload to IPFS according to [EIP-712][13]. +- Upload `isPublic` information and `tzip21_manifest.json` to IPFS. +- It is RECOMMENDED to verify that CIDs from the IPFS service or software returns the same CIDs as the pre-calculation. - Upload `tzip21_token_metadata.json` to IPFS. - Mint token with linked metadata. - The wallet/SDK will provide feedback if a token was minted successfully. #### Step 5: Listener and Database Synchronization -- Use a listener to detect mint events and synchronize data with the ENVITED-X database. +- Use a listener to detect mint events and synchronize data with the ENVITED-X Data Space portal database. - Verify that data referenced in the token metadata is the same as stored in Step 2). -- If asset is not yet in DB then mark it as foreign asset and add the `publisher`information to the DB. +- If asset is not yet in DB then mark it as foreign asset and add the `publisher` information to the DB. - Verify the asset in reverse order as in step 1). - Only public information of assets can be verified if uploaded through another application then ENVITED-X. ### 5. Database Synchronization -#### CID as the Primary Identifier +#### @id and CID as the Primary Identifier -- The CID of the uploaded `asset.zip` serves as the unique identifier connecting data across all systems. +- The CID of the uploaded `asset.zip` serves as the unique identifier detecting identical datasets across all systems. +- In addition the unique identifier `@id` of the `envied-x:SimulationAsset` in the `domainMetadata.json` SHALL be used for identification of the digital assets. - The CIDs MAY be signed by the user according to EIP-712. -- A UUID MUST be generated pre-mint to link the asset with the ENVITED-X database securely. +- A UUID MUST be generated for the `tzip21_manifest.json` pre-mint to link the asset with the ENVITED-X database securely. - The DID of the member associated with the user minting the asset MUST be known. #### Pre-Mint Information @@ -117,55 +134,86 @@ If additional non-public information needs to be stored in the database before m #### Synchronization and Security -The synchronization between the smart contract and the ENVITED-X database relies on: +[EVES-007](../EVES-007/eves-007.md) defines the ENVITED-X Blockchain Identifier URN Schema. +The synchronization between the smart contract as in the [Marketplace Contract Reference Implementation][18] and the ENVITED-X database relies on: -1. The contract DID (current Ghostnet contract): - `did:tezos:NetXnHfVqm9iesp:KT1PCaD2kmgCHy15wQ1gpqZUy9RLxyBVJdTF` -2. Search `CID` of `tzip21_token_metadata.json` in database. +1. The contract identifier on Tezos (current Ghostnet contract): + `urn:blockchain:tezos:NetXnHfVqm9iesp:contract:KT1PCaD2kmgCHy15wQ1gpqZUy9RLxyBVJdTF` +2. Search `CID` of `tzip21_token_metadata.json` and the complete `asset.zip` in database. 3. Compare if signature on CID is a `user` belonging to the `member` and if member is owner of token. 4. Check: Uniqueness of CID in database. #### TZIP-21 rich metadata mapping -Attributes not in the table are static and the same for every mint. -Examples are the first five tags or "publishers", which is always ENVITED-X and the ASCS as the mint is conducted through the website. - -| TZIP-21 | EVES-003 | Comment | -| -------------------| ---------------------------------------------------- | ------------------------------------------------------------ | -| "name" | hdmap:general:name | | -| "description" | hdmap:general:description | | -| "tags" | hdmap:format:formatType + " " + hdmap:format:version | All tags static except for the format | -| "minter" | Member DID associated with user initiating the mint | Returned by the View from the DEMIM revocation registry | -| "creators" | Name of the company | Taken from the company profile the user belongs to | -| "date" | [System date-time][1] | | -| "rights" | "manifest:spdxIdentifier" | [SPDX identifier][2] | -| "rightsUri" | "manifest:licenseData:manifest:path" | Full os license text URL OR policy smart contract did | -| "artifactUri" | | | -| "identifier" | Asset-CID | | -| "externalUri" | Uploaded domainMetadata.json to IPFS | | -| "displayUri" | "manifest:contentData:visualization" | Always use the first media image | -| "formats" | Add info for artifactUri, externalUri and displayUri | | -| "attributes" | Same as in example with IPFS CIDs+URL | For other asset types hdmap would be exchanged | +Attributes not in the table are static and the same for every mint as in the 📁 `example/tzip21_token_metadata.json`. +Examples are the first five tags or "publishers", which is always ENVITED-X and the ASCS if the mint is conducted through the [website][12]. + +| TZIP-21 | EVES-003 | Comment | +| -------------------| -------------------------------------------------------- | ------------------------------------------------------------ | +| "name" | envited-x:DataResource:gx:name | | +| "description" | envited-x:DataResource:gx:description | | +| "tags" | $TAG = format:formatType + " " + format:version | "tags": ["GaiaX","ASCS","ENVITED-X","EVES","nft", "$TAG"] | +| "minter" | Member DID associated with user initiating the mint | Returned by the View from the DEMIM revocation registry | +| "creators" | Name of the company | Taken from the company profile the user belongs to | +| "date" | [System date-time][14] | | +| "rights" | manifest:hasLicense:gx:license | [SPDX identifier][15] | +| "rightsUri" | manifest:hasLicense:licenseData:hasFileMetadata:filePath | Full os license text URL OR policy smart contract did | +| "artifactUri" | | | +| "identifier" | Simulation Asset @id | Unique identifier from the domainMetadata.json | +| "externalUri" | Uploaded domainMetadata.json to IPFS | | +| "displayUri" | "manifest:hasArtifacts:Link" of category "isMedia" | Always use the first media image | +| "formats" | artifactUri, externalUri, displayUri, tzip21_manifest | | +| "attributes" | Reverse domain notation for ontologies + URL | All domain specific prefixes from the domainMetadata.json | + +**>Note:** Some of the information need to be extracted from the `gx:LegalParticipant`. ### Custom SPDX license identifier - Custom license in a LICENSE file in the asset.zip root folder: "LicenseRef-Custom-Commercial-Agreement" - Custom license in a smart contract as json-ld ODRL policy: "LicenseRef-Policy-Smart-Contract" -[1]: https://json-schema.org/understanding-json-schema/reference/string#dates-and-times -[2]: https://softwareengineering.stackexchange.com/a/450839/443441 - ## Backwards Compatibility This specification introduces new processes for asset uploads and is fully compatible with existing ENVITED-X systems. No retroactive changes to previous assets are required. +## Future Improvements + +The compatibility with the current release of the [Gaia-X Policy Rules Compliance Document (Release 24.11)][17] is **to be implemented** in a future update of this EVES. + ## References -1. [Gaia-X 4 PLC-AAD Manifest Ontology](https://github.com/ASCS-eV/ontology-management-base/tree/main/manifest) -2. [HD-Map Asset Example](https://github.com/ASCS-eV/hd-map-asset-example) -3. [Pinata Documentation](https://docs.pinata.cloud/web3/pinning/pinata-metadata#pinataoptions) -4. [RFC 2119: Key Words for Use in RFCs to Indicate Requirement Levels](https://datatracker.ietf.org/doc/html/rfc2119) -5. [Gaia-X Policy Rules Compliance Document (Release 24.11)](https://docs.gaia-x.eu/policy-rules-committee/compliance-document/24.11/) -6. [Reference Implementation](https://github.com/ASCS-eV/smart-contracts/tree/main/contracts/marketplace/) -7. [EIP-712](https://eips.ethereum.org/EIPS/eip-712) +- [Gaia-X 4 PLC-AAD Ontology Management Base][1] +- [Gaia-X Ontology and SHACL shapes 2210][2] +- [Gaia-X Trust Framework Schema][3] +- [Gaia-X Trust Framework Shapes][4] +- [GaiaX Compliant Claims Example][5] +- [GaiaX 4 PLC-AAD Claim Compliance Provider][6] +- [ASCS HD-Map Asset Example][7] +- [IPFS][8] +- [Pinata Documentation][10] +- [ENVITED-X Data Space Portal][12] +- [EIP-712][13] +- [RFC 2119: Key Words for Use in RFCs to Indicate Requirement Levels][16] +- [Gaia-X Policy Rules Compliance Document (Release 24.11)][17] +- [Marketplace Contract Reference Implementation][18] + +[1]: https://github.com/ASCS-eV/ontology-management-base/ +[2]: https://github.com/GAIA-X4PLC-AAD/ontology-management-base/tree/main/gx +[3]: https://registry.lab.gaia-x.eu/v1/api/trusted-schemas-registry/v2/schemas/gax-trust-framework +[4]: https://registry.lab.gaia-x.eu/v1/api/trusted-shape-registry/v1/shapes/jsonld/trustframework# +[5]: https://github.com/GAIA-X4PLC-AAD/gaia-x-compliant-claims-example +[6]: https://github.com/GAIA-X4PLC-AAD/claim-compliance-provider +[7]: https://github.com/ASCS-eV/hd-map-asset-example/releases/tag/v0.2.3 +[8]: https://ipfs.tech/ +[9]: https://pinata.cloud/ +[10]: https://docs.pinata.cloud/web3/pinning/pinata-metadata#pinataoptions +[11]: https://docs.ipfs.tech/concepts/content-addressing/#version-1-v1 +[12]: https://envited-x.net/ +[13]: https://eips.ethereum.org/EIPS/eip-712 +[14]: https://json-schema.org/understanding-json-schema/reference/string#dates-and-times +[15]: https://softwareengineering.stackexchange.com/a/450839/443441 +[16]: https://datatracker.ietf.org/doc/html/rfc2119 +[17]: https://docs.gaia-x.eu/policy-rules-committee/compliance-document/24.11/ +[18]: https://github.com/ASCS-eV/smart-contracts/tree/main/contracts/marketplace/ +[19]: https://github.com/GAIA-X4PLC-AAD/ontology-management-base/tree/main/tzip21 diff --git a/EVES/EVES-003/example/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm.zip b/EVES/EVES-003/example/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm.zip new file mode 100644 index 0000000..b36b9f2 Binary files /dev/null and b/EVES/EVES-003/example/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm.zip differ diff --git a/EVES/EVES-003/example/tzip21_manifest.json b/EVES/EVES-003/example/tzip21_manifest.json new file mode 100644 index 0000000..4e99130 --- /dev/null +++ b/EVES/EVES-003/example/tzip21_manifest.json @@ -0,0 +1,734 @@ +{ + "@context": { + "envited-x": "https://ontologies.envited-x.net/envited-x/v2/ontology#", + "manifest": "https://ontologies.envited-x.net/manifest/v4/ontology#", + "gx": "https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#", + "sh": "http://www.w3.org/ns/shacl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "skos": "http://www.w3.org/2004/02/skos/core#" + }, + "@id": "urn:uuid:896f0b9d-5626-4ddb-9d28-568f4af63603", + "@type": "envited-x:Manifest", + "manifest:hasManifestReference": { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isManifest" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "./tzip21_manifest.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/ld+json", + "@type": "xsd:string" + } + } + }, + "manifest:hasLicense": { + "@type": "manifest:License", + "gx:license": { + "@value": "MPL-2.0" + }, + "manifest:licenseData": { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isLicense" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://www.mozilla.org/en-US/MPL/2.0/", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "text/html", + "@type": "xsd:string" + } + } + } + }, + "manifest:hasArtifacts": [ + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isOwner" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isSimulationData" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://assets.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/simulation-data/Testfeld_Niedersachsen_ALKS_xodr_sample_offset.xodr", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/x-xodr", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 645096, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset.xodr", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMiscellaneous" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/simulation-data/Testfeld_Niedersachsen_ALKS_xodr_sample_offset.bjson", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 61104, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset.bjson", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isDocumentation" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "ipfs://bafkreif2ycyckuzyv7gc3dsccquyn6scu64johaufjtz3yqzcpbwnpb3fm", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/pdf", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 101219, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_..._documentation.pdf", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isDocumentation" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/documentation/Testfeld_Niedersachsen_ALKS_xodr_sample_offset_documentation_stats.txt", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "text/plain", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 4536, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset_documentation_stats.txt", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:iri": { + "@id": "did:web:registry.gaia-x.eu:HdMap:DjHgK5ErTBow1Ya3J05tW9l12skGWgZn6kA9" + }, + "skos:note": { + "@value": "This is the domain metadata for a HD Map.", + "@type": "xsd:string" + }, + "sh:conformsTo": [ + { + "@id": "https://ontologies.envited-x.net/hdmap/v3/ontology" + } + ], + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMetadata" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "ipfs://bafkreicuwg3s4uvei2iu2p5eobozghdodtwhwoi6qiawhwqj3nflrk6dxi", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/ld+json", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 3751, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "hdmap_instance.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isValidationReport" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/validation-reports/Testfeld_Niedersachsen_ALKS_xodr_sample_offset_asam_cb_xodr.xqar", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/x-xqar", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 9524, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset_asam_cb_xodr.xqar", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isValidationReport" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "ipfs://bafkreibdfcoiqnab7xhatxmmve3m5yb2tdcckiftwstyaheywgejeg4atq", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "text/plain", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 14106, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_..._QCReport.txt", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isValidationReport" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/validation-reports/Testfeld_Niedersachsen_ALKS_xodr_sample_offset_openmsl_cb_xodr.xqar", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/x-xqar", + "@type": "xsd:string" + }, + "manifest:fileSize": { + "@value": 62409, + "@type": "xsd:integer" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset_openmsl_cb_xodr.xqar", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isDocumentation" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "ipfs://bafkreihvyno37kiqenic2gxvloondcsrsqh5t5dp7c7lwjbprgwg33lzci", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "text/markdown", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "README.md", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isPublic" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "ipfs://bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "image/png", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_..._impression-01.png", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/Testfeld_Niedersachsen_ALKS_xodr_sample_offset_impression-02.png", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "image/png", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset_impression-02.png", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/Testfeld_Niedersachsen_ALKS_xodr_sample_offset_impression-03.png", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "image/png", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset_impression-03.png", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/bbox.geojson", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/x-geojson", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "bbox.geojson", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/roadNetwork.geojson", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/x-geojson", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "roadNetwork.geojson", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/breakLines.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "breakLines.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/junctions.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "junctions.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/laneSections.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "laneSections.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/lanes.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "lanes.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/objects.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "objects.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/refLine.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "refLine.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/roadMarks.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "roadMarks.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/roads.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "roads.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isMedia" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/media/3d_preview/signals.json", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "application/json", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "signals.json", + "@type": "xsd:string" + } + } + }, + { + "@type": "manifest:Link", + "manifest:hasAccessRole": { + "@type": "manifest:AccessRole", + "@id": "envited-x:isRegistered" + }, + "manifest:hasCategory": { + "@type": "manifest:Category", + "@id": "envited-x:isValidationReport" + }, + "manifest:hasFileMetadata": { + "@type": "manifest:FileMetadata", + "manifest:filePath": { + "@value": "https://metadata.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm/validation-reports/Testfeld_Niedersachsen_ALKS_xodr_sample_offset_openmsl_cb_xodr_QCReport.txt", + "@type": "xsd:anyURI" + }, + "manifest:mimeType": { + "@value": "text/plain", + "@type": "xsd:string" + }, + "manifest:filename": { + "@value": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset_openmsl_cb_xodr_QCReport.txt", + "@type": "xsd:string" + } + } + } + ], + "manifest:hasReferencedArtifacts": [] +} diff --git a/EVES/EVES-003/example/tzip21_token_metadata.json b/EVES/EVES-003/example/tzip21_token_metadata.json new file mode 100644 index 0000000..b123e67 --- /dev/null +++ b/EVES/EVES-003/example/tzip21_token_metadata.json @@ -0,0 +1,87 @@ +{ + "decimals": 0, + "isBooleanAmount": true, + "name": "TestfeldNiedersachsen_ALKS_ODR_sample", + "description": "simple hdmap example file on Testfeld Niedersachsen for ALKS scenario", + "tags": [ + "GaiaX", + "ASCS", + "ENVITED-X", + "EVES", + "nft", + "ASAM OpenDRIVE 1.6" + ], + "minter": "tz1cZaiTjNSN7x4VZjTQGYBVz4p8eEcVcYkz", + "creators": [ + "Automotive Solution Center for Simulation e.V." + ], + "publishers": [ + "Automotive Solution Center for Simulation e.V.", + "ENVITED-X Data Space" + ], + "date": "2025-02-17T00:00:00+00:00", + "type": "EVES-003 https://github.com/ASCS-eV/EVES", + "rights": "MPL-2.0", + "rightsUri": "https://www.mozilla.org/en-US/MPL/2.0/", + "language": "en", + "artifactUri": "https://assets.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm", + "identifier": "did:web:registry.gaia-x.eu:HdMap:DjHgK5ErTBow1Ya3J05tW9l12skGWgZn6kA9", + "externalUri": "ipfs://bafkreicuwg3s4uvei2iu2p5eobozghdodtwhwoi6qiawhwqj3nflrk6dxi", + "displayUri": "ipfs://bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", + "formats": [ + { + "uri": "https://assets.envited-x.net/bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm", + "hash": "bafybeifo6ve5i6542vi6ruuflxdqtcmcisdtwlqefq2e5a33tljsaqxhpm", + "mimeType": "application/zip", + "fileSize": 7711664, + "fileName": "Testfeld_Niedersachsen_ALKS_xodr_sample.zip" + }, + { + "uri": "ipfs://bafkreicuwg3s4uvei2iu2p5eobozghdodtwhwoi6qiawhwqj3nflrk6dxi", + "hash": "bafkreicuwg3s4uvei2iu2p5eobozghdodtwhwoi6qiawhwqj3nflrk6dxi", + "mimeType": "application/ld+json", + "fileSize": 6574, + "fileName": "hdmap_instance.json" + }, + { + "uri": "ipfs://bafkreie2yjoudxlayordup63se7wbj6vroaoyqzcuixqcchpmd23ufno6u", + "hash": "bafkreie2yjoudxlayordup63se7wbj6vroaoyqzcuixqcchpmd23ufno6u", + "mimeType": "application/ld+json", + "fileSize": 5572, + "fileName": "tzip21_manifest.json" + }, + { + "uri": "ipfs://bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", + "hash": "bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", + "mimeType": "image/png", + "dimensions": { + "value": "1095x850", + "unit": "px" + }, + "fileSize": 2397906, + "fileName": "Testfeld_Niedersachsen_ALKS_..._impression-01.png" + } + ], + "attributes": [ + { + "name": "de.gaiax4plcaad.ontology-management-base.hdmap.ontology", + "value": "https://ontologies.envited-x.net/hdmap/v4/ontology#", + "type": "uri" + }, + { + "name": "de.gaiax4plcaad.ontology-management-base.envited-x.metadata", + "value": "https://ontologies.envited-x.net/envited-x/v2/ontology#", + "type": "uri" + }, + { + "name": "de.gaiax4plcaad.ontology-management-base.manifest.ontology", + "value": "https://ontologies.envited-x.net/manifest/v4/ontology#", + "type": "uri" + }, + { + "name": "de.gaiax4plcaad.ontology-management-base.georeference.metadata", + "value": "https://ontologies.envited-x.net/georeference/v3/ontology#", + "type": "uri" + } + ] +} diff --git a/EVES/EVES-003/metadata/Readme.md b/EVES/EVES-003/metadata/Readme.md deleted file mode 100644 index 356494c..0000000 --- a/EVES/EVES-003/metadata/Readme.md +++ /dev/null @@ -1,63 +0,0 @@ -# Reference metadata for ENVITED-X Assets - -This folder contains the reference example for the metadata specifications outlined in [EVES-003](../eves-003.md) to demonstrate how metadata is structured ENVITED-X Data Space. - -## File Structure - -📁 `metadata/` - -- 📄 `bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu.zip` - *Example HD map renamed to CID v1.* -- 📄 `tzip21_asset_manifest.json` - *Generated metadata file for IPFS referenced in the TZIP21 token metadata containing remote URLs.* -- 📄 `tzip21_token_metadata-schema.json` - *TZIP21 json schema to validate the token metadata.* -- 📄 `tzip21_token_metadata.json` - *Token metadata for minting assets.* - -The shacles can be found [here](https://github.com/ASCS-eV/hd-map-asset-example/tree/v0.1.8/shacls-and-ontologies/used-shacls): - -📁 `shacls-and-ontologies/used-shacls/` - -- 📄 `manifest_shacl.ttl` - *SHACL file for validating the `manifest.json`.* -- 📄 `domainMetadata_shacl.ttl` - *SHACL file for validating the `domainMetadata.json`.* - -## Key Concepts - -### Gaia-X Compliance - -The metadata files follow the [Gaia-X Policy Rules Compliance Document (Release 24.11)](https://docs.gaia-x.eu/policy-rules-committee/compliance-document/24.11/). Compatibility with this release is a **TODO** in [EVES-003](../eves-003.md). - -### CID-Based Identification - -All assets and metadata files are identified using CID v1, ensuring interoperability and immutability across the IPFS-based ENVITED-X Data Space. - -### TZIP-21 Metadata - -The `tzip21_asset_manifest.json` and `tzip21_token_metadata.json` demonstrate the mapping of asset information to TZIP-21 token metadata standards, as detailed in [EVES-003](../eves-003.md). - -## How to Use This Reference Implementation - -1. **Validate Metadata**: - - Use the referenced SHACL files in the `shacls-and-ontologies/used-shacls/` folder to validate `manifest.json` and `domainMetadata.json`. - - Ensure all required files and URLs referenced in the manifest are accessible. - -2. **Prepare Metadata for IPFS**: - - Upload the `tzip21_asset_manifest.json` and associated files to IPFS. - - Convert relative file paths in `manifest.json` to CID-based IPFS URLs using the `tzip21_asset_manifest.json`. - -3. **Integrate with ENVITED-X Data Space**: - - Mint tokens using `tzip21_token_metadata.json`. - -4. **Test and Debug**: - - Compare local CID calculations with those generated by Pinata to ensure consistency. - - Use this implementation as a baseline to adapt to your specific asset requirements. - -## Related Documentation - -- [EVES-003: ENVITED Asset Definition and Upload Process](../eves-003.md) -- [Gaia-X 4 PLC-AAD Manifest Ontology](https://github.com/ASCS-eV/ontology-management-base/tree/main/manifest) -- [Pinata Documentation: Pinning CIDs](https://docs.pinata.cloud/web3/pinning/pinata-metadata#pinataoptions) -- [TZIP-21 Metadata Standard](https://tzip.tezos.com/proposal/tzip-21/) diff --git a/EVES/EVES-003/metadata/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu.zip b/EVES/EVES-003/metadata/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu.zip deleted file mode 100644 index c32adfb..0000000 Binary files a/EVES/EVES-003/metadata/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu.zip and /dev/null differ diff --git a/EVES/EVES-003/metadata/tzip21_asset_manifest.json b/EVES/EVES-003/metadata/tzip21_asset_manifest.json deleted file mode 100644 index 998095b..0000000 --- a/EVES/EVES-003/metadata/tzip21_asset_manifest.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "@context": { - "xsd": "http://www.w3.org/2001/XMLSchema#", - "gx": "https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#", - "skos": "http://www.w3.org/2004/02/skos/core#", - "sh": "http://www.w3.org/ns/shacl#", - "manifest": "https://github.com/GAIA-X4PLC-AAD/ontology-management-base/tree/main/manifest/" - }, - "@id": "urn:uuid:896f0b9d-5626-4ddb-9d28-568f4af63603", - "@type": "manifest:Manifest", - "manifest:data": { - "@type": "manifest:Data", - "manifest:assetData": [ - { - "@type": "manifest:Link", - "manifest:accessRole": "owner", - "manifest:type": "assetData", - "manifest:format": "xodr", - "manifest:path": { - "@value": "https://assets.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu/data/TestfeldNiedersachsen_ALKS_ODR_sample.xodr", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "owner", - "manifest:type": "assetData", - "manifest:format": "xodr", - "manifest:path": { - "@value": "https://assets.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu/data/TestfeldNiedersachsen_ALKS_ODR_sample_offset.xodr", - "@type": "xsd:anyURI" - } - } - ], - "manifest:contentData": [ - { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "metadata", - "manifest:format": "json", - "manifest:path": { - "@value": "ipfs://bafkreifsu25wkyq7oecmtam3mguuoov2zmjp6xi3chuf5plajagdjfoule", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "registeredUser", - "manifest:type": "documentation", - "manifest:format": "pdf", - "manifest:path": { - "@value": "https://metadata.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu/documentation/TestfeldNiedersachsen_ALKS_ODR_sample_Documentation.pdf", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "registeredUser", - "manifest:type": "documentation", - "manifest:format": "txt", - "manifest:path": { - "@value": "https://metadata.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu/documentation/TestfeldNiedersachsen_ALKS_ODR_sample_Documentation_stats.txt", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "registeredUser", - "manifest:type": "validation", - "manifest:format": "txt", - "manifest:path": { - "@value": "https://metadata.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu/validation/qcReport.txt", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "visualization", - "manifest:format": "png", - "manifest:path": { - "@value": "ipfs://bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "visualization", - "manifest:format": "png", - "manifest:path": { - "@value": "ipfs://bafybeiezbvlzqsawb3dkoie2ka4aawj6kf52prbsnap23q7x4z7j6aufwe", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "visualization", - "manifest:format": "png", - "manifest:path": { - "@value": "ipfs://bafkreidk4peygis2nnxjvvj5s4fl62uw3cglxj3jkavfzn3qffaorrydyi", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "visualization", - "manifest:format": "geojson", - "manifest:path": { - "@value": "ipfs://bafkreigszlzol72wvmge3lnlmjx7z6enkshoxrw6d32kuezgao2hllqbtm", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "visualization", - "manifest:format": "geojson", - "manifest:path": { - "@value": "ipfs://bafkreiakpb3ajhljq6cgwizcyirsk6uz322szaxd6ynmovcwuu5jkx5isa", - "@type": "xsd:anyURI" - } - }, - { - "@type": "manifest:Link", - "manifest:accessRole": "registeredUser", - "manifest:type": "visualization", - "manifest:format": "geojson", - "manifest:path": { - "@value": "ipfs://bafkreia3od7e5yezmp2hv7gduqpv4x4ildseyqj5x5flijitskqojrtrpm", - "@type": "xsd:anyURI" - } - } - ] - }, - "manifest:license": { - "@type": "manifest:License", - "manifest:spdxIdentifier": { - "@value": "MPL-2.0", - "@type": "xsd:string" - }, - "manifest:licenseData": { - "@type": "manifest:Link", - "manifest:accessRole": "publicUser", - "manifest:type": "license", - "manifest:format": "html", - "manifest:path": { - "@value": "https://www.mozilla.org/en-US/MPL/2.0/", - "@type": "xsd:anyURI" - } - } - } -} diff --git a/EVES/EVES-003/metadata/tzip21_token_metadata.json b/EVES/EVES-003/metadata/tzip21_token_metadata.json deleted file mode 100644 index 6e65f22..0000000 --- a/EVES/EVES-003/metadata/tzip21_token_metadata.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "decimals": 0, - "isBooleanAmount": true, - "name": "TestfeldNiedersachsen_ALKS_ODR_sample", - "description": "simple hdmap example file on Testfeld Niedersachsen for ALKS scenario", - "tags": [ - "GaiaX", - "ASCS", - "ENVITED-X", - "EVES", - "nft", - "ASAM OpenDRIVE 1.6" - ], - "minter": "tz1cZaiTjNSN7x4VZjTQGYBVz4p8eEcVcYkz", - "creators": [ - "Automotive Solution Center for Simulation e.V." - ], - "publishers": [ - "Automotive Solution Center for Simulation e.V.", - "ENVITED-X Data Space" - ], - "date": "2025-02-17T00:00:00+00:00", - "type": "EVES-003 https://github.com/ASCS-eV/EVES", - "rights": "MPL-2.0", - "rightsUri": "https://www.mozilla.org/en-US/MPL/2.0/", - "language": "en", - "artifactUri": "https://assets.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu", - "identifier": "bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu", - "externalUri": "ipfs://bafkreihpprbjqxpsro2byir2zzwnby2cbm7jra5zr73az7dqgbocv6ie3q", - "displayUri": "ipfs://bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", - "formats": [ - { - "uri": "https://assets.envited-x.net/bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu", - "hash": "bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu", - "mimeType": "application/zip", - "fileSize": 3150043, - "fileName": "bafybeidhmknqn4cofjlphtrxpyvruur42t55bfmtcldyb74l2ob22kjjdu.zip" - }, - { - "uri": "ipfs://bafkreihpprbjqxpsro2byir2zzwnby2cbm7jra5zr73az7dqgbocv6ie3q", - "hash": "bafkreihpprbjqxpsro2byir2zzwnby2cbm7jra5zr73az7dqgbocv6ie3q", - "mimeType": "application/json", - "fileSize": 5572, - "fileName": "tzip21_asset_manifest.json" - }, - { - "uri": "ipfs://bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", - "hash": "bafybeief5r2xgciehzhx6c4kbooifsnbjpiifjei36lpi3kzcdmpr2wvue", - "mimeType": "image/png", - "dimensions": { - "value": "1095x850", - "unit": "px" - }, - "fileSize": 2397906, - "fileName": "TestfeldNiedersachsen_ALKS_ODR_sample_01.png" - } - ], - "attributes": [ - { - "name": "de.gaiax4plcaad.ontology-management-base.hdmap.ontology", - "value": "https://github.com/GAIA-X4PLC-AAD/ontology-management-base/blob/main/hdmap/", - "type": "uri" - }, - { - "name": "de.gaiax4plcaad.ontology-management-base.hdmap.metadata", - "value": "ipfs://bafkreifsu25wkyq7oecmtam3mguuoov2zmjp6xi3chuf5plajagdjfoule", - "type": "application/json" - }, - { - "name": "de.gaiax4plcaad.ontology-management-base.manifest.ontology", - "value": "https://github.com/GAIA-X4PLC-AAD/ontology-management-base/blob/main/manifest/", - "type": "uri" - }, - { - "name": "de.gaiax4plcaad.ontology-management-base.manifest.metadata", - "value": "ipfs://bafkreihpprbjqxpsro2byir2zzwnby2cbm7jra5zr73az7dqgbocv6ie3q", - "type": "application/json" - } - ] -} diff --git a/EVES/EVES-003/metadata/tzip21_token_metadata-schema.json b/EVES/EVES-003/tzip21-schemas/tzip21_token_metadata-schema.json similarity index 100% rename from EVES/EVES-003/metadata/tzip21_token_metadata-schema.json rename to EVES/EVES-003/tzip21-schemas/tzip21_token_metadata-schema.json