s3dgraphy 1.6.0.dev16__tar.gz → 1.6.0.dev18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {s3dgraphy-1.6.0.dev16/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev18}/PKG-INFO +3 -2
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/README.md +1 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/pyproject.toml +7 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/datamodel_translations.json +34 -2
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_visual_rules.json +177 -24
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/node_registry.generated.json +22 -2
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +115 -7
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +112 -5
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +8 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/JSON_config/src/2D/graph.svg +6 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +6 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/__init__.py +2 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/api.py +184 -9
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/container.py +21 -2
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/contract/connector.py +1 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/contract/consumer.py +10 -10
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/crdt.py +1 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/dtc/__init__.py +30 -1
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/dtc/devices.py +185 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/dtc/ingest.py +36 -4
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/dtc/neighbourhood.py +253 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/json_exporter.py +35 -21
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/geometry/store_backed.py +1 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/graph.py +41 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/base_importer.py +67 -13
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/importer/csv_importer.py +138 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/authoring.py +176 -33
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/__init__.py +15 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/dtc_acquisition_node.py +1 -1
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/nodes/dtc_device_node.py +108 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/dtc_node.py +25 -10
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/dtc_process_node.py +1 -1
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/nodes/georeferencing_node.py +233 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/group_node.py +74 -1
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/nodes/resource_node.py +494 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/photogrammetry/__init__.py +23 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/photogrammetry/delta.py +301 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/publication.py +63 -10
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resources/resolver.py +80 -4
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/rights.py +58 -4
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/shelf/core.py +8 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/stamp/__init__.py +70 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/stamp/absorb.py +484 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/stamp/emit.py +847 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/stamp/hints.py +30 -0
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/stamp/identity.py +25 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/study.py +11 -3
- s3dgraphy-1.6.0.dev18/src/s3dgraphy/zero_hour.py +397 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18/src/s3dgraphy.egg-info}/PKG-INFO +3 -2
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy.egg-info/SOURCES.txt +29 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy.egg-info/requires.txt +1 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_api_surface.py +1 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_asset_dtc_protocol.py +1 -1
- s3dgraphy-1.6.0.dev18/tests/test_blend_locator.py +171 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_contract_consumer.py +3 -3
- s3dgraphy-1.6.0.dev18/tests/test_devices.py +383 -0
- s3dgraphy-1.6.0.dev18/tests/test_dtc_neighbourhood.py +327 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_dtc_projection.py +15 -1
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_mapping_authoring.py +14 -6
- s3dgraphy-1.6.0.dev18/tests/test_mapping_csv_and_relations.py +336 -0
- s3dgraphy-1.6.0.dev18/tests/test_photogrammetry_delta.py +291 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_promotion.py +1 -1
- s3dgraphy-1.6.0.dev18/tests/test_resource_tier.py +346 -0
- s3dgraphy-1.6.0.dev18/tests/test_rm_container_node_group.py +511 -0
- s3dgraphy-1.6.0.dev18/tests/test_semantic_purity.py +185 -0
- s3dgraphy-1.6.0.dev18/tests/test_stamp.py +1024 -0
- s3dgraphy-1.6.0.dev18/tests/test_stamp_hints.py +273 -0
- s3dgraphy-1.6.0.dev18/tests/test_visual_assets.py +117 -0
- s3dgraphy-1.6.0.dev18/tests/test_zero_hour.py +403 -0
- s3dgraphy-1.6.0.dev16/src/s3dgraphy/nodes/resource_node.py +0 -254
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em.ttl +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_qualia_types.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/acquisition/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/acquisition/acquire.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/acquisition/descriptor.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/acquisition/mapping.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/annotation/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/annotation/paradata.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/classification.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/contract/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/contract/core.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/contract/reference.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/dissemination.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/dtc/corpus.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/dtc/residency.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/edges/connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/editorial.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/html_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/rdf_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/geometry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/geometry/migrate.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/geometry/proxy.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/iiif.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/emjson_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/import_graphml.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/rdf_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/source_text.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/importer/xml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/narrative/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/narrative/bake.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/narrative/generation.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/narrative/query.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/narrative/registry.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/narrative/site_story.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/project_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/nodes/study_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resources/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resources/fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/resources/minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/shelf/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/tools/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/tools/consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/tools/wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_acquisition_fs.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_authority_projection.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_authority_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_canonical_document_rename.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_canvas_metadata_import.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_container.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_contract.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_convert_command.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_crdt.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_deterministic_ids.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_dissemination_tombstones.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_dtc_corpus.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_dtc_ingest.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_dtc_residency.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_editorial.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_emjson_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_emjson_schema_version.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_epoch_undated_import.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_explicit_node_type_marker.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_functional_units.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_georeference_scene.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_graph_scope_migration.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_hdto_projection.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_header_key_aliases.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_iiif.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_importer_edge_hygiene.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_lossless_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_material_color.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_merge_conflicts.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_migrate_legacy_proxy.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_authorship.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_bake_docx.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_figures.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_generation.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_query.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_narrative_scaffolder.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_node_datamodel_registry.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_pyarchinit_tier2.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_rdf_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_recompute_warnings.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_reproject.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_resource_layer.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_shelf.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_shelf_facets.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_shelf_hatting.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_shelf_role_uri_table.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_source_list_mapping.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_source_text.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_store_backed_geometry.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_stratiminer_api.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_study_metadata.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_ttl_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/tests/test_xlsx_importer_graph_init.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: s3dgraphy
|
|
3
|
-
Version: 1.6.0.
|
|
3
|
+
Version: 1.6.0.dev18
|
|
4
4
|
Summary: 3D Stratigraphic Graph Management Library for archaeological and heritage applications
|
|
5
5
|
Author-email: Emanuel Demetrescu <emanuel.demetrescu@cnr.it>
|
|
6
6
|
Maintainer-email: Emanuel Demetrescu <emanuel.demetrescu@cnr.it>
|
|
@@ -35,6 +35,7 @@ Requires-Dist: pandas>=2.0.0
|
|
|
35
35
|
Requires-Dist: lxml>=4.9.0
|
|
36
36
|
Requires-Dist: openpyxl>=3.0.0
|
|
37
37
|
Requires-Dist: networkx>=3.0
|
|
38
|
+
Requires-Dist: dtcstamp>=0.1.0
|
|
38
39
|
Provides-Extra: rdf
|
|
39
40
|
Requires-Dist: rdflib>=7.0; extra == "rdf"
|
|
40
41
|
Provides-Extra: rdf-embedded
|
|
@@ -274,7 +275,7 @@ The rule the other repos inherit, in one line: *if an endpoint needs to compute
|
|
|
274
275
|
something about a graph, that something belongs here.* This library has no web
|
|
275
276
|
framework and no socket on purpose — what it does can be proved on a table.
|
|
276
277
|
|
|
277
|
-
**The whole map:** [`ARCHITECTURE-SYSTEM.md`](../
|
|
278
|
+
**The whole map:** [`ARCHITECTURE-SYSTEM.md`](../stratigraph-server/docs/ARCHITECTURE-SYSTEM.md).
|
|
278
279
|
|
|
279
280
|
---
|
|
280
281
|
|
|
@@ -198,7 +198,7 @@ The rule the other repos inherit, in one line: *if an endpoint needs to compute
|
|
|
198
198
|
something about a graph, that something belongs here.* This library has no web
|
|
199
199
|
framework and no socket on purpose — what it does can be proved on a table.
|
|
200
200
|
|
|
201
|
-
**The whole map:** [`ARCHITECTURE-SYSTEM.md`](../
|
|
201
|
+
**The whole map:** [`ARCHITECTURE-SYSTEM.md`](../stratigraph-server/docs/ARCHITECTURE-SYSTEM.md).
|
|
202
202
|
|
|
203
203
|
---
|
|
204
204
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "s3dgraphy"
|
|
7
|
-
version = "1.6.0.
|
|
7
|
+
version = "1.6.0.dev18"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -51,6 +51,12 @@ dependencies = [
|
|
|
51
51
|
"lxml>=4.9.0", # used by graphml importer/exporter
|
|
52
52
|
"openpyxl>=3.0.0", # used by xlsx_importer
|
|
53
53
|
"networkx>=3.0", # used by temporal/inference_engine.py
|
|
54
|
+
# The stamp FORMAT — read, write, compare, walk — extracted so that a
|
|
55
|
+
# Blender add-on or a Metashape script can use it without installing any of
|
|
56
|
+
# the four above. It has zero dependencies of its own and is one module, so
|
|
57
|
+
# it can also simply be copied; s3dgraphy depends on it rather than
|
|
58
|
+
# vendoring it, because two copies of a format rule drift.
|
|
59
|
+
"dtcstamp>=0.1.0",
|
|
54
60
|
]
|
|
55
61
|
|
|
56
62
|
[project.urls]
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
},
|
|
125
125
|
"DTCAcquisitionNode": {
|
|
126
126
|
"description": {
|
|
127
|
-
"en": "A DTC ACQUISITION
|
|
127
|
+
"en": "A DTC ACQUISITION step: the digital event by which an asset ENTERS this study from an (opaque, Tier-0) external source — a data-transfer / ingestion event, DISTINCT from the genesis DTCProcessNode. Projected as crmdig:D12_Data_Transfer_Event (a subclass of D7_Digital_Machine_Event, ⊂ prov:Activity): 'events that transfer a digital object from one digital carrier to another; normally the digital object remains the same' — the object arrives opaque, no genesis is asserted. Tier 0: single-ring chain — the acquisition event --dtc_had_output[prov:generated]--> the acquired Resource (ResourceNode); the upstream root is an opaque external entity recorded as literals on data (repo/record/agent/retrieved_at/rights), not a genesis sub-graph. data.dtc_kind from the `acquisition` axis (download / ingest / local_import). Keeps genesis != acquisition as distinct TYPES inside the one DTC substrate.",
|
|
128
128
|
"validated_it": false,
|
|
129
129
|
"validated_el": false,
|
|
130
130
|
"validated_he": false,
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
},
|
|
147
147
|
"DTCProcessNode": {
|
|
148
148
|
"description": {
|
|
149
|
-
"en": "A DTC PROCESS
|
|
149
|
+
"en": "A DTC PROCESS step: the transformation/processing event that turns inputs into produced digital objects (data.dtc_kind from the `process` axis, e.g. transformation). Projected as a crmdig:D7_Digital_Machine_Event / prov:Activity; its inputs and outputs are the dtc_had_input (prov:used) and dtc_had_output (prov:generated) edges.",
|
|
150
150
|
"validated_it": false,
|
|
151
151
|
"validated_el": false,
|
|
152
152
|
"validated_he": false,
|
|
@@ -1081,6 +1081,38 @@
|
|
|
1081
1081
|
"label": {
|
|
1082
1082
|
"en": "Annotation Region"
|
|
1083
1083
|
}
|
|
1084
|
+
},
|
|
1085
|
+
"GCPSetNode": {
|
|
1086
|
+
"description": {
|
|
1087
|
+
"en": "The set of ground control points a registration was (or will be) solved from. data.points is a list of {id, world:[x,y,z], observations:[{image, pixel:[x,y]}], uncertainty?}; data.crs names the frame the world coordinates are in (null = a site-local grid, which is a different statement from absent). Minimum 3 observed non-collinear points for a similarity to be determined — reported by `solvable`, enforced by the runner, never at construction (a set being assembled in the field is legitimately incomplete)."
|
|
1088
|
+
},
|
|
1089
|
+
"label": {
|
|
1090
|
+
"en": "Ground control points"
|
|
1091
|
+
}
|
|
1092
|
+
},
|
|
1093
|
+
"RegistrationTransformNode": {
|
|
1094
|
+
"description": {
|
|
1095
|
+
"en": "The 7-parameter similarity (rotation 3x3 row-major, translation [x,y,z], positive scale) that places a produced model, with data.rms and data.residuals — the error bar, stored beside the claim rather than in a log nobody keeps. data.crs is the frame the model lands IN; null means a site-local frame (mode 'local'), which is NOT the same sentence as an absent transform. Re-registration is a NEW node produced by a NEW crmdig:D7; the superseded one is never edited."
|
|
1096
|
+
},
|
|
1097
|
+
"label": {
|
|
1098
|
+
"en": "Registration transform"
|
|
1099
|
+
}
|
|
1100
|
+
},
|
|
1101
|
+
"RepresentationModelNodeGroup": {
|
|
1102
|
+
"description": {
|
|
1103
|
+
"en": "Typed aggregation of the representation models that form ONE named set published under a single Document — «Survey 2015» under D.01, «Reconstruction» under D.09 (EM16-RMNG, meeting of 2026-09-10). Until then the RM container lived only as EM Tools' `scene.rm_containers` PropertyGroup, so the grouping that gives the set its meaning was invisible to anyone reading the graph. IT SITS BESIDE, IT DOES NOT REPLACE: every member keeps its own epoch edges (has_first_epoch / survive_in_epoch) and the Document keeps its DIRECT has_representation_model edges to each model — the group is added on top and never put in between, so a consumer that ignores it reads exactly what it read before. Membership is the TAG axis 'is_in_representation_model_group', like is_in_functional_unit and is_in_location, but 1:1 and not m:n: a mesh belongs to exactly one container, the rule already in force on the Blender side where `mesh_names` is authoritative. A group may legally be EMPTY and may legally have NO Document: both are states the RM Manager UI already shows. NOT a FunctionalUnitNodeGroup (that aggregates stratigraphic units into a building component; these members are models, not units); NOT an ActivityNodeGroup (nothing happened here and the set has no formation event of its own); NOT the Document, which stays the documentary anchor — deleting the container removes the group and not the Document."
|
|
1104
|
+
},
|
|
1105
|
+
"label": {
|
|
1106
|
+
"en": "RM Container"
|
|
1107
|
+
}
|
|
1108
|
+
},
|
|
1109
|
+
"DTCDeviceNode": {
|
|
1110
|
+
"description": {
|
|
1111
|
+
"en": "The APPARATUS a DTC step happened on — camera, sensor, drone, computer, scanner, total station, GNSS receiver. Projected as crmdig:D8_Digital_Device and attached to the EVENT by dtc_happened_on_device (crmdig:L12_happened_on_device), never to the input or the output: the three dtc_kinds flow axes are what went in, what happened and what came out, and a device is what it happened ON. Until 2026-09-16 it was a STRING inside how.acquisition, and a string cannot be asked «what did this machine produce» or «that lens was distorted, which models are affected». NOT a DTCNode: a DTC node is a STEP (an event in the chain) and a device is a thing in the world — it has no inputs, no outputs, and a provenance walk has no business entering it; subclassing would have put it in the chain by inheritance and set the class hierarchy arguing with dtc_role. data.dtc_kind comes from the `device` axis of dtc_kinds (em_visual_rules.json), so adding an apparatus is a JSON entry plus a sign. THE ID IS DERIVED FROM THE DESCRIPTOR (make | model | serial) by uuid5 — the same mechanism bucket_acquisition uses for a campaign name, but WITHOUT the graph_id in the key, because a campaign is an event of one study while the same camera in two studies is one camera. WHAT THAT COSTS, DECLARED: without a serial number two identical bodies derive the same id and MERGE, and the graph then cannot say which body took a given file. data.distinguishes records which happened ('serial' = one body, 'make+model' = a model). A declared merge is better than an invented distinction: salting the id with a graph or a timestamp would make two records of the SAME camera look like two cameras, and that failure is silent. Gated out of the stratigrapher palette, like every DTC node."
|
|
1112
|
+
},
|
|
1113
|
+
"label": {
|
|
1114
|
+
"en": "DTC Device"
|
|
1115
|
+
}
|
|
1084
1116
|
}
|
|
1085
1117
|
}
|
|
1086
1118
|
}
|
{s3dgraphy-1.6.0.dev16 → s3dgraphy-1.6.0.dev18}/src/s3dgraphy/JSON_config/em_visual_rules.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"formal_language": "EM",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.17",
|
|
4
4
|
"_note_material_vs_qualia_color": [
|
|
5
5
|
"DUE COSE DIVERSE CHE SI CHIAMANO ENTRAMBE color. Non confonderle: e gia successo.",
|
|
6
6
|
"1) QUI, in node_styles.<tipo>.style.material.rgba_color — il COLORE DEL MATERIALE BLENDER del proxy 3D, in float LINEARI. UNA sola chiave: `rgba_color`. Fino a S8 il file ne usava due (`color` sui 13 tipi stratigrafici, `rgba_color` sugli altri) e get_material_color() ne leggeva una sola, restituendo None per 21 tipi su 38; ora sono unificate e la vecchia `color` e letta solo come tolleranza verso file scritti prima. Un tipo che non diventa mai una mesh NON ha material affatto (i contenitori di gruppo, e da S7 i dieci nodi che rendono per icona): per loro get_material_color() torna None, ed e corretto.",
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"In breve: qui si decide di che colore DISEGNARE una US; li si registra di che colore ERA."
|
|
10
10
|
],
|
|
11
11
|
"_changelog": {
|
|
12
|
+
"1.6.16": "Asset declarations made TRUE. Four styles named a 2D file that is not there — SE.png, TSU.svg, serUSD.svg and unknown.png (which never existed) — and GRAPH named two, so it drew no icon at all. icons.ts returns null for a missing file and the canvas quietly draws the shape, so all five failed silently. Now: graph.svg authored (neutral gray, three nodes and their edges, the meta-container), unknown points at the generic_node.svg that exists, the three stale halves name the file that is there. Enforced by tests/test_visual_assets.py; the 16 unmodelled .glb are REPORTED (there and in sync-datamodels.sh), not asserted — a placeholder that looks official is harder to notice than an absence.",
|
|
13
|
+
"1.6.15": "Georeferencing gets its symbol on the canvas: node_styles GCP (GCPSetNode, crosshair) and RGT (RegistrationTransformNode, axes + rotation arc), in the same #FF6600 reference family as GEO/SS/LINK, each with its own 2D icon. ADDITIVE. Also 1.6.14-era: dtc_kinds.process.photogrammetry. Note the limit of a per-TYPE rule: whether a transform is georeferenced or a site-local frame is an INSTANCE fact (data.crs) and is read from the has_gcp_set edge, not from the style.",
|
|
12
14
|
"1.6.14": "BUGFIX-GLYPH follow-up (2026-08-05, E.D.): SE now renders its GLYPH in the scene (the new SE.svg, a stratigraphic-section box with a writable middle band) instead of a bare triangle, so a name can be written inside it. Added SE to 2d_render_glyph_types (aspect 1.331 from the SVG viewBox) and switched SE 2d_icon_prefer to vector (the raster SE.png is the stale stipple; the new symbol is the SVG). Dropped the interim shape_bbox=square. The shape:triangle stays declared for other consumers but the 2D scene draws the glyph. NOTE: verify the SVG carries a light background for dark-canvas legibility (like combiner.svg).",
|
|
13
15
|
"1.6.13": "BUGFIX-GLYPH (2026-08-05): SE (StratigraphicEvent) gains shape_bbox=\"square\" on its style, like BR. Its triangle was drawn in the wide default 90x32 box, leaving the connect handle far from the glyph; a square bbox (side = min(w,h)) makes the triangle sit in a ~32x32 box with the handle adjacent, matching BR (diamond, square) and the glyph types. No shape_scale: unlike BR (a 0.7 marker) the SE triangle stays full-size. The SCENE representation of SE remains the triangle shape, not the raster icon (S10/POL5 decision unchanged).",
|
|
14
16
|
"1.6.12": "EM3 - `2d_render_glyph_types` guadagna una tabella `aspect`: la larghezza del box di un nodo-glifo e la sua ALTEZZA per l'aspect del disegno, quindi tutti i glifi hanno la stessa altezza e differiscono solo in larghezza (regola E.D.). Default 1.0 = quadrato, che e cio che sono gli undici glifi DTC dopo l'autocrop di POL4 ed extractor/combiner per costruzione; l'unico davvero non quadrato oggi e `author` (0.875 = 448/512). I numeri sono STATICI e misurati una volta dai file: un aspect letto da naturalWidth a runtime farebbe dipendere il layout da quando un bitmap finisce di decodificare (box che salta, due run diversi sullo stesso documento). Il prezzo di un numero statico e che puo diventare stantio se un asset viene ridisegnato: da questa versione sync-datamodels.sh ri-misura ogni file vendorato e AVVISA se una dichiarazione sbaglia di oltre il 2%.",
|
|
@@ -27,7 +29,8 @@
|
|
|
27
29
|
"1.5.3": "Fix USD / serUSD material colour: RGB was (0.549, 0.103, 0.0) = #8C1A00 (red), should be #D86400 (orange) to match the canonical USD documentary colour used in the GraphML palette template, node_registry defaults and document_variant_styles.observable. USD border_color also corrected from #8C1A00 to #D86400 (serUSD border was already correct).",
|
|
28
30
|
"1.5.2": "Added RSF (Reused Special Find / spolia) node style — octagon, red border (#9B3333), white fill. Sibling of SF/VSF, distinguished by border colour. Originating DP: DP-26.",
|
|
29
31
|
"1.5.1": "Added LocationNodeGroup node style (dashed roundrectangle, kind-based border colour) and is_in_location edge style with primary_modifier override.",
|
|
30
|
-
"1.5.0": "Initial EM 1.5 visual rules."
|
|
32
|
+
"1.5.0": "Initial EM 1.5 visual rules.",
|
|
33
|
+
"1.6.17": "Added RepresentationModelNodeGroup node style (EM16-RMNG): the group family's dashed roundrectangle with the RM family's #FF6600 title-tab, and the is_in_representation_model_group edge style. Additive only — no existing style touched, and the epoch↔RM / Document→RM edges keep the rendering they had."
|
|
31
34
|
},
|
|
32
35
|
"2d_render_glyph_types": {
|
|
33
36
|
"_comment": "Node types the 2D renderer draws as a CENTRED GLYPH (their official icon) instead of a shape. Their box is HEIGHT-DRIVEN: the height is the engine node height and the width is that height times the `aspect` below (EM2 made them square; EM3 generalised the square to a per-glyph aspect). Keyed by RUNTIME node_type, deliberately: this block is read both by EMStudio's icons.ts and by its Rust layout engine, and a list keyed by node_type needs no alias table on either side (`node_styles` is keyed by the short abbreviation, EXT/COMB/..., which the engine does not know). Added in 1.6.11 (EM2) because the fact had been living as a hand-written set inside icons.ts, and the layout engine needs the same fact to give those nodes a height-driven box: a glyph drawn 32 wide inside a 90x32 box leaves empty margins, and the connect handle — anchored to the right edge of the box — ends up floating away from the glyph. NB two things this does NOT include. (1) `document` and `property`: they are drawn with custom geometry (a sheet with a folded corner, a bracketed text annotation) that is NOT square, and squaring their box would crush the text. (2) DTC nodes: their glyph is chosen per NODE from `data.dtc_kind` and not from the type, so a consumer decides that node by node — a plain `link` is not a glyph, a `link` with a dtc_kind is.",
|
|
@@ -224,7 +227,7 @@
|
|
|
224
227
|
"serUSD": {
|
|
225
228
|
"3d_file": "src/3D/serUSD.glb",
|
|
226
229
|
"2d_file_rast": "src/2D/serUSD.png",
|
|
227
|
-
"2d_file_vect": "src/2D/serUSD.
|
|
230
|
+
"2d_file_vect": "src/2D/serUSD.png",
|
|
228
231
|
"style": {
|
|
229
232
|
"material": {
|
|
230
233
|
"rgba_color": {
|
|
@@ -287,7 +290,7 @@
|
|
|
287
290
|
"TSU": {
|
|
288
291
|
"3d_file": "src/3D/TSU.glb",
|
|
289
292
|
"2d_file_rast": "src/2D/TSU.png",
|
|
290
|
-
"2d_file_vect": "src/2D/TSU.
|
|
293
|
+
"2d_file_vect": "src/2D/TSU.png",
|
|
291
294
|
"style": {
|
|
292
295
|
"material": {
|
|
293
296
|
"rgba_color": {
|
|
@@ -332,7 +335,7 @@
|
|
|
332
335
|
"SE": {
|
|
333
336
|
"_comment": "Stratigraphic Event: l'ATTO che crea, modifica o distrugge un'unita — un terremoto che fa cadere l'intonaco, una demolizione, l'inizio di un cantiere. Non e materia, e un processo, e per questo non appartiene a nessuna delle famiglie cromatiche della materia (rosso reale, verde/blu virtuale, arancio documentario, giallo special find, grigio negativo). Prende il TEAL della famiglia attivita: un ActivityNodeGroup e un fascio di atti e porta gia la linguetta ciano #CCFFFF, quindi il ciano e l'unico colore del linguaggio che dice gia 'e successo qualcosa' invece di 'qualcosa c'e'. Curato in S10 (2026-08-02): fino ad allora SE portava il segnaposto #BC0000 mai scelto, che per giunta contraddiceva il proprio bordo nero, e il node datamodel dichiarava il simbolo 'to be defined'. Il nero di BR e stato scartato di proposito: un material nero rende un proxy illeggibile in viewport, e i proxy SE si vedono (Heriverse li disegna fra i suoi stratigraphicTypes). POL5 (2026-08-04): l'ICONA e il raster (`2d_icon_prefer: raster`), come per NARR e per la stessa ragione — SE.svg e un tratteggio vettorializzato da 284 KB per un glifo che nessun renderer disegna oltre i 30 px. Il vettore resta dichiarato perche esiste; il flag dice quale dei due DISEGNARE. Il PNG a 256 px e reso DA quell'SVG, quindi i due non possono divergere. Nel grafo SE resta comunque un TRIANGOLO disegnato (shape), non l'icona: il raster serve a palette ed elenchi.",
|
|
334
337
|
"3d_file": "src/3D/SE.glb",
|
|
335
|
-
"2d_file_rast": "src/2D/SE.
|
|
338
|
+
"2d_file_rast": "src/2D/SE.svg",
|
|
336
339
|
"2d_file_vect": "src/2D/SE.svg",
|
|
337
340
|
"2d_icon_prefer": "vector",
|
|
338
341
|
"style": {
|
|
@@ -490,7 +493,7 @@
|
|
|
490
493
|
"GRAPH": {
|
|
491
494
|
"_comment": "Top-level container node representing the EM graph itself. Anchor for graph-wide metadata propagation (default author, license, embargo, epoch). Rendered as a dashed rounded rectangle to read as a meta-container, neutral gray to stay visually distinct from stratigraphic and paradata nodes. Graphml palette prefix: 'G.'.",
|
|
492
495
|
"file_3d": "src/3D/graph.glb",
|
|
493
|
-
"2d_file_rast": "src/2D/graph.
|
|
496
|
+
"2d_file_rast": "src/2D/graph.svg",
|
|
494
497
|
"2d_file_vect": "src/2D/graph.svg",
|
|
495
498
|
"style": {
|
|
496
499
|
"material": {
|
|
@@ -542,6 +545,32 @@
|
|
|
542
545
|
},
|
|
543
546
|
"label_position": "over"
|
|
544
547
|
},
|
|
548
|
+
"GCP": {
|
|
549
|
+
"_comment": "Ground control points — the EVIDENCE behind a registration: which point was seen on which photograph at which pixel, and where it is in the world. The NODE IS THE SET, never the single GCP (data.points), which is why the icon shows one target among several marks. Same orange as the other reference/georeferencing nodes (GEO, SS, LINK) because it is that family; the crosshair shape distinguishes measurement-of-a-place from position-of-a-site. Graphml palette prefix: 'GC.'.",
|
|
550
|
+
"file_3d": "src/3D/gcp_set.glb",
|
|
551
|
+
"2d_file_rast": "src/2D/gcp_set.svg",
|
|
552
|
+
"2d_file_vect": "src/2D/gcp_set.svg",
|
|
553
|
+
"style": {
|
|
554
|
+
"border_color": "#FF6600",
|
|
555
|
+
"fill_color": "#FFFFFF",
|
|
556
|
+
"border_style": "solid",
|
|
557
|
+
"shape": "crosshair"
|
|
558
|
+
},
|
|
559
|
+
"label_position": "over"
|
|
560
|
+
},
|
|
561
|
+
"RGT": {
|
|
562
|
+
"_comment": "Registration transform — the SOLUTION: the 7-parameter similarity that places a produced model, with its RMS. Drawn as axes plus a rotation arc. NOTE, and it is a limit of a per-TYPE rule: whether a given transform is georeferenced (data.crs set) or a site-local frame (crs null) is an INSTANCE fact and cannot be encoded here — a reader tells the two modes apart by the presence of the has_gcp_set edge, which is why that edge exists. Graphml palette prefix: 'RG.'.",
|
|
563
|
+
"file_3d": "src/3D/registration_transform.glb",
|
|
564
|
+
"2d_file_rast": "src/2D/registration_transform.svg",
|
|
565
|
+
"2d_file_vect": "src/2D/registration_transform.svg",
|
|
566
|
+
"style": {
|
|
567
|
+
"border_color": "#FF6600",
|
|
568
|
+
"fill_color": "#FFFFFF",
|
|
569
|
+
"border_style": "solid",
|
|
570
|
+
"shape": "axes"
|
|
571
|
+
},
|
|
572
|
+
"label_position": "over"
|
|
573
|
+
},
|
|
545
574
|
"GEO": {
|
|
546
575
|
"file_3d": "src/3D/geo.glb",
|
|
547
576
|
"2d_file_rast": "src/2D/geo_position.svg",
|
|
@@ -628,7 +657,7 @@
|
|
|
628
657
|
},
|
|
629
658
|
"unknown": {
|
|
630
659
|
"file_3d": "src/3D/unknown.glb",
|
|
631
|
-
"file_2d": "src/2D/
|
|
660
|
+
"file_2d": "src/2D/generic_node.svg",
|
|
632
661
|
"style": {
|
|
633
662
|
"border_color": "#FF0000",
|
|
634
663
|
"fill_color": "#FFFFFF",
|
|
@@ -762,6 +791,18 @@
|
|
|
762
791
|
"description": "Interpretive / semantic identity (basilica, room A, courtyard)."
|
|
763
792
|
}
|
|
764
793
|
}
|
|
794
|
+
},
|
|
795
|
+
"RepresentationModelNodeGroup": {
|
|
796
|
+
"_comment": "Group-folder rendering for an RM container (EM16-RMNG): the named set of representation models a Document publishes — «Survey 2015» under D.01. Shape and frame are the GROUP family's, unchanged and deliberately not reinvented (roundrectangle, neutral grey fill, dashed black border) — what identifies the family is the group title-tab colour, exactly as cyan identifies ActivityNodeGroup, peach ParadataNodeGroup, green TimeBranchNodeGroup and grey LocationNodeGroup. The tab here carries #FF6600, which is the RM family's OWN border colour (see the RM / RMDoc / RMSF styles): the box reads as «a group of representation models» without a new shape and without a new colour being invented. Verified free before use: #FF6600 was not in use as a label_background by any other style, and is not among the colours the GraphML importer keys on.",
|
|
797
|
+
"style": {
|
|
798
|
+
"shape": "roundrectangle",
|
|
799
|
+
"fill_color": "#F5F5F5",
|
|
800
|
+
"border_color": "#000000",
|
|
801
|
+
"border_style": "dashed",
|
|
802
|
+
"border_width": 1.0,
|
|
803
|
+
"label_background": "#FF6600",
|
|
804
|
+
"label_position": "top"
|
|
805
|
+
}
|
|
765
806
|
}
|
|
766
807
|
},
|
|
767
808
|
"document_roles": {
|
|
@@ -783,7 +824,7 @@
|
|
|
783
824
|
}
|
|
784
825
|
},
|
|
785
826
|
"document_variant_styles": {
|
|
786
|
-
"_comment": "Axis 3 of the three-axis Canonical-Document classification (EM 1.6). Declares how the document's Representation Model (RM) is spatialized in the 3D scene. Q-C (EM 1.6): the axis is a scale of METRIC AUTHORITY OF PLACEMENT, and it is authoritative on the **RMDoc** — the spatial instance — not on the Document. The Document's existence is certain; what has degrees is its spatialisation, which is what the RMDoc IS (proxy:US :: RMSF:SF :: RM:state :: RMDoc:Document). The position itself (X,Y,Z + rotation) lives on the RMDoc and nowhere else; the Document may mirror the value on its yEd border for diagram convenience, but it carries no position. The ladder, from most to least metric authority: reality_based
|
|
827
|
+
"_comment": "Axis 3 of the three-axis Canonical-Document classification (EM 1.6). Declares how the document's Representation Model (RM) is spatialized in the 3D scene. Q-C (EM 1.6): the axis is a scale of METRIC AUTHORITY OF PLACEMENT, and it is authoritative on the **RMDoc** — the spatial instance — not on the Document. The Document's existence is certain; what has degrees is its spatialisation, which is what the RMDoc IS (proxy:US :: RMSF:SF :: RM:state :: RMDoc:Document). The position itself (X,Y,Z + rotation) lives on the RMDoc and nowhere else; the Document may mirror the value on its yEd border for diagram convenience, but it carries no position. The ladder, from most to least metric authority: reality_based → observable → asserted → symbolic. `em_based` is not a rung of that ladder but a provenance statement (the asset IS an EM-derived reconstruction). Temporality is a separate matter: it is an attribution, certain or argued through a paradata chain, never a grade on this axis. The 'geometry' property drives both the GraphML DocumentNode border colour (in yEd) and the RM contour colour in the 3D viewport (per the v1.6 toggle). Documents without an RM (e.g. PDF articles, bibliographies) omit the geometry property entirely — no node, no colour. Border WIDTH carries the canonical/instance distinction: width >= 3.0 is the canonical document, anything thinner is a use-instance. The COLOUR classifies the canonical document's geometry-axis category. A black thick border means 'canonical without geometry classification' (canonical_unknown). Renamed from 'master' in schema 2: every digital document is a copy, so 'master' misread as 'original vs copies'; what the flag marks is the document drawn at its own creation, vs the instances that re-use it. Kept in sync with the reference nodes in templates/em_palette_template.graphml.",
|
|
787
828
|
"default": {
|
|
788
829
|
"border_color": "#000000",
|
|
789
830
|
"border_style": "solid",
|
|
@@ -830,27 +871,130 @@
|
|
|
830
871
|
"dtc_kinds": {
|
|
831
872
|
"_comment": "DATA-DRIVEN, EXPANDABLE per-kind vocabulary for the DTC substrate profile (ECHOES). Mirrors the Master-Document axis vocabularies above (document_roles/content_natures): the three base kinds (input/process/output) each list specific kinds seeded from the 2017 DTC palette. Adding a new kind (e.g. audio, spectroscopy) is a JSON entry here (+ a glyph) — NOT a code change; the DTC node classes validate against these keys via s3dgraphy.utils.get_dtc_kinds(). `glyph` names the 2017 DTC SVG (wired in the later glyph/visual-manager slice; recorded here as data only).",
|
|
832
873
|
"input": {
|
|
833
|
-
"photo": {
|
|
834
|
-
|
|
835
|
-
|
|
874
|
+
"photo": {
|
|
875
|
+
"label": "Photograph",
|
|
876
|
+
"glyph": "09_photos",
|
|
877
|
+
"description": "Photographic acquisition (single image or set)."
|
|
878
|
+
},
|
|
879
|
+
"laserscanner": {
|
|
880
|
+
"label": "Laser scan",
|
|
881
|
+
"glyph": "10_laserscanner",
|
|
882
|
+
"description": "Terrestrial/close-range laser scanning acquisition."
|
|
883
|
+
},
|
|
884
|
+
"topographic": {
|
|
885
|
+
"label": "Topographic survey",
|
|
886
|
+
"glyph": "01_topographicnetwork",
|
|
887
|
+
"description": "Total-station / topographic-network acquisition."
|
|
888
|
+
}
|
|
836
889
|
},
|
|
837
890
|
"process": {
|
|
838
|
-
"
|
|
891
|
+
"photogrammetry": {
|
|
892
|
+
"label": "Photogrammetry",
|
|
893
|
+
"glyph": "03_mesh",
|
|
894
|
+
"description": "Structure-from-motion reconstruction: a cluster of photographs becomes a 3D model. A specific kind of transformation, named because what a reader needs to know about a mesh is which family of process made it — and because the placement (RegistrationTransform) only means something for this one."
|
|
895
|
+
},
|
|
896
|
+
"transformation": {
|
|
897
|
+
"label": "Transformation",
|
|
898
|
+
"glyph": "00_transformation",
|
|
899
|
+
"description": "A processing/transformation step turning inputs into produced digital objects."
|
|
900
|
+
}
|
|
839
901
|
},
|
|
840
902
|
"acquisition": {
|
|
841
|
-
"download": {
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
903
|
+
"download": {
|
|
904
|
+
"label": "Download",
|
|
905
|
+
"glyph": null,
|
|
906
|
+
"description": "Retrieval of a digital object from a remote (opaque, Tier-0) repository."
|
|
907
|
+
},
|
|
908
|
+
"ingest": {
|
|
909
|
+
"label": "Ingest",
|
|
910
|
+
"glyph": null,
|
|
911
|
+
"description": "Generic ingestion of a digital object into the study."
|
|
912
|
+
},
|
|
913
|
+
"local_import": {
|
|
914
|
+
"label": "Local import",
|
|
915
|
+
"glyph": null,
|
|
916
|
+
"description": "Acquisition from the local file system (project-folder search) — the local analog of remote acquisition."
|
|
917
|
+
},
|
|
918
|
+
"uri_reference": {
|
|
919
|
+
"label": "URI reference",
|
|
920
|
+
"glyph": null,
|
|
921
|
+
"description": "The URI was acquired, not the object: the resource stays where it is and is reached through its own access protocol (an open link, or one you subscribe to). No bytes were copied — calling this a download would record a retrieval that never happened."
|
|
922
|
+
}
|
|
845
923
|
},
|
|
846
924
|
"output": {
|
|
847
|
-
"pointcloud": {
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
"
|
|
853
|
-
|
|
925
|
+
"pointcloud": {
|
|
926
|
+
"label": "Point cloud",
|
|
927
|
+
"glyph": "02_pointcloud",
|
|
928
|
+
"description": "Produced point cloud."
|
|
929
|
+
},
|
|
930
|
+
"mesh": {
|
|
931
|
+
"label": "Mesh",
|
|
932
|
+
"glyph": "03_mesh",
|
|
933
|
+
"description": "Produced 3D mesh model."
|
|
934
|
+
},
|
|
935
|
+
"dem": {
|
|
936
|
+
"label": "DEM",
|
|
937
|
+
"glyph": "07_DEM",
|
|
938
|
+
"description": "Digital Elevation Model."
|
|
939
|
+
},
|
|
940
|
+
"orthophoto": {
|
|
941
|
+
"label": "Orthophoto",
|
|
942
|
+
"glyph": "08_ortophoto",
|
|
943
|
+
"description": "Produced orthophoto / orthomosaic."
|
|
944
|
+
},
|
|
945
|
+
"points": {
|
|
946
|
+
"label": "Points",
|
|
947
|
+
"glyph": "04_points",
|
|
948
|
+
"description": "Vector point features."
|
|
949
|
+
},
|
|
950
|
+
"lines": {
|
|
951
|
+
"label": "Lines",
|
|
952
|
+
"glyph": "05_lines",
|
|
953
|
+
"description": "Vector line features."
|
|
954
|
+
},
|
|
955
|
+
"polygons": {
|
|
956
|
+
"label": "Polygons",
|
|
957
|
+
"glyph": "06_polygons",
|
|
958
|
+
"description": "Vector polygon features."
|
|
959
|
+
}
|
|
960
|
+
},
|
|
961
|
+
"device": {
|
|
962
|
+
"_comment": "THE APPARATUS AXIS — what a step happened ON, not what went in or came out. crmdig:L12_happened_on_device, deliberately NOT L10_had_input: the photographs are the input and the camera is not, and flattening the two makes «which files did this body take» unanswerable, which is the only reason the node exists. One class (DTCDeviceNode, crmdig:D8_Digital_Device) and the genus from here, so adding an apparatus stays a JSON entry plus a sign — the same rule the flow axes follow. | THE GLYPHS ARE ONE FAMILY: 11_device is a rounded box with a connector on one side, the poorest shape that still says «apparatus» and free of any optical cue because a computer has no lens. Two boxes whose connectors touch read as a RIG — a computer with a sensor on it, a camera on a drone — which is how an assembly is said without inventing a second symbol. Every genus keeps that outline IDENTICAL and changes one inner mark, so the family reads from far away and the genus from close up. The SVGs live in JSON_config/src/2D/dtc/ beside 00–10; these names are declared here first and drawn separately. | NOTE FOR WHOEVER EXTENDS THIS: `laserscanner` sits on the `input` axis above, and now that this axis exists it is in the wrong box — a scanner is an apparatus, not an input. It is NOT moved: stamps already emitted carry that kind on that axis, and moving it would invalidate them in silence, which is the defect this whole substrate is built against. Left to E.D.",
|
|
963
|
+
"camera": {
|
|
964
|
+
"label": "Camera",
|
|
965
|
+
"glyph": "11_device_optical",
|
|
966
|
+
"description": "A photographic or video body. The circle is the GENUS mark and sits inside the family outline: the outline itself stays free of optics so a computer can wear it."
|
|
967
|
+
},
|
|
968
|
+
"sensor": {
|
|
969
|
+
"label": "Sensor",
|
|
970
|
+
"glyph": "11_device_sensor",
|
|
971
|
+
"description": "A measuring instrument that is not a camera — multispectral, thermal, a lidar head, a magnetometer. The wave mark says «it records a quantity»."
|
|
972
|
+
},
|
|
973
|
+
"drone": {
|
|
974
|
+
"label": "Drone",
|
|
975
|
+
"glyph": "11_device_drone",
|
|
976
|
+
"description": "The airframe that carried the apparatus. Its own device because it is the thing that flew, and a rig is drawn as its connector touching the payload's."
|
|
977
|
+
},
|
|
978
|
+
"computer": {
|
|
979
|
+
"label": "Computer",
|
|
980
|
+
"glyph": "11_device_computer",
|
|
981
|
+
"description": "The machine a processing step ran on. Here because «the reconstruction produced different numbers on the two workstations» is a question somebody will ask, and it is the reason the family outline had to stay free of optics."
|
|
982
|
+
},
|
|
983
|
+
"scanner": {
|
|
984
|
+
"label": "Scanner",
|
|
985
|
+
"glyph": "11_device_scanner",
|
|
986
|
+
"description": "A range or structured-light scanner — the APPARATUS. Distinct from the `laserscanner` entry on the `input` axis, which is a kind of input and is left where it is on purpose (see the note above)."
|
|
987
|
+
},
|
|
988
|
+
"total_station": {
|
|
989
|
+
"label": "Total station",
|
|
990
|
+
"glyph": "11_device_station",
|
|
991
|
+
"description": "A theodolite with a rangefinder — the instrument behind a `topographic` input."
|
|
992
|
+
},
|
|
993
|
+
"gnss": {
|
|
994
|
+
"label": "GNSS receiver",
|
|
995
|
+
"glyph": "11_device_gnss",
|
|
996
|
+
"description": "A satellite positioning receiver: the apparatus that produces a how.acquisition.location whose `source` is a measurement and not a person's word."
|
|
997
|
+
}
|
|
854
998
|
}
|
|
855
999
|
},
|
|
856
1000
|
"edge_style": {
|
|
@@ -1036,6 +1180,15 @@
|
|
|
1036
1180
|
"width": 1.5
|
|
1037
1181
|
},
|
|
1038
1182
|
"label": "Included in Timebranch"
|
|
1183
|
+
},
|
|
1184
|
+
"is_in_representation_model_group": {
|
|
1185
|
+
"_comment": "Membership of a representation model in an RM container (EM16-RMNG). Dashed like the other membership edges that are TAGS rather than structure (has_representation_model, has_property), and carrying the RM family's #FF6600 so the line reads as part of the same family as the group's title-tab. NOTE: is_in_functional_unit has no entry in this block — a pre-existing gap, reported and not fixed here.",
|
|
1186
|
+
"style": {
|
|
1187
|
+
"color": "#FF6600",
|
|
1188
|
+
"line_style": "dashed",
|
|
1189
|
+
"width": 1.5
|
|
1190
|
+
},
|
|
1191
|
+
"label": "Is in Representation Model Group"
|
|
1039
1192
|
}
|
|
1040
1193
|
}
|
|
1041
|
-
}
|
|
1194
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "by `python -m s3dgraphy.tools.sync_node_datamodel` — DO NOT hand-edit. The flat class hierarchy (parent/node_type/description) is derived from the Python Node subclasses; hand-authored semantics and CIDOC mappings live in s3Dgraphy_node_datamodel.json.",
|
|
3
|
-
"s3Dgraphy_data_model_version": "1.6.
|
|
3
|
+
"s3Dgraphy_data_model_version": "1.6.5",
|
|
4
4
|
"node_types": {
|
|
5
5
|
"ActivityNodeGroup": {
|
|
6
6
|
"parent": "GroupNode",
|
|
@@ -37,10 +37,15 @@
|
|
|
37
37
|
"node_type": "dtc_acquisition",
|
|
38
38
|
"description": "DTC acquisition/ingestion event (ECHOES DTC profile, acquisition seam)."
|
|
39
39
|
},
|
|
40
|
+
"DTCDeviceNode": {
|
|
41
|
+
"parent": "Node",
|
|
42
|
+
"node_type": "dtc_device",
|
|
43
|
+
"description": "The apparatus an acquisition or a processing step happened on."
|
|
44
|
+
},
|
|
40
45
|
"DTCNode": {
|
|
41
46
|
"parent": "Node",
|
|
42
47
|
"node_type": null,
|
|
43
|
-
"description": "Abstract base for a DTC chain
|
|
48
|
+
"description": "Abstract base for one STEP of a DTC chain. Concrete subclasses set ``node_type``"
|
|
44
49
|
},
|
|
45
50
|
"DTCProcessNode": {
|
|
46
51
|
"parent": "DTCNode",
|
|
@@ -77,6 +82,11 @@
|
|
|
77
82
|
"node_type": "FunctionalUnitNodeGroup",
|
|
78
83
|
"description": "Typed aggregation of the stratigraphic units that make up one"
|
|
79
84
|
},
|
|
85
|
+
"GCPSetNode": {
|
|
86
|
+
"parent": "Node",
|
|
87
|
+
"node_type": "gcp_set",
|
|
88
|
+
"description": "The ground control points a registration was (or will be) solved from."
|
|
89
|
+
},
|
|
80
90
|
"GeoPositionNode": {
|
|
81
91
|
"parent": "Node",
|
|
82
92
|
"node_type": "geo_position",
|
|
@@ -157,6 +167,11 @@
|
|
|
157
167
|
"node_type": "property",
|
|
158
168
|
"description": "Nodo che rappresenta una proprietà associata a un altro nodo."
|
|
159
169
|
},
|
|
170
|
+
"RegistrationTransformNode": {
|
|
171
|
+
"parent": "Node",
|
|
172
|
+
"node_type": "registration_transform",
|
|
173
|
+
"description": "The similarity that places a model — 7 parameters and what they cost."
|
|
174
|
+
},
|
|
160
175
|
"RepresentationModelDocNode": {
|
|
161
176
|
"parent": "RepresentationNode",
|
|
162
177
|
"node_type": "representation_model_doc",
|
|
@@ -167,6 +182,11 @@
|
|
|
167
182
|
"node_type": "representation_model",
|
|
168
183
|
"description": "Node representing a 3D model or spatialized image."
|
|
169
184
|
},
|
|
185
|
+
"RepresentationModelNodeGroup": {
|
|
186
|
+
"parent": "GroupNode",
|
|
187
|
+
"node_type": "RepresentationModelNodeGroup",
|
|
188
|
+
"description": "Typed aggregation of the representation models that form ONE named set"
|
|
189
|
+
},
|
|
170
190
|
"RepresentationModelSpecialFindNode": {
|
|
171
191
|
"parent": "RepresentationNode",
|
|
172
192
|
"node_type": "representation_model_sf",
|