Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions EVES/EVES-003/eves-003.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,103 @@
- [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)

### 1b. Asset Preparation

Check warning on line 48 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L48

[Google.Headings] '1b. Asset Preparation' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] '1b. Asset Preparation' should use sentence-style capitalization.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 48, "column": 5}}}, "severity": "WARNING"}

Before uploading, an asset MUST be organized into a well-defined folder structure and described by an input manifest.

Check notice on line 50 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L50

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 50, "column": 28}}}, "severity": "INFO"}

Check notice on line 50 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L50

[write-good.E-Prime] Try to avoid using 'be'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'be'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 50, "column": 33}}}, "severity": "INFO"}

Check notice on line 50 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L50

[Google.Passive] In general, use active voice instead of passive voice ('be organized').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('be organized').", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 50, "column": 33}}}, "severity": "INFO"}

Check warning on line 50 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L50

[write-good.Passive] 'be organized' may be passive voice. Use active voice if you can.
Raw output
{"message": "[write-good.Passive] 'be organized' may be passive voice. Use active voice if you can.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 50, "column": 33}}}, "severity": "WARNING"}
Tooling such as the [ENVITED-X Simulation Asset Tools][20] MAY automate the creation of a conformant `asset.zip` from user-provided input files and an `input_manifest.json`.

Check notice on line 51 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L51

[Google.Acronyms] Spell out 'MAY', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MAY', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 51, "column": 60}}}, "severity": "INFO"}

Check failure on line 51 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L51

[Vale.Spelling] Did you really mean 'conformant'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'conformant'?", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 51, "column": 91}}}, "severity": "ERROR"}

#### Folder Structure

Check warning on line 53 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L53

[Google.Headings] 'Folder Structure' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Folder Structure' should use sentence-style capitalization.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 53, "column": 6}}}, "severity": "WARNING"}

Every `asset.zip` MUST contain the following top-level folders mapped to `envited-x` artifact categories:

Check notice on line 55 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L55

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 55, "column": 19}}}, "severity": "INFO"}

| Folder | `envited-x` Category | Required | `envited-x` Access Role | Description |
| --- | --- | --- | --- | --- |
| `simulation-data/` | `envited-x:isSimulationData` | MUST | `envited-x:isOwner` | Core simulation data (e.g., `.xodr`, `.xosc`) |

Check notice on line 59 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L59

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 59, "column": 1}}}, "severity": "INFO"}

Check notice on line 59 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L59

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 59, "column": 55}}}, "severity": "INFO"}

Check failure on line 59 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L59

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 59, "column": 106}}}, "severity": "ERROR"}
| `documentation/` | `envited-x:isDocumentation` | MUST | `envited-x:isPublic` | Documentation files (e.g., `.pdf`, `.txt`) |

Check notice on line 60 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L60

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 60, "column": 1}}}, "severity": "INFO"}

Check notice on line 60 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L60

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 60, "column": 52}}}, "severity": "INFO"}

Check failure on line 60 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L60

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 60, "column": 103}}}, "severity": "ERROR"}
| `metadata/` | `envited-x:isMetadata` | MUST | `envited-x:isPublic` | Domain metadata (e.g., `hdmap_instance.json`) |

Check notice on line 61 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L61

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 61, "column": 1}}}, "severity": "INFO"}

Check notice on line 61 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L61

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 61, "column": 42}}}, "severity": "INFO"}

Check failure on line 61 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L61

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 61, "column": 89}}}, "severity": "ERROR"}
| `media/` | `envited-x:isMedia` | MUST | `envited-x:isPublic` | Visualizations, images, GeoJSON, 3D previews |

Check notice on line 62 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L62

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 62, "column": 36}}}, "severity": "INFO"}
| `validation-reports/` | `envited-x:isValidationReport` | RECOMMENDED | `envited-x:isPublic` | Quality checker reports (e.g., `.xqar`, `.txt`) |

Check notice on line 63 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L63

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 63, "column": 1}}}, "severity": "INFO"}

Check failure on line 63 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L63

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 63, "column": 122}}}, "severity": "ERROR"}
| _(root)_ | `envited-x:isLicense` | MUST | `envited-x:isPublic` | LICENSE file at the asset root |

Check notice on line 64 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L64

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 64, "column": 4}}}, "severity": "INFO"}

Check notice on line 64 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L64

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 64, "column": 38}}}, "severity": "INFO"}
| _(root)_ | `envited-x:isManifest` | MUST | `envited-x:isPublic` | `manifest_reference.json` at the asset root |

Check notice on line 65 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L65

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 65, "column": 4}}}, "severity": "INFO"}

Check notice on line 65 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L65

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 65, "column": 39}}}, "severity": "INFO"}

> **Note:** The `envited-x` categories and access roles are formally defined in the [ENVITED-X Ontology][21] which extends the generic [Manifest Ontology][22].

Check notice on line 67 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L67

[write-good.E-Prime] Try to avoid using 'are'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'are'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 67, "column": 57}}}, "severity": "INFO"}
> The `envited-x:ExtendedLinkShape` constrains the allowed values for both `manifest:hasCategory` and `manifest:hasAccessRole`.

#### Input Manifest (`input_manifest.json`)

Check notice on line 70 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L70

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 70, "column": 1}}}, "severity": "INFO"}

Check warning on line 70 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L70

[Google.Headings] 'Input Manifest ( ******************* )' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Input Manifest ( ******************* )' should use sentence-style capitalization.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 70, "column": 1}}}, "severity": "WARNING"}

An `input_manifest.json` is a partial `envited-x:Manifest` in JSON-LD that describes the user-provided input files before the asset creation pipeline processes them.

Check notice on line 72 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L72

[write-good.E-Prime] Try to avoid using 'is'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 72, "column": 26}}}, "severity": "INFO"}
It uses the same vocabulary as the final `manifest_reference.json` but omits computed fields (`cid`, `fileSize`, `timestamp`, `hasDimensions`, `filename`).

Check notice on line 73 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L73

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 73, "column": 4}}}, "severity": "INFO"}

Each entry (a `manifest:Link`) MUST specify:

Check notice on line 75 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L75

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 75, "column": 1}}}, "severity": "INFO"}

Check notice on line 75 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L75

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 75, "column": 32}}}, "severity": "INFO"}

- `manifest:hasCategory` — one of the categories defined in the `envited-x` ontology

Check failure on line 77 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L77

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 77, "column": 25}}}, "severity": "ERROR"}
- `manifest:hasAccessRole` — one of the access roles defined in the `envited-x` ontology

Check failure on line 78 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L78

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 78, "column": 27}}}, "severity": "ERROR"}
- `manifest:hasFileMetadata` — a `manifest:FileMetadata` node with at minimum:

Check warning on line 79 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L79

[write-good.TooWordy] 'minimum' is too wordy.
Raw output
{"message": "[write-good.TooWordy] 'minimum' is too wordy.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 79, "column": 71}}}, "severity": "WARNING"}
- `manifest:filePath` (`xsd:anyURI`) — local file path or remote URL

Check failure on line 80 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L80

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 80, "column": 39}}}, "severity": "ERROR"}

Check warning on line 80 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L80

[Google.WordList] Use 'path' instead of 'file path'.
Raw output
{"message": "[Google.WordList] Use 'path' instead of 'file path'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 80, "column": 48}}}, "severity": "WARNING"}
- `manifest:mimeType` (`xsd:string`) — MIME type of the file

Check notice on line 81 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L81

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 81, "column": 1}}}, "severity": "INFO"}

Check failure on line 81 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L81

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 81, "column": 39}}}, "severity": "ERROR"}

Check notice on line 81 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L81

[Google.Acronyms] Spell out 'MIME', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MIME', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 81, "column": 42}}}, "severity": "INFO"}

Check warning on line 81 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L81

[write-good.TooWordy] 'type of' is too wordy.
Raw output
{"message": "[write-good.TooWordy] 'type of' is too wordy.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 81, "column": 47}}}, "severity": "WARNING"}

##### Two-Stage Validation

Check warning on line 83 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L83

[Google.Headings] 'Two-Stage Validation' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Two-Stage Validation' should use sentence-style capitalization.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 83, "column": 7}}}, "severity": "WARNING"}

Asset creation tooling SHOULD implement a two-stage validation approach:

Check warning on line 85 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L85

[write-good.TooWordy] 'implement' is too wordy.
Raw output
{"message": "[write-good.TooWordy] 'implement' is too wordy.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 85, "column": 31}}}, "severity": "WARNING"}

1. **Input validation (fail fast):** Each `manifest:Link` in the `input_manifest.json` SHOULD be validated against `manifest:LinkShape` and `envited-x:ExtendedLinkShape` before the pipeline runs. This catches invalid categories, missing access roles, or malformed file metadata early.

Check notice on line 87 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L87

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 87, "column": 23}}}, "severity": "INFO"}

Check notice on line 87 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L87

[write-good.E-Prime] Try to avoid using 'be'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'be'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 87, "column": 95}}}, "severity": "INFO"}

Check notice on line 87 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L87

[Google.Passive] In general, use active voice instead of passive voice ('be validated').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('be validated').", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 87, "column": 95}}}, "severity": "INFO"}

Check warning on line 87 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L87

[write-good.Passive] 'be validated' may be passive voice. Use active voice if you can.
Raw output
{"message": "[write-good.Passive] 'be validated' may be passive voice. Use active voice if you can.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 87, "column": 95}}}, "severity": "WARNING"}
2. **Output validation (completeness):** The completed `manifest_reference.json` MUST be validated against the full `envited-x:ManifestShape`, which requires at least one artifact per core category (`isSimulationData`, `isDocumentation`, `isMetadata`, `isMedia`).

Check notice on line 88 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L88

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 88, "column": 1}}}, "severity": "INFO"}

Check notice on line 88 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L88

[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'MUST', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 88, "column": 82}}}, "severity": "INFO"}

Check warning on line 88 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L88

[write-good.Passive] 'be validated' may be passive voice. Use active voice if you can.
Raw output
{"message": "[write-good.Passive] 'be validated' may be passive voice. Use active voice if you can.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 88, "column": 87}}}, "severity": "WARNING"}

Check notice on line 88 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L88

[write-good.E-Prime] Try to avoid using 'be'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'be'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 88, "column": 87}}}, "severity": "INFO"}

Check notice on line 88 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L88

[Google.Passive] In general, use active voice instead of passive voice ('be validated').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('be validated').", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 88, "column": 87}}}, "severity": "INFO"}

##### Example `input_manifest.json`

See 📁 `example/input_manifest.json` for a complete example.

```json
{
"@context": [
"https://w3id.org/ascs-ev/envited-x/manifest/v5/",
{ "envited-x": "https://w3id.org/ascs-ev/envited-x/envited-x/v3/" }
],
"@id": "did:web:registry.gaia-x.eu:HdMap:example",
"@type": "envited-x:Manifest",
"hasArtifacts": [
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isSimulationData" },
"hasAccessRole": { "@id": "envited-x:isOwner" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "my_map.xodr",
"mimeType": "application/xml"
}
},
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isMedia" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "impression-01.png",
"mimeType": "image/png"
}
}
],
"hasLicense": {
"@type": "Link",
"hasCategory": { "@id": "envited-x:isLicense" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "LICENSE",
"mimeType": "text/plain"
}
}
}
```

The asset creation pipeline enriches this into a full `manifest_reference.json` by:

1. Computing `manifest:cid` (IPFS CIDv1) for each file

Check notice on line 139 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L139

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 139, "column": 29}}}, "severity": "INFO"}

Check notice on line 139 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L139

[Google.Acronyms] Spell out 'IPFS', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'IPFS', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 139, "column": 30}}}, "severity": "INFO"}
2. Computing `manifest:fileSize` and `manifest:timestamp`
3. Extracting `manifest:hasDimensions` for images
4. Adding generated artifacts (documentation, metadata, validation reports)

Check notice on line 142 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L142

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 142, "column": 31}}}, "severity": "INFO"}
5. Adding the self-referencing `manifest:hasManifestReference` entry

### 2. Pinata IPFS and CID Management

It is RECOMMENDED to use [IPFS][8] within the ENVITED-X Data Space for making public data available.
Expand Down Expand Up @@ -75,6 +172,8 @@

#### Step 1: Client-Side Pre-Validation

- Verify that an `input_manifest.json` was used during asset preparation (see [§1b](#1b-asset-preparation)):

Check notice on line 175 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L175

[write-good.E-Prime] Try to avoid using 'was'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'was'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 175, "column": 40}}}, "severity": "INFO"}

Check notice on line 175 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L175

[Google.Passive] In general, use active voice instead of passive voice ('was used').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('was used').", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 175, "column": 40}}}, "severity": "INFO"}

Check warning on line 175 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L175

[write-good.Passive] 'was used' may be passive voice. Use active voice if you can.
Raw output
{"message": "[write-good.Passive] 'was used' may be passive voice. Use active voice if you can.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 175, "column": 40}}}, "severity": "WARNING"}
1. Each `manifest:Link` in the input SHOULD have been validated against `manifest:LinkShape` and `envited-x:ExtendedLinkShape`.

Check warning on line 176 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L176

[write-good.Passive] 'been validated' may be passive voice. Use active voice if you can.
Raw output
{"message": "[write-good.Passive] 'been validated' may be passive voice. Use active voice if you can.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 176, "column": 52}}}, "severity": "WARNING"}

Check notice on line 176 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L176

[write-good.E-Prime] Try to avoid using 'been'.
Raw output
{"message": "[write-good.E-Prime] Try to avoid using 'been'.", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 176, "column": 52}}}, "severity": "INFO"}

Check notice on line 176 in EVES/EVES-003/eves-003.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-003/eves-003.md#L176

[Google.Passive] In general, use active voice instead of passive voice ('been validated').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('been validated').", "location": {"path": "EVES/EVES-003/eves-003.md", "range": {"start": {"line": 176, "column": 52}}}, "severity": "INFO"}
- Drag and drop `asset.zip` into the upload field.
- Validate the `manifest_reference.json`:
1. Ensure JSON structure matches the manifest SHACL constraints.
Expand Down Expand Up @@ -212,6 +311,12 @@
- [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]
- [ENVITED-X Simulation Asset Tools][20]
- [ENVITED-X Ontology][21]
- [Manifest Ontology][22]
- [ENVITED-X Simulation Asset Tools][20]
- [ENVITED-X Ontology][21]
- [Manifest Ontology][22]

[1]: https://github.com/ASCS-eV/ontology-management-base/
[2]: https://github.com/GAIA-X4PLC-AAD/ontology-management-base/tree/main/gx
Expand All @@ -232,3 +337,6 @@
[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
[20]: https://github.com/openMSL/sl-5-8-asset-tools
[21]: https://github.com/ASCS-eV/ontology-management-base/tree/main/artifacts/envited-x
[22]: https://github.com/ASCS-eV/ontology-management-base/tree/main/artifacts/manifest
72 changes: 72 additions & 0 deletions EVES/EVES-003/example/input_manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"@context": [
"https://w3id.org/ascs-ev/envited-x/manifest/v5/",
{
"envited-x": "https://w3id.org/ascs-ev/envited-x/envited-x/v3/"
}
],
"@id": "did:web:registry.gaia-x.eu:HdMap:Testfeld_Niedersachsen_ALKS_xodr_sample_offset",
"@type": "envited-x:Manifest",
"hasArtifacts": [
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isSimulationData" },
"hasAccessRole": { "@id": "envited-x:isOwner" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "Testfeld_Niedersachsen_ALKS_xodr_sample_offset.xodr",
"mimeType": "application/xml"
}
},
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isMedia" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "impression-01.png",
"mimeType": "image/png"
}
},
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isMedia" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "impression-02.png",
"mimeType": "image/png"
}
},
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isMedia" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "impression-03.png",
"mimeType": "image/png"
}
},
{
"@type": "Link",
"hasCategory": { "@id": "envited-x:isDocumentation" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "documentation.txt",
"mimeType": "text/plain"
}
}
],
"hasLicense": {
"@type": "Link",
"hasCategory": { "@id": "envited-x:isLicense" },
"hasAccessRole": { "@id": "envited-x:isPublic" },
"hasFileMetadata": {
"@type": "FileMetadata",
"filePath": "https://www.mozilla.org/en-US/MPL/2.0/",
"mimeType": "text/html"
}
}
}
2 changes: 1 addition & 1 deletion EVES/EVES-007/eves-007.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

##### Smart Contract Example Mappings

| Blockchain | Namespace | Chain ID | Example URN |
| Blockchain | Namespace | Chain ID | Example URN |

Check failure on line 48 in EVES/EVES-007/eves-007.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-007/eves-007.md#L48

[Vale.Spelling] Did you really mean 'Blockchain'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Blockchain'?", "location": {"path": "EVES/EVES-007/eves-007.md", "range": {"start": {"line": 48, "column": 3}}}, "severity": "ERROR"}

Check failure on line 48 in EVES/EVES-007/eves-007.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-007/eves-007.md#L48

[Vale.Spelling] Did you really mean 'Namespace'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Namespace'?", "location": {"path": "EVES/EVES-007/eves-007.md", "range": {"start": {"line": 48, "column": 29}}}, "severity": "ERROR"}

Check notice on line 48 in EVES/EVES-007/eves-007.md

View workflow job for this annotation

GitHub Actions / vale

[vale] EVES/EVES-007/eves-007.md#L48

[Google.Acronyms] Spell out 'URN', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'URN', if it's unfamiliar to the audience.", "location": {"path": "EVES/EVES-007/eves-007.md", "range": {"start": {"line": 48, "column": 69}}}, "severity": "INFO"}
|-------------------------|-----------|-------------------|--------------------------------------------------------------------------------------|
| **Tezos (Ghostnet)** | `tezos` | `NetXnHfVqm9iesp` | `urn:blockchain:tezos:NetXnHfVqm9iesp:contract:KT1PCaD2kmgCHy15wQ1gpqZUy9RLxyBVJdTF` |
| **Ethereum (Mainnet)** | `eip155` | `1` | `urn:blockchain:eip155:1:contract:0xABC123456789...` |
Expand Down
Loading