CesiumGS / 3d-tiles

Specification for streaming massive heterogeneous 3D geospatial datasets :earth_americas:
2.1k stars 465 forks source link

Metadata: ID, Name, and Description consistency #533

Closed donmccurdy closed 2 years ago

donmccurdy commented 2 years ago

Continuing from https://github.com/CesiumGS/3d-tiles/pull/530/files#r739733458, comment from @lilleyse copied below:


Enums, classes, and properties should each have an id property so that they can be uniquely identified within their scope. They should each have an optional name and description for consistency as well.

I was looking at EXT_mesh_features and here are the differences that I noticed.

Cesium 3D Metadata

Concept Has ID Has Name Has Description
Schema :x: :x: :x:
Enum :x: :x: :x:
Class :heavy_check_mark: :x: :x:
Property :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
EXT_mesh_features Concept Has ID Has Name Has Description
Schema :x: :heavy_check_mark: :heavy_check_mark:
Enum :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Class :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Property :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

The biggest thing missing here is schema id which would let us uniquely identify schemas in a global sense. We should probably add that to EXT_mesh_features, 3DTILES_metadata, and here. Though I'm not sure if schema id should be required.

donmccurdy commented 2 years ago

Adding to the list:

3DTILES_metadata

Concept Has ID Has Name Has Description
Schema :x: :heavy_check_mark: :heavy_check_mark:
Enum :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Class :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Property :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
donmccurdy commented 2 years ago

The biggest thing missing here is schema id which would let us uniquely identify schemas in a global sense.

Does schema.id conflict with schema.version at all? I.e. should a later version of a schema have the same ID as the original?


Somewhat related, see #524 – we are removing name and description from tileset and content group definitions. Instead of name authors should use properties with the NAME semantic; there is currently no DESCRIPTION semantic.


It does look like 3DTILES_metadata and EXT_mesh_features are already aligned, so we should at least update the 3D Metadata spec to match that... an ID for schema is OK with me too but would be a new addition for all three.

lilleyse commented 2 years ago

Does schema.id conflict with schema.version at all? I.e. should a later version of a schema have the same ID as the original?

The way I'm envisioning it the ID would stay the same but the version would change (like a software library)

Somewhat related, see #524 – we are removing name and description from tileset and content group definitions. Instead of name authors should use properties with the NAME semantic; there is currently no DESCRIPTION semantic.

Good call, we should add a DESCRIPTION semantic.

It does look like 3DTILES_metadata and EXT_mesh_features are already aligned, so we should at least update the 3D Metadata spec to match that... an ID for schema is OK with me too but would be a new addition for all three.

Yes we should add it to all three documents.

donmccurdy commented 2 years ago

Proposed changes for Core Metadata and 3DTILES_metadata in https://github.com/CesiumGS/3d-tiles/pull/539.

donmccurdy commented 2 years ago

Proposed DESCRIPTION semantic in https://github.com/CesiumGS/3d-tiles/pull/540.

Added id to schema in EXT_mesh_features in https://github.com/CesiumGS/glTF/pull/41.