s3dgraphy 1.6.0.dev93__tar.gz → 1.6.0.dev94__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.dev93/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev94}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/pyproject.toml +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/datamodel_translations.json +45 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em.ttl +8 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +4 -3
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/__init__.py +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/rdf_exporter.py +2 -1
- s3dgraphy-1.6.0.dev94/src/s3dgraphy/importer/metashape_chain.py +312 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/metashape_project.py +84 -8
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/rdf_importer.py +2 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/emdb/usm_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/template_emdb_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +2 -2
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/resource_node.py +42 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/blend_folder.py +24 -0
- s3dgraphy-1.6.0.dev94/src/s3dgraphy/resources/master_stamp.py +359 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/stamp/__init__.py +5 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/datamodel_i18n.py +34 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy.egg-info/SOURCES.txt +3 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_blend_folder.py +4 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_edge_ui_phrases.py +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_landscape_ontology.py +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_resource_file_node.py +1 -1
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_semantic_purity.py +3 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_spatiotemporal_entities.py +2 -2
- s3dgraphy-1.6.0.dev94/tests/test_timbra_master.py +379 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/README.md +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/alternative_cases.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_qualia_types.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_state_symbols.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/node_registry.generated.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/bozze/UT.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/bozze/UT0.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/bozze/district.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/bozze/site.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/container.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/hdto/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/hdto/hdt.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/hdto/heritage_entity.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/hdto/project.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/hdto/study.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/landscape_surface.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/proxy.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/tileset.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/version_gltf.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/version_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/version_scene.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/2D/version_tiles.svg +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/version_for_cases.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/JSON_config/version_for_hardware_cases.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/__main__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/acquisition/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/acquisition/acquire.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/acquisition/descriptor.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/acquisition/mapping.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/ai_validation.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/annotation/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/annotation/paradata.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/annotation/reading.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/api.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/classification.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/container.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/contract/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/contract/connector.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/contract/consumer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/contract/core.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/contract/reference.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/crdt.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dissemination.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/capture.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/corpus.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/devices.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/ingest.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/dtc/residency.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/edges/connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/editorial.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/html_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/json_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/aton.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/frame.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/gltf.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/migrate.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/proxy.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/registration.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/store_backed.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/transform.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/geometry/wkt.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/contours.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/crs.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/geojson.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/geopackage.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/geotiff.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/landscape.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/layer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/shapefile.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/site.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/gis/wkb.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/graph.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/graph_removal.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/hdto.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/iiif.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/base_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/csv_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/emjson_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/import_graphml.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/sheet_header.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/source_text.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/importer/xml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/labels.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/landscape.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/language.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/links.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/authoring.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/narrative/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/narrative/bake.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/narrative/generation.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/narrative/query.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/narrative/registry.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/narrative/site_story.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/dtc_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/group_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/landscape_surface_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/landscape_unit_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/periodization_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/project_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/study_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/nodes/translation_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/ownership.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/paradata_view.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/periodization.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/photogrammetry/delta.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/project_tree.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/property_source.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/publication.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/addresses.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/alignment.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/alternatives.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/asset_list.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/blend_room.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/consolidate.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/detail.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/files.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/graph_compose.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/locate.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/moved.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/object_store.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/s3_backend.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/storage_rows.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/tiles3tz.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/tileset_fit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/use_profiles.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/resources/versions.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/rights.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/access.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/engine.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/errors.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/inventory.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/pack.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/room_import/trust.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/shelf/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/shelf/core.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/spatiotemporal.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/stamp/absorb.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/stamp/emit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/stamp/hints.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/stamp/identity.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/study.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/temporal/relative_chronology.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/deliverable_report.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/ontology_html.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/tools/wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/translation.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy/zero_hour.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy.egg-info/requires.txt +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_acquisition_fs.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_add_resource.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_ai_validation_nodes.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_alternative_labels.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_alternative_sets.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_alternatives_hat.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_anastylosis_document_type.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_api_surface.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_asset_dtc_protocol.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_asset_list.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_asset_versions.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_aton_shapes.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_attach_only.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_authority_projection.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_authority_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_blend_locator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_blend_room.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_bucket_alignment.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_canonical_document_rename.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_canvas_metadata_import.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_capture_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_capture_rdf_class.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_chronology_on_request.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_cloud_placeholders.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_coating_unit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_consolida_2.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_consolidate_compose.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_container.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_container_layouts.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_containment_tpq.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_contemporaneity.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_contract.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_contract_consumer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_convert_command.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_crdt.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_cycle_message_is_cheap.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_datamodel_fingerprint.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_detail.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_deterministic_ids.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_em_sourcelist.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_file_set_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_graphml_without_a_database.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_image_set_texturing.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_not_georeferenced.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_one_act_n_outputs.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev29_ttl_round_trip.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dev30_decisions.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_devices.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dissemination_tombstones.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dove_sta_il_testo.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dtc_corpus.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dtc_ingest.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dtc_neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dtc_projection.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_dtc_residency.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_edge_outside_graph.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_editorial.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_emjson_conformance.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_emjson_no_drawing_keys.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_emjson_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_emjson_schema_version.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_end_of_unit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_epoch_instances.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_epoch_undated_import.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_explicit_node_type_marker.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_extracted_from_unit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_file_frame.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_functional_units.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_georeference_scene.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_gis_base.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_gis_site.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_gltf_stitch.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_glyph_paths.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_graph_header_code.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_graph_helpers_indexed.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_graph_indices_alive.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_graph_indices_edges.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_graph_removal.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_graph_scope_migration.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_hdto_glyphs.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_hdto_projection.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_hdto_study.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_header_key_aliases.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_i_generi_dei_passi.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_iiif.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_il_modo_d_accesso.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_il_modo_dal_relay.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_il_proprietario_si_legge.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_il_riallineamento.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_import_without_residues.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_importer_edge_hygiene.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_iri_extendedmatrix.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_issue27_small_points.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_la_lingua_alla_nascita.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_la_lingua_dei_dati.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_la_lingua_nell_op.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_la_riga_d_intestazione.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_lab_orizzonti.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_le_traduzioni.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_lod_levels.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_lossless_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_mapping_authoring.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_mapping_csv_and_relations.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_masonry_unit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_material_color.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_merge_conflicts.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_migrate_legacy_proxy.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_authorship.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_bake_docx.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_figures.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_generation.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_mentions.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_query.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_scaffolder.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_site_place.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_narrative_unvalidated_export.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_node_datamodel_registry.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_node_type_map_integrity.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_one_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_one_spelling_writers.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_ontology_html.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_op_vocabulary.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_part_twins.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_photogrammetry_delta.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_physical_relation_spellings.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_piu_indirizzi.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_promote_keeps_proxy_type.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_promotion.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_property_as_source.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_property_owners.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_proxy_resource.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_proxy_retype.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_psx_locator.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_pyarchinit_tier2.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_qualia_dai_d7_d8.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_rdf_embedding.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_rdf_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_rdf_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_rdf_sub_epoch_direction.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reading_coords.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reading_migration.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reading_place.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reading_rdf.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_recompute_warnings.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_registration.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_release.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reproject.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_resource_files_implicit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_resource_layer.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_resource_representations.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_resource_revision.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_resource_tier.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_rm_container_node_group.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_room_import.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_room_import_access.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_room_import_inventory.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_room_import_trust.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_s3_backend.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_series_vsf.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_shelf.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_shelf_facets.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_shelf_hatting.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_shelf_role_uri_table.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_shipped_mappings.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_source_list_mapping.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_source_text.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_special_find_definitions.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_stable_study_code.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_stamp_hints.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_stamp_title_description.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_storage_rows.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_store_backed_geometry.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_stratiminer_api.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_study_metadata.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_threed_instances.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_tileset_fit.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_tileset_resource.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_transform_form.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_ttl_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_unit_definition.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_use_profiles.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_valore_proprieta_doppio.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_verifica_provenance.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_version_for.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_visual_assets.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_xlsx_importer_graph_init.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_xlsx_source_column.py +0 -0
- {s3dgraphy-1.6.0.dev93 → s3dgraphy-1.6.0.dev94}/tests/test_zero_hour.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.dev94
|
|
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>
|
|
@@ -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.dev94"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "s3Dgraphy_datamodel_translations",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16",
|
|
4
4
|
"languages": [
|
|
5
5
|
"en",
|
|
6
6
|
"it",
|
|
@@ -8812,6 +8812,50 @@
|
|
|
8812
8812
|
}
|
|
8813
8813
|
}
|
|
8814
8814
|
},
|
|
8815
|
+
"master_kinds": {
|
|
8816
|
+
"complete": {
|
|
8817
|
+
"label": {
|
|
8818
|
+
"en": "Complete (textured)",
|
|
8819
|
+
"validated_it": false,
|
|
8820
|
+
"validated_el": false,
|
|
8821
|
+
"validated_he": false,
|
|
8822
|
+
"validated_es": false,
|
|
8823
|
+
"validated_pl": false,
|
|
8824
|
+
"validated_ro": false,
|
|
8825
|
+
"validated_fr": false,
|
|
8826
|
+
"validated_de": false,
|
|
8827
|
+
"it": "Completo (con texture)",
|
|
8828
|
+
"el": "Πλήρες (με υφή)",
|
|
8829
|
+
"he": "מלא (עם טקסטורה)",
|
|
8830
|
+
"es": "Completo (con textura)",
|
|
8831
|
+
"pl": "Pełny (z teksturą)",
|
|
8832
|
+
"ro": "Complet (cu textură)",
|
|
8833
|
+
"fr": "Complet (texturé)",
|
|
8834
|
+
"de": "Vollständig (texturiert)"
|
|
8835
|
+
}
|
|
8836
|
+
},
|
|
8837
|
+
"very_high_resolution": {
|
|
8838
|
+
"label": {
|
|
8839
|
+
"en": "Very high resolution",
|
|
8840
|
+
"validated_it": false,
|
|
8841
|
+
"validated_el": false,
|
|
8842
|
+
"validated_he": false,
|
|
8843
|
+
"validated_es": false,
|
|
8844
|
+
"validated_pl": false,
|
|
8845
|
+
"validated_ro": false,
|
|
8846
|
+
"validated_fr": false,
|
|
8847
|
+
"validated_de": false,
|
|
8848
|
+
"it": "Altissima risoluzione",
|
|
8849
|
+
"el": "Πολύ υψηλή ανάλυση",
|
|
8850
|
+
"he": "רזולוציה גבוהה מאוד",
|
|
8851
|
+
"es": "Muy alta resolución",
|
|
8852
|
+
"pl": "Bardzo wysoka rozdzielczość",
|
|
8853
|
+
"ro": "Rezoluție foarte înaltă",
|
|
8854
|
+
"fr": "Très haute résolution",
|
|
8855
|
+
"de": "Sehr hohe Auflösung"
|
|
8856
|
+
}
|
|
8857
|
+
}
|
|
8858
|
+
},
|
|
8815
8859
|
"reasoning": {
|
|
8816
8860
|
"declare_inheritance": {
|
|
8817
8861
|
"description": {
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
dcterms:creator "Emanuel Demetrescu" ;
|
|
48
48
|
dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
|
|
49
49
|
dcterms:issued "2026-05-23"^^xsd:date ;
|
|
50
|
-
owl:versionInfo "1.6.
|
|
51
|
-
rdfs:comment "Formal ontology for Extended Matrix (EM): a human-readable layout for knowledge graphs of archaeological stratigraphy and virtual reconstruction. Extends CIDOC-CRM, CRMarchaeo, CRMinf, CRMdig, CRMgeo, with PROV-O for agent provenance and HDT-O for digital-twin granularity. This file declares the em: classes and properties introduced in s3dgraphy v1.6.0. v1.6.25 (2026-11-06, MICRO-LANDSCAPE-ONTOLOGIA, D-LG4..6 of the Landscape Graph): no new class — two concepts of the EM vocabulary, crm:E55_Type instances reached by crm:P2_has_type, for the kind of a district: em:DistrictUrban, em:DistrictRural (node datamodel 1.6.41, DistrictNode.properties.district_kind). The units of the Landscape Graph are outside CRMem: the topographic unit is a crm:E26_Physical_Feature, its negative a crmsci:S4_Observation, the district a crmgeo:SP6_Declarative_Place; em:VirtualSite stays the only class the Landscape Graph asks. v1.6.24 (2026-11-06, MICRO-GIS-BASE): em:LandscapeSurface, the ground surface of a landscape built from a DEM and an image draped on it (node datamodel 1.6.40, LandscapeSurfaceNode), a subclass of crmdig:D1_Digital_Object, proposed. v1.6.23 (2026-10-30, MICRO lab sito Sarmizegetusa, decision D-LG5 of the Landscape Graph): em:VirtualSite, the site supposed from topographic units, traces and sources, without stratigraphy — a named intersection of crm:E89_Propositional_Object and crm:E27_Site on the model of em:VirtualSpecialFind (E89 + E19); the only CRMem term the Landscape Graph asks. Carried by a LocationNodeGroup of level sito with data.virtual (node datamodel 1.6.39). v1.6.22 (2026-10-25, MICRO sub-epoch RDF, decided by E.D.): em:hasSubEpoch becomes rdfs:subPropertyOf crm:P10i_contains — the parent contains its sub-epoch — now that the CRM projection of has_sub_epoch is written the right way round, <sub-epoch> crm:P10_falls_within <parent> (connections 1.6.49, rdf_subject target). v1.6.21 (2026-10-23, MICRO special find e fine dell'unità, part 3, decided by E.D.): the end of a unit is typed. em:ContinuityNode becomes a subclass of crm:E5_Event (was crm:E64_End_of_Existence): its class follows its type — E6 Destruction, E81 Transformation, E80 Part Removal, E9 Move, E64 End of Existence — and E80 and E9 are not ends of existence. Five concepts of the EM vocabulary, crm:E55_Type instances reached by crm:P2_has_type: em:EndOfUnitDestroyed, em:EndOfUnitTransformed, em:EndOfUnitRemoved, em:EndOfUnitRelocated, em:EndOfUnitUnknown (section 5). v1.6.20 (2026-10-23, MICRO special find e fine dell'unità, part 2, decided by E.D.): em:SeriesOfVirtualSpecialFind, the series of Virtual Special Finds (serVSF): the repetition of one equal object, a subclass of em:VirtualSpecialFind like the other series of their unit (section 4). v1.6.19 (2026-10-23, MICRO special find e fine dell'unità, part 1, decided by E.D.): no new term — the labels and comments of em:DisplacedSpecialFind (now «Special Find», defined in positive: movable, documented where it was found), em:ReusedSpecialFind (now «Repositioned Special Find»: fixed, intentionally put back, reuse one case of it) and em:VirtualSpecialFind (two roles: holds the fragments, completes what was restored); the URIs are unchanged. v1.6.18 (2026-10-20, decided by E.D.): no new term — the comment of em:EMGraph, and in hdto_extension.ttl those of hdto:HC9_Study and hdto:HP25_has_created, state how «a graph is a study» (StratiGraph D3.1 §3.3, D3.2 §3.5) is read: one graph corresponds one to one to the study that created it, the two classes stay distinct because E2 and E77 are disjoint, and the graph is not the digital twin (HC2). v1.6.17 (2026-10-17, MICRO le alternative e la trasformazione, decided by E.D.): section 20 — the transformation of a 3D object (a representation model or a semantic shape) in the frame of the study: em:position, em:rotationDegrees, em:scale and em:pivot as rdf:JSON arrays of three numbers, em:rotationOrder and em:upAxis as strings (node datamodel 1.6.31, properties.transform). v1.6.16 (2026-10-10, MICRO le entità spaziotemporali, decided by E.D.): no new term — em:firstAttestedInEpoch and em:survivesInEpoch widen their domain from crmarchaeo:A8_Stratigraphic_Unit to crm:E77_Persistent_Item, because a document (E31) and a person (E21) are placed in the lanes of the matrix like a unit (connections 1.6.38); A8 is an E77, so every triple already emitted stays type-correct. v1.6.15 (2026-10-04, D1, decided by E.D.): section 19 — the level of a version of an asset (em:lodLevel, computed from its chain, written on export), its uses (em:use) and seven measures (em:trisPerM2, em:texelDensityDD, em:textureCount, em:textureSidePx, em:uvRatio, em:reductionFromLod0, em:geometricErrorM). v1.6.14 (2026-10-02, dev30, decided by E.D. on the dev29 report): section 18 — em:retrievedFrom, where a retrieval came from (D1), and em:membersDigest, the digest of a file_set with a predicate of its own (D4; em:digestCovers stays for compatibility). v1.6.13 (2026-10-02, dev29, measured on San Pietro): seven DatatypeProperties, section 17 — how the bytes of a resource are packed and what its digest covers (em:packaging, em:tier, em:digestCovers, em:contentDigest) and what a DTC step declares (em:technique, em:parameters, em:software, the last two rdf:JSON): the round trip em.json → TTL → em.json lost all seven. v1.6.12 (2026-11-01, dev28, decided by E.D. 2026-10-01): no new term — em:authMode admits a third value, 'declared' (an iD typed in a tool's preferences and checked by nobody), with no em:attestedBy. v1.6.11 (2026-10-31, dev27, decided by E.D. 2026-10-01): ten properties. Section 15, several addresses of ONE resource (em:hasAddress to <resource>/address/<i>, em:locator, em:checkedAt, em:reachable) and a dated digest (em:checksumAt); section 16, how the hand of a signature had entered (em:createdVia, em:modifiedVia, em:validatedVia to <node>/auth/<stamp>, em:authMode orcid | node_password, em:attestedBy the StratiGraph node). The language of the content of a resource leaves as dcterms:language: no em: term. v1.6.10 (2026-10-29, MICRO le traduzioni, decided by E.D. 2026-10-01): six DatatypeProperties for the language of the original and its translations (section 14) — em:originalLanguage on any node, which says which literal is the original once translations share its predicate, and em:sourceLanguage, em:translatedField, em:translationMethod, em:sourceDigest, em:reviewRequested on a TranslationNode, which is a plain crm:E33_Linguistic_Object reached by crm:P73_has_translation: CIDOC has the class and the relation, so no em: class is added. v1.6.9 (2026-10-18, MICRO la risorsa e i suoi file): em:ResourceFile, ONE FILE of a resource (node datamodel 1.6.17), a subclass of crmdig:D1_Digital_Object; the resource is composed of its files by crm:P106_is_composed_of (connections has_file, 1.6.30). A distinct URI because a DTC output resource is already typed crmdig:D1, and a file typed only D1 would read back as a resource. v1.6.2 (2026-09-21, CIDOC repair pass): the eight terms the datamodels cited and this file never defined are declared in section 12; em:NodeGroup and em:ParadataNodeGroup leave the undeclared crm:E78_Collection for crm:E73_Information_Object and crm:E89_Propositional_Object; em:SemanticShape leaves crmgeo:SP5 for crm:E73_Information_Object, provisionally; crmarchaeo:AP11_has_physical_relation becomes AP11_has_physical_relation_to, the name CRMarchaeo has used since 2.0; and em:RepresentationModel says what a representation model IS. v1.6.5 (2026-10-20, MICRO la definizione dell\'unita\'): em:hasDefinition, the DEFINIZIONE of a stratigraphic unit as a subproperty of crm:P2_has_type — declared for the node datamodel 1.6.9 entry StratigraphicNode.properties.definition, not emitted by default (owl:versionInfo was left at 1.6.2 by the 1.6.3/1.6.4 passes and is realigned here). v1.6.8 (2026-10-11, MICRO la geometria per origine): the vertices of a 3D reading (point, line, polyline) are data of the region (node datamodel 1.6.15, AnnotationRegionNode.coords) and leave for RDF as ONE GeoSPARQL 1.1 literal: <region> geo:hasGeometry <region>/geometry, a geo:Geometry with geo:asWKT '<CRS IRI> POINT Z (x y z)' | 'MULTIPOINT Z (...)' | 'LINESTRING Z (...)'^^geo:wktLiteral. WHY GeoSPARQL and not em: terms: the WKT literal is the standard every triplestore with a spatial index reads, and it is the 3D twin of the Media Fragment a 2D region already emits (a string a consumer outside EM can act on); CRMgeo was built to meet GeoSPARQL at exactly this point (SP5 Geometric Place Expression ~ geo:Geometry), and an em:coords literal would say the same thing to nobody. The CRS travels INSIDE the literal, so it cannot be separated from the numbers: em:LocalSceneFrame (declared here) for the scene-local frame, the OGC EPSG IRI for a projected one. em:vertexCount stays (the count of a .glb resource above the threshold). The .glb of a reading is no longer a SemanticShape's rdfs:seeAlso: above coords.inline_max_vertices (500) it is a ResourceNode the region reaches with has_linked_resource (crm:P67_refers_to), and a proxy's .glb is likewise a proxy_model ResourceNode (connections 1.6.28-1.6.29). v1.6.7 (2026-09-30, MICRO la cattura in RDF): no em: term added — the acquisition of a digital object is typed by its KIND. A capture is not a transfer: crmdig:D2_Digitization_Process for a photograph or a laser scan, crmdig:D11_Digital_Measurement_Event for a topographic or GNSS survey, crm:E65_Creation for a field drawing or a recording sheet (made by hand; the file is their copy, so no D7 machine event is asserted); a retrieval (download, local import, URI, ingest) stays crmdig:D12_Data_Transfer_Event. The rule is data (em_visual_rules 1.6.24, dtc_kinds.acquisition.<kind>.mapping). v1.6.6 (2026-10-07, MICRO la misura in RDF): the place of a reading gets its quote and its measure. The quote of a passage reuses W3C Web Annotation (oa:hasSelector -> oa:TextQuoteSelector, oa:exact) — the only standard term for a quote, which has no fragment-string form; its offsets stay the RFC 5147 em:hasSelector 'char=s,e'. The length of a line or polyline reuses CIDOC (crm:P43_has_dimension -> crm:E54_Dimension, P90_has_value xsd:double, P91_has_unit -> a QUDT unit IRI); two em: terms are new, em:vertexCount and em:crs, for what neither vocabulary says. The .glb of a 3D reading is not described here: its URL is the rdfs:seeAlso of the SemanticShape the region reaches with em:hasSemanticShape, and no coordinate enters RDF."@en ;
|
|
50
|
+
owl:versionInfo "1.6.26" ;
|
|
51
|
+
rdfs:comment "Formal ontology for Extended Matrix (EM): a human-readable layout for knowledge graphs of archaeological stratigraphy and virtual reconstruction. Extends CIDOC-CRM, CRMarchaeo, CRMinf, CRMdig, CRMgeo, with PROV-O for agent provenance and HDT-O for digital-twin granularity. This file declares the em: classes and properties introduced in s3dgraphy v1.6.0. v1.6.26 (2026-11-06, MICRO-TIMBRA-MASTER, decided by E.D. 2026-10-30): em:masterKind, which master a resource of tier master is — very_high_resolution or complete (section 17, beside em:tier; node datamodel 1.6.42, ResourceNode.properties.master_kind). v1.6.25 (2026-11-06, MICRO-LANDSCAPE-ONTOLOGIA, D-LG4..6 of the Landscape Graph): no new class — two concepts of the EM vocabulary, crm:E55_Type instances reached by crm:P2_has_type, for the kind of a district: em:DistrictUrban, em:DistrictRural (node datamodel 1.6.41, DistrictNode.properties.district_kind). The units of the Landscape Graph are outside CRMem: the topographic unit is a crm:E26_Physical_Feature, its negative a crmsci:S4_Observation, the district a crmgeo:SP6_Declarative_Place; em:VirtualSite stays the only class the Landscape Graph asks. v1.6.24 (2026-11-06, MICRO-GIS-BASE): em:LandscapeSurface, the ground surface of a landscape built from a DEM and an image draped on it (node datamodel 1.6.40, LandscapeSurfaceNode), a subclass of crmdig:D1_Digital_Object, proposed. v1.6.23 (2026-10-30, MICRO lab sito Sarmizegetusa, decision D-LG5 of the Landscape Graph): em:VirtualSite, the site supposed from topographic units, traces and sources, without stratigraphy — a named intersection of crm:E89_Propositional_Object and crm:E27_Site on the model of em:VirtualSpecialFind (E89 + E19); the only CRMem term the Landscape Graph asks. Carried by a LocationNodeGroup of level sito with data.virtual (node datamodel 1.6.39). v1.6.22 (2026-10-25, MICRO sub-epoch RDF, decided by E.D.): em:hasSubEpoch becomes rdfs:subPropertyOf crm:P10i_contains — the parent contains its sub-epoch — now that the CRM projection of has_sub_epoch is written the right way round, <sub-epoch> crm:P10_falls_within <parent> (connections 1.6.49, rdf_subject target). v1.6.21 (2026-10-23, MICRO special find e fine dell'unità, part 3, decided by E.D.): the end of a unit is typed. em:ContinuityNode becomes a subclass of crm:E5_Event (was crm:E64_End_of_Existence): its class follows its type — E6 Destruction, E81 Transformation, E80 Part Removal, E9 Move, E64 End of Existence — and E80 and E9 are not ends of existence. Five concepts of the EM vocabulary, crm:E55_Type instances reached by crm:P2_has_type: em:EndOfUnitDestroyed, em:EndOfUnitTransformed, em:EndOfUnitRemoved, em:EndOfUnitRelocated, em:EndOfUnitUnknown (section 5). v1.6.20 (2026-10-23, MICRO special find e fine dell'unità, part 2, decided by E.D.): em:SeriesOfVirtualSpecialFind, the series of Virtual Special Finds (serVSF): the repetition of one equal object, a subclass of em:VirtualSpecialFind like the other series of their unit (section 4). v1.6.19 (2026-10-23, MICRO special find e fine dell'unità, part 1, decided by E.D.): no new term — the labels and comments of em:DisplacedSpecialFind (now «Special Find», defined in positive: movable, documented where it was found), em:ReusedSpecialFind (now «Repositioned Special Find»: fixed, intentionally put back, reuse one case of it) and em:VirtualSpecialFind (two roles: holds the fragments, completes what was restored); the URIs are unchanged. v1.6.18 (2026-10-20, decided by E.D.): no new term — the comment of em:EMGraph, and in hdto_extension.ttl those of hdto:HC9_Study and hdto:HP25_has_created, state how «a graph is a study» (StratiGraph D3.1 §3.3, D3.2 §3.5) is read: one graph corresponds one to one to the study that created it, the two classes stay distinct because E2 and E77 are disjoint, and the graph is not the digital twin (HC2). v1.6.17 (2026-10-17, MICRO le alternative e la trasformazione, decided by E.D.): section 20 — the transformation of a 3D object (a representation model or a semantic shape) in the frame of the study: em:position, em:rotationDegrees, em:scale and em:pivot as rdf:JSON arrays of three numbers, em:rotationOrder and em:upAxis as strings (node datamodel 1.6.31, properties.transform). v1.6.16 (2026-10-10, MICRO le entità spaziotemporali, decided by E.D.): no new term — em:firstAttestedInEpoch and em:survivesInEpoch widen their domain from crmarchaeo:A8_Stratigraphic_Unit to crm:E77_Persistent_Item, because a document (E31) and a person (E21) are placed in the lanes of the matrix like a unit (connections 1.6.38); A8 is an E77, so every triple already emitted stays type-correct. v1.6.15 (2026-10-04, D1, decided by E.D.): section 19 — the level of a version of an asset (em:lodLevel, computed from its chain, written on export), its uses (em:use) and seven measures (em:trisPerM2, em:texelDensityDD, em:textureCount, em:textureSidePx, em:uvRatio, em:reductionFromLod0, em:geometricErrorM). v1.6.14 (2026-10-02, dev30, decided by E.D. on the dev29 report): section 18 — em:retrievedFrom, where a retrieval came from (D1), and em:membersDigest, the digest of a file_set with a predicate of its own (D4; em:digestCovers stays for compatibility). v1.6.13 (2026-10-02, dev29, measured on San Pietro): seven DatatypeProperties, section 17 — how the bytes of a resource are packed and what its digest covers (em:packaging, em:tier, em:digestCovers, em:contentDigest) and what a DTC step declares (em:technique, em:parameters, em:software, the last two rdf:JSON): the round trip em.json → TTL → em.json lost all seven. v1.6.12 (2026-11-01, dev28, decided by E.D. 2026-10-01): no new term — em:authMode admits a third value, 'declared' (an iD typed in a tool's preferences and checked by nobody), with no em:attestedBy. v1.6.11 (2026-10-31, dev27, decided by E.D. 2026-10-01): ten properties. Section 15, several addresses of ONE resource (em:hasAddress to <resource>/address/<i>, em:locator, em:checkedAt, em:reachable) and a dated digest (em:checksumAt); section 16, how the hand of a signature had entered (em:createdVia, em:modifiedVia, em:validatedVia to <node>/auth/<stamp>, em:authMode orcid | node_password, em:attestedBy the StratiGraph node). The language of the content of a resource leaves as dcterms:language: no em: term. v1.6.10 (2026-10-29, MICRO le traduzioni, decided by E.D. 2026-10-01): six DatatypeProperties for the language of the original and its translations (section 14) — em:originalLanguage on any node, which says which literal is the original once translations share its predicate, and em:sourceLanguage, em:translatedField, em:translationMethod, em:sourceDigest, em:reviewRequested on a TranslationNode, which is a plain crm:E33_Linguistic_Object reached by crm:P73_has_translation: CIDOC has the class and the relation, so no em: class is added. v1.6.9 (2026-10-18, MICRO la risorsa e i suoi file): em:ResourceFile, ONE FILE of a resource (node datamodel 1.6.17), a subclass of crmdig:D1_Digital_Object; the resource is composed of its files by crm:P106_is_composed_of (connections has_file, 1.6.30). A distinct URI because a DTC output resource is already typed crmdig:D1, and a file typed only D1 would read back as a resource. v1.6.2 (2026-09-21, CIDOC repair pass): the eight terms the datamodels cited and this file never defined are declared in section 12; em:NodeGroup and em:ParadataNodeGroup leave the undeclared crm:E78_Collection for crm:E73_Information_Object and crm:E89_Propositional_Object; em:SemanticShape leaves crmgeo:SP5 for crm:E73_Information_Object, provisionally; crmarchaeo:AP11_has_physical_relation becomes AP11_has_physical_relation_to, the name CRMarchaeo has used since 2.0; and em:RepresentationModel says what a representation model IS. v1.6.5 (2026-10-20, MICRO la definizione dell\'unita\'): em:hasDefinition, the DEFINIZIONE of a stratigraphic unit as a subproperty of crm:P2_has_type — declared for the node datamodel 1.6.9 entry StratigraphicNode.properties.definition, not emitted by default (owl:versionInfo was left at 1.6.2 by the 1.6.3/1.6.4 passes and is realigned here). v1.6.8 (2026-10-11, MICRO la geometria per origine): the vertices of a 3D reading (point, line, polyline) are data of the region (node datamodel 1.6.15, AnnotationRegionNode.coords) and leave for RDF as ONE GeoSPARQL 1.1 literal: <region> geo:hasGeometry <region>/geometry, a geo:Geometry with geo:asWKT '<CRS IRI> POINT Z (x y z)' | 'MULTIPOINT Z (...)' | 'LINESTRING Z (...)'^^geo:wktLiteral. WHY GeoSPARQL and not em: terms: the WKT literal is the standard every triplestore with a spatial index reads, and it is the 3D twin of the Media Fragment a 2D region already emits (a string a consumer outside EM can act on); CRMgeo was built to meet GeoSPARQL at exactly this point (SP5 Geometric Place Expression ~ geo:Geometry), and an em:coords literal would say the same thing to nobody. The CRS travels INSIDE the literal, so it cannot be separated from the numbers: em:LocalSceneFrame (declared here) for the scene-local frame, the OGC EPSG IRI for a projected one. em:vertexCount stays (the count of a .glb resource above the threshold). The .glb of a reading is no longer a SemanticShape's rdfs:seeAlso: above coords.inline_max_vertices (500) it is a ResourceNode the region reaches with has_linked_resource (crm:P67_refers_to), and a proxy's .glb is likewise a proxy_model ResourceNode (connections 1.6.28-1.6.29). v1.6.7 (2026-09-30, MICRO la cattura in RDF): no em: term added — the acquisition of a digital object is typed by its KIND. A capture is not a transfer: crmdig:D2_Digitization_Process for a photograph or a laser scan, crmdig:D11_Digital_Measurement_Event for a topographic or GNSS survey, crm:E65_Creation for a field drawing or a recording sheet (made by hand; the file is their copy, so no D7 machine event is asserted); a retrieval (download, local import, URI, ingest) stays crmdig:D12_Data_Transfer_Event. The rule is data (em_visual_rules 1.6.24, dtc_kinds.acquisition.<kind>.mapping). v1.6.6 (2026-10-07, MICRO la misura in RDF): the place of a reading gets its quote and its measure. The quote of a passage reuses W3C Web Annotation (oa:hasSelector -> oa:TextQuoteSelector, oa:exact) — the only standard term for a quote, which has no fragment-string form; its offsets stay the RFC 5147 em:hasSelector 'char=s,e'. The length of a line or polyline reuses CIDOC (crm:P43_has_dimension -> crm:E54_Dimension, P90_has_value xsd:double, P91_has_unit -> a QUDT unit IRI); two em: terms are new, em:vertexCount and em:crs, for what neither vocabulary says. The .glb of a 3D reading is not described here: its URL is the rdfs:seeAlso of the SemanticShape the region reaches with em:hasSemanticShape, and no coordinate enters RDF."@en ;
|
|
52
52
|
owl:imports <http://www.cidoc-crm.org/cidoc-crm/> ,
|
|
53
53
|
<http://www.cidoc-crm.org/extensions/crminf/> ,
|
|
54
54
|
<http://www.cidoc-crm.org/extensions/crmarchaeo/> ,
|
|
@@ -1005,6 +1005,12 @@ em:tier
|
|
|
1005
1005
|
rdfs:range xsd:string ;
|
|
1006
1006
|
rdfs:comment "Which tier a resource is — 'master' (the source a person keeps) or 'distribution' (what is handed out). Declared, emitted only when recorded. Maps to: node_datamodel ResourceNode.properties.tier."@en .
|
|
1007
1007
|
|
|
1008
|
+
em:masterKind
|
|
1009
|
+
a owl:DatatypeProperty ;
|
|
1010
|
+
rdfs:label "master kind"@en ;
|
|
1011
|
+
rdfs:range xsd:string ;
|
|
1012
|
+
rdfs:comment "Which master a resource of em:tier 'master' is — 'very_high_resolution' (the densest geometry of the survey, often untextured) or 'complete' (the textured master, made by a texturing step with two inputs: the reduced mesh and the aligned photographs). Declared, emitted only when recorded; never on a distribution. v1.6.26 (2026-11-06, MICRO-TIMBRA-MASTER, decided by E.D. 2026-10-30). Maps to: node_datamodel ResourceNode.properties.master_kind."@en .
|
|
1013
|
+
|
|
1008
1014
|
em:digestCovers
|
|
1009
1015
|
a owl:DatatypeProperty ;
|
|
1010
1016
|
rdfs:label "digest covers"@en ;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"s3Dgraphy_data_model_version": "1.6.
|
|
3
|
-
"description": "v1.6.41 (6 Nov 2026, MICRO-LANDSCAPE-ONTOLOGIA, on D-LG1..9 of landscape-graph-semantica, 24 Oct 2026): THE UNITS OF THE LANDSCAPE GRAPH. A new section landscape_nodes with three classes under one Python parent, LandscapeUnitNode (the name the edges use, abstract: in the generated registry only): TopographicUnitNode (UT, node_type UT, observed: E26 Physical Feature), NegativeTopographicUnitNode (UT0 displayed −UT, observed absence: crmsci:S4 Observation) and DistrictNode (district, declared: crmgeo:SP6 Declarative Place, typed urban | rural by properties.district_kind → em:DistrictUrban / em:DistrictRural, two E55 concepts of the EM vocabulary, CRMem 1.6.25). LandscapeUnitNode joins spatiotemporal_entities: start/end, lanes, sequence and chronology like a unit, no physical relation. The site and the virtual site are unchanged (LocationNodeGroup level sito, virtual: 1.6.39). v1.6.40 (6 Nov 2026, MICRO-GIS-BASE): THE FOUR BASE GIS FORMATS ARE READ, AND THE GROUND OF THE LANDSCAPE HAS A NODE. (1) ResourceNode of url_type gis_layer: shapefile, GeoPackage (data.layer), GeoJSON and GeoTIFF (COG too) are read by s3dgraphy.gis without GDAL; the CRS comes from the file (prj/qpj, gpkg_spatial_ref_sys, the GeoJSON 2008 crs member or RFC 7946 WGS 84, the GeoTIFF GeoKeys), bbox in that CRS and bbox_wgs84 (pyproj). New field data.raster (a GeoTIFF: width, height, bands, kind dem|image, pixel_size, nodata, cog, tiled, overviews, compression, vertical_crs). (2) visualization_nodes.LandscapeSurfaceNode (node_type landscape_surface): the ground surface of a landscape — a DEM layer drawn as a mesh and an image layer draped on it — hatting its layers with has_linked_resource and saying its site with is_in_location (connections 1.6.52). Not an RM: an RM represents a stratigraphic node; not the LocationNodeGroup: the place is the identity, this is one of its geometries (the manual, location.rst). (3) Contour lines of a DEM are a DERIVED gis_layer (GeoJSON in the DEM's CRS) made by one DTC process of kind vectorization (s3dgraphy.gis.add_contours). v1.6.39 (30 Oct 2026, MICRO lab sito Sarmizegetusa, on D-LG4/D-LG5 and the proposal «Il GIS dentro l'em.json»): THE SITE AND ITS FOOTPRINT, THE GIS LAYER AS A RESOURCE. (1) LocationNodeGroup.fields gains `level` (declared at last: hdto.make_site_place has written level \"sito\" since 20 Oct; \"sito\" is THE SITE of D-LG4, the last ring of the toponym chain a study took place at) and `virtual` (a site supposed without stratigraphy, D-LG5: rdf:type em:VirtualSite, E89 + E27; the only CRMem term the Landscape Graph asks). (2) ResourceNode: url_type `gis_layer` (resource_types) and the fields of a layer — gis_format, crs, bbox, bbox_wgs84, layer, feature_key, z_field, geometry_type, feature_count, z_range; a shapefile is packaging file_set with its companions reached by has_file; its frame is data.frame (1.6.38). Not projected to RDF yet (a reading aid, like the frame). The footprint is a PropertyNode of qualia `footprint` (qualia 1.6.10) on the site (connections 1.6.50: has_property and has_linked_resource admit LocationNodeGroup). s3dgraphy.gis. ADDITIVE. v1.6.38 (25 Oct 2026, MICRO tileset, shift e epoche, decided by E.D.): THE FRAME OF A FILE — ResourceNode.properties.frame (data.frame: {crs, shift [x, y, z], note, source}), also on RepresentationModelNode and RepresentationModelNodeGroup: «the coordinates of this file are CRS X minus shift S». Surveys exported with shifted coordinates declared in the project's CRS (the Basilica Iulia's RealityScan tileset falls on the equator) are relocated by the viewers when they read it (s3dgraphy.geometry.frame: frame_of, relocate_transform); the file is never rewritten. Looked for on the resource, its asset, then its hat (RM or container). Not in RDF. Additive. v1.6.37 (24 Oct 2026, MICRO-LAB orizzonti, decided by E.D.): NEW section periodization_nodes — PeriodizationNode (PER, E32 Authority Document) lists its HorizonNode (HOR, crmgeo:SP10 Declarative Time-Span: label, start_time, end_time, color, order, enabled) through is_in_periodization (connections 1.6.47). They are nodes of the MULTIGRAPH, at the level of the container (member graphs.periodizations, em_collection «Periodizations»), never inside a study graph; «inside» an horizon means overlapping it; several periodizations per project; the colours travel with the data. An em.json without horizons is unchanged. v1.6.36 (23 Oct 2026, MICRO special find e fine dell'unità, part 3, decided by E.D.): the END of a unit is typed. ContinuityNode (BR) gets the node element properties.end_reason (data.end_reason): destroyed, transformed, removed, relocated, unknown (the default) — the tokens EMStudio already writes for the first three, now declared. The type decides the CIDOC class (E6, E81, E80, E9, E64) and the property the BR reaches its unit by (P13, P124 + P123, P113 + P112, P25 + P27, P93), always with P2_has_type to the EM concept em:EndOfUnit…; IRIs checked on the CIDOC 7.1.3 RDFS. em:ContinuityNode becomes a subclass of crm:E5_Event (was E64): E80 and E9 are not ends of existence. In the graph the BR → unit edge stays is_after; the RDF projection is declared in connections 1.6.45. The BR is a spatiotemporal unit like the others: paradata, its own start and end, the epoch inherited from the last the unit lives in until it has a date of its own (s3dgraphy.spatiotemporal.end_of_unit). v1.6.35 (23 Oct 2026, MICRO special find e fine dell'unità, part 2, decided by E.D.): new subtype serVSF (SeriesOfVirtualSpecialFindUnit, em:SeriesOfVirtualSpecialFind, subclass of em:VirtualSpecialFind + E89 + E19), the series of Virtual Special Finds on the pattern of serSU / serUSD / serUSVn / serUSVs: the repetition of one equal object (the tile repaired with a VSF and instanced over the whole roof), never pieces that are all different (the drums of a tapering column). v1.6.34 (23 Oct 2026, MICRO special find e fine dell'unità, part 1, decided by E.D.): descriptions only — SF, RSF, VSF redefined. SF: movable, found erratic or in a layer and taken out during the excavation, defined in positive (documented where it was found); how it lay — in situ, redeposited, fallen in position — is an attribute, not a class; a collapse found in position is an SF. RSF: label «Repositioned Special Find» (was «Reused»), fixed and immovable, intentionally put back into a stable unit or a new functional placement, a historical physical anastylosis included; reuse is one case; class name and URI unchanged. Invariant: movable (SF) / immovable (RSF). VSF: two roles, the VSF that holds the fragments and the VSF that completes what was restored; restoring the block and remodelling the ancient version are both correct, the difference SF/VSF by a boolean. An SF is drawn in an earlier epoch only when the piece is estimated equal to the ancient one. No field, node element or mapping changes. v1.6.33 (23 Oct 2026, decided by E.D.): description only — RepresentationModelNodeGroup: a model may belong to several RM containers (is_in_representation_model_group m:n, connections 1.6.43); the epochs stay on each model. v1.6.32 (2026-10-20, decided by E.D.): descriptions only — GraphNode and StudyNode say how «a graph is a study» (StratiGraph D3.1 §3.3, D3.2 §3.5) is read: one graph corresponds one to one to the study that created it (HP25), the two classes stay distinct, and the graph is not the digital twin (HC2). No field, node element or mapping changes. CRMem 1.6.18. v1.6.31 (MICRO le alternative e la trasformazione, decided by E.D. 2026-10-16/17): the TRANSFORMATION of a 3D object is declared — RepresentationModelNode, RepresentationModelDocNode, RepresentationModelSpecialFindNode and SemanticShapeNode get properties.transform: position (metres, the frame of the study), rotation in DEGREES with rotation_order (XYZ by default, Blender's), scale, up_axis (Z by default), the optional pivot (absent: the centre of the object's box) and the computed quaternion, all numbers; angle_unit 'deg' marks the new form, and the old one (strings, radians) is read and converted with a warning. Applied on top of the file's coordinates; a tileset's own pose stays in its tileset.json. RDF: em:position, em:rotationDegrees, em:rotationOrder, em:scale, em:upAxis, em:pivot (em.ttl 1.6.17, section 20). v1.6.30 (giro dell'11 ottobre (2), decided by E.D. 2026-10-11, «il codice di studio è stabile»): StudyNode.code is STABLE — once a study has one it never changes by itself (import, export, migration, projection): it is what Blender re-attaches the proxies by (GT16.1.USM100). Read: the study's code, else the GraphML header ID (graph_code), else the retired em_id (read only). A GraphML's header ID is written on the study at import. When there is none, s3dgraphy.hdto.propose_study_code writes ONE proposal (site initials + the year of the study's date, -2/-3 against the other codes of the container) and marks it with the new field `code_proposed` until the user confirms it. v1.6.29 (giro dell'11 ottobre, decided by E.D. 2026-10-11): the code of a graph is the code of its STUDY — StudyNode.code replaces the graph-self node's retired «EM-ID» (GraphNode.data.em_id, never a field of this datamodel): a file that has one keeps it and s3dgraphy.hdto.migrate_em_id carries it to the study's code only when the study exists and has none. A saggio is a study AND a place: its LocationNodeGroup (kind study) is in the site (is_in_location), the study took place at it. Descriptions only, no field added. v1.6.28 (MICRO lo studio usabile, decided by E.D. 2026-10-10: the stratigraphic trench is a STUDY, the site is TOPOGRAPHY, HC1 is heritage only where recognised): StudyNode gains `study_kind` (stratigraphic_excavation | survey | documentation | other) — a stratigraphic_excavation is ALSO a crmarchaeo:A9_Archaeological_Excavation, declared per value in the field (`subclass_of_by_value`, the same subclass_of form the classes use) and emitted by the RDF exporter as a second rdf:type — and `code` (the short name of the study, e.g. GT16: what the source gives, or what the user writes; never derived; the label prefix reads it). HC9 Study is aligned to crm:E65_Creation (was crm:E7_Activity; E65 ⊑ E7), HC1 Heritage Entity to crm:E70_Thing (was crm:E1_CRM_Entity), as the official HDT-O RDFS says (HDT_v2.0.1.rdf, ECHOES D7.1). The study reaches its place with study_took_place_at (crm:P7_took_place_at, connections 1.6.39). v1.6.27 (MICRO le entità spaziotemporali, decided by E.D. 2026-10-10): DocumentNode and AuthorNode (with AuthorAINode) are SPATIOTEMPORAL ENTITIES like the stratigraphic units — the top-level block `spatiotemporal_entities` names the three classes and what they share: a start and an end (absolute_time_start / absolute_time_end, read with the label of their owner: a person is born and dies, a model is released and retired), the lane of the matrix where they begin (has_first_epoch) and the ones they last through (survive_in_epoch), their place in the sequence (is_after, has_same_time), an activity. The edges are widened in connections 1.6.38; the chronology dates the three with the same rules (Graph.CHRONOLOGY_TYPES). AuthorNode and DocumentNode gain a `spatiotemporal` element saying how their time reads; no field of theirs changes. v1.6.26 (H4, decided by E.D. 5 Oct 2026, «Heriverse legge l'em.json e sceglie la versione»): ResourceNode.use admits two more uses, heriverse and aton — a version made FOR a viewer, the package on disk that Heriverse or another ATON app opens offline (EM Tools makes it with «Prepare for a use…», as is: no optimisation of its own); a viewer asks heriverse, aton, web, realtime in that order (s3dgraphy.resources.versions.choose_version). v1.6.25 (D1, MICRO un solo vocabolario, decided by E.D. 4 Oct 2026): GeoPositionNode.rotation_reference = 'grid' (D2: the rotation is measured from the GRID north of the CRS). ResourceNode.lod_level (em:lodLevel, computed from the chain, written only on export and checked at load), ResourceNode.use (em:use, a list of analysis | realtime | web | mobile_ar | print | render | preview) and seven measures of a version (em:trisPerM2, em:texelDensityDD, em:textureCount, em:textureSidePx, em:uvRatio, em:reductionFromLod0, em:geometricErrorM). v1.6.24 (dev30, decided by E.D. 2026-10-02 on the dev29 report): DTCAcquisitionNode.retrieved_from — where a retrieved object came from, a DOI or a URL (em:retrievedFrom, D1; optional, validate warns «download without origin»). ResourceNode.members_digest names em:membersDigest, the digest of a file_set with a predicate of its own beside em:checksum + em:digestCovers (D4; not a second field). ResourceNode.packaging carries its vocabulary with values and labels, translated in datamodel_translations.json (packagings; A3). ResourceNode.content_digest also holds the digest of the data of a master inside another file — a Metashape model's mesh.ply — compared, never verified by downloading (D7). GCPSetNode gains data.control (ground_control_points | camera_positions) and data.accuracy_m: a chunk referenced only by its cameras' GPS is absolute with the control said for what it is, and validate warns «georeferenced only by camera GPS» (D7). Node.properties.lang states the one explicit exception to the AI marker: a recognised language confirmed by a person is data.lang only (U5). CRMem 1.6.14. v1.6.23 (dev29, 2026-10-02, measured on San Pietro): seven properties that the round trip em.json → TTL → em.json lost now leave and come back — ResourceNode packaging / tier / digest_covers / content_digest (em:packaging, em:tier, em:digestCovers, em:contentDigest) and the declared fields of a DTC step, technique / parameters / software (em:technique, em:parameters, em:software, the last two as rdf:JSON). digest_covers admits members (a file_set). The blend:// locator stays out of RDF on purpose: it is a private path. v1.6.22 (dev28, 2026-11-01, decided by E.D. 2026-10-01 on the dev27 report): the access mode of a signature (created_auth / modified_auth / validated_auth) admits a third mode, 'declared' — an iD typed in a tool's preferences and checked by nobody (EMStudio's declared identity, EM Tools' local identity), with no attested_by; through a relay the mode is the relay's, read from the token (crdt.stamp_auth), not the client's declaration. The language a node is born in travels in the add_node op (crdt.make_op requires it of the producer, 'und' when unknown); the study's language is read only for old ops, said and counted. CRMem 1.6.12. v1.6.21 (dev27, 2026-10-31, decided by E.D. 2026-10-01, «il testo, la risorsa e la selezione» and «l'accesso sul campo»): ResourceNode.properties gains lang — on a resource the language(s) of its CONTENT, one tag or a sorted list, leaving as dcterms:language and outside the cascade of the texts — addresses (several addresses of ONE resource, same digest: em:hasAddress with em:locator, em:residency, em:checkedAt, em:reachable) and checksum_at (a dated digest, em:checksumAt). Node.properties gains created_auth / modified_auth / validated_auth: how the hand of a signature had entered, {mode: orcid | node_password, attested_by} (em:createdVia / em:modifiedVia / em:validatedVia, em:authMode, em:attestedBy). data.lang is written at birth (s3dgraphy.language.stamp_birth_language), also when equal to the study's. v1.6.20 (MICRO le traduzioni, 2026-10-29, decided by E.D. 2026-10-01, «Le traduzioni»): NEW TranslationNode (TRANSL, crm:E33_Linguistic_Object) — ONE translation of one text field of one node. The original stays a string in its field (data.lang on the node, else the study's), never overwritten; each translation is a node reached by has_translation (crm:P73_has_translation, connections 1.6.34) with data.lang (arrival), data.from_lang (departure, written because the original can change), data.field (CRDT vocabulary: description | data.<key>; a PropertyNode's value is data.value; never name), data.text, data.method (manual | ai | edition), data.source_digest (sha256 of the original translated: a different digest = «da riallineare») and data.review_requested («da rivedere»). Who: has_author; AI: data.ai_assisted, unverified until validated_by; an edition: extracted_from → the DocumentNode. RDF (em.ttl 1.6.10): Node.properties.lang names em:originalLanguage — the node's own data.lang leaves as that literal whenever it is declared, equal to the study's too, so a reader tells the original literal from the translations that share its predicate and the round trip gives data.lang back exactly where it was (the D.1 limit of 1.6.19 is closed); the TranslationNode's fields name em:sourceLanguage, em:translatedField, em:translationMethod, em:sourceDigest, em:reviewRequested. v1.6.19 (MICRO la lingua dei dati, 2026-10-27, decided by E.D. 2026-09-28): Node.properties.description becomes an object {cidoc: P3_has_note, natural_language: true, note} — the MARKER that says the description is text in a natural language and leaves in RDF with its language tag; declared once on the base class and inherited by every node type. name is NOT marked: names are invariant identities. No field added, no node element, no graph change: the em.json is the same; only the RDF literal gains its tag. v1.6.18 (MICRO i termini di em.ttl nel datamodel, 2026-10-26, decided by E.D. 2026-10-01 — the datamodel JSON is the truth, so every em: term of em.ttl is cited by a datamodel or is a written exception): the em: predicates the RDF exporter already writes are now NAMED in properties, as plain-string mapping notes (no field added, no node element, no graph change). Node (inherited by every class): the last-hand stamps created_by em:createdBy / modified_by em:lastEditedBy / modified_at em:modifiedAt (created_at prov:generatedAtTime), the tombstone removed.ts em:removedAt / removed.by em:removedBy, the AI marker ai_assisted.by em:aiAssistedBy / .model em:aiModel / .prompt_ref em:aiPromptRef / .fields em:aiAssistedField and the verification validated_by em:validatedBy / validated_at em:validatedAt (properties_note). ResourceNode: checksum em:checksum, scope em:resourceScope, residency em:residency. SemanticShapeNode: convexshapes em:convexShape, spheres em:sphere. AnnotationRegionNode: crs em:crs, coords.frame_iri em:LocalSceneFrame. AuthorNode and AuthorAINode: verified em:orcidVerified (AuthorAINode also names orcid P48, which the exporter writes for both). LocationNodeGroup.propagation.mapping: uri em:propagation. THREE ENTRIES CORRECTED TO WHAT THE CODE WRITES (measured in rdf_exporter.py): PropertyNode.property_type was P2_has_type, is em:hasQualiaType; AuthorAINode model / prompt_reference were P3_has_note, are em:modelIdentifier / em:promptReference; ResourceFileNode.checksum was P1_is_identified_by, is em:checksum; and LocationNodeGroup.propagation said 'not serialized to triplestore' while the exporter has written the non-default value as em:propagation since c1a702c (2026-08-12). v1.6.17 (MICRO la risorsa e i suoi file, 2026-10-18, decided by E.D. 2026-09-30): NEW ResourceFileNode (FILE, crmdig:D1_Digital_Object) — the ResourceNode is the set, the ResourceFileNode is each file, reached by has_file (connections 1.6.30) with role and relative path on the edge. With one file the node is implicit (url and checksum stay on the ResourceNode, as today). ResourceNode.PACKAGINGS += file_set (a few files that call each other: obj → mtl → textures, gltf → bin, shp and companions) and datablock (one object inside a file, a blend:// locator). Representations of the same thing are sibling ResourceNodes tied by dtc_derived_from and chosen by tier and packaging. ADDITIVE: nothing narrowed, no graph changes. v1.6.16 (MICRO le annotazioni ATON sull'asset, 2026-10-15, decided by E.D.): AnnotationRegionNode gains geometry_kind 'volume' — an annotation that encloses a part of a 3D model (ATON / Hathor convex hulls and spheres) and is the proxy of no unit. The region carries no vertices: it reaches a SemanticShapeNode (convexshapes, spheres) with has_semantic_shape and the model with is_on_resource. geometry.aton.import_aton_scene makes one for every semantic id no EM node is named after (a stratigraphic unit only with an explicit create_type); api.promote_region_to_proxy turns it into the proxy of a unit later. RDF: P2_has_type 'volume', no selector, no WKT; the shape travels as itself. Additive. v1.6.15 (MICRO la geometria per origine, 2026-10-11, decided by E.D. 2026-09-30): AnnotationRegionNode's point / line / polyline keep their vertices IN THE NODE, data.coords [[x, y, z], ...] (scene-local, glTF Y-up, metres) with crs and, for a line or a polyline, length and unit — no .glb and no SemanticShape for a reading. New block coords (inline_max_vertices 500: above it the vertices go to a .glb resource via has_linked_resource, with a warning). RDF: geo:hasGeometry -> <region>/geometry geo:asWKT (POINT Z / LINESTRING Z, GeoSPARQL). The readings/<id>.glb of 2026-10-06 are migrated on opening. v1.6.14 (MICRO la cattura in RDF, 2026-09-30): DTCAcquisitionNode.mapping.by_kind — its D12 is the class of a retrieval; a capture takes the class its kind declares in em_visual_rules 1.6.24 (D2 / D11 / E65). Mapping text only, no field changed. v1.6.13 (MICRO i generi delle US, 2026-09-30, decided by E.D. the same day): stratigraphic_kind gains 'coating' — the USR (rivestimento) and its English translation USS (surface): plaster, floors, revetments — with `labels`, `codes` and `default_code` per kind; new node element `source_code` (data.source_code) keeps the code a unit came in with when it is not its kind's default, so the way back to pyArchInit gives the same code. A legacy node_type 'USR' / 'USS' opens as US + coating. v1.6.12 (MICRO la cattura nel DTC e le murature, 2026-09-30): StratigraphicUnit (US) gains the node element `stratigraphic_kind` (em.json data.stratigraphic_kind; today one value, 'masonry'): a USM is a US + masonry, and the legacy node_type 'USM' — never a type of this datamodel — opens as that. DTCAcquisitionNode's description names the two families of the acquisition axis (em_visual_rules 1.6.22: capture / retrieval). v1.6.11 (MICRO la misura in RDF, 2026-10-07): AnnotationRegionNode.properties says how the fields left unprojected by 1.6.10 now travel — the quote of a passage as oa:TextQuoteSelector, the length of a line/polyline as crm:E54_Dimension (P90 value, P91 QUDT unit, em:crs), vertex_count as em:vertexCount. CRMem (em.ttl) 1.6.5 -> 1.6.6. Mapping text only, no field changed. v1.6.10 (MICRO la geometria della lettura, 2026-10-06, decided by E.D. on 2026-09-29): AnnotationRegionNode becomes the node of THE PLACE A READING LOOKED AT, with a new field geometry_kind: region2d (default, every older region), passage (start, end, text), point, line, polyline. The three 3D kinds keep their coordinates in a .glb (glTF POINTS / LINES / LINE_STRIP) linked with has_semantic_shape exactly like a proxy's payload, never in the em.json; the node keeps vertex_count and, for line/polyline, length + unit + crs (api.measure). See the entry's geometry_kinds and glb_payload. Paired with connections 1.6.27 (is_on_resource.target += the representation models). Additive: a region without geometry_kind reads as region2d. v1.6.9 (MICRO la definizione dell'unita', 2026-10-20, decided by E.D. on 2026-09-27): StratigraphicNode.properties gains `definition`, the DEFINIZIONE of the US sheet, as an element of the node like name and description and NOT a qualia. Value = a controlled-vocabulary concept {concept, label}; em.json carries it as data.definition (CRDT field 'data.definition', no change to the frozen em.json v1 node shape); inherited by every stratigraphic subtype. The RDF projection is declared in the entry itself (`rdf`): crm:P2_has_type -> crm:E55_Type when a concept URI is present, nothing when only a label is (`label_only: null`). CRMem 1.6.4 -> 1.6.5 for the companion em:hasDefinition (subproperty of crm:P2_has_type, declared, not emitted by default). Additive only. v1.6.7 (CRMem WIRING, 2026-09-24): rimosso il campo legacy `cidoc_s3d` da tutte le mapping. Non era letto da nessuna parte del codice e portava quattro nomi di classe senza namespace, mai dichiarati e mai emessi: EpochNode = StratigraphicTimeframe; ActivityNodeGroup = StratigraphicActivity; ParadataNodeGroup = ParadataCollection; ResourceNode = ExternalResourceReference. Il prefisso CIDOC-S3D non esiste piu' in nessuno dei due datamodel. v1.6.6 (CIDOC REPAIR, 2026-09-21): classes that pointed at IRIs nobody declares. Checked by parsing the official releases, not from memory. crm:E78_Collection is gone from CIDOC CRM 7.1.3 — renamed E78_Curated_Holding — and E.D. decided NOT to follow the rename, because E78_Curated_Holding is a subclass of E24 Physical Human-Made Thing and a group of nodes is not a physical thing. The three classes that carried it therefore split, each to the class it actually is: GroupNode and RepresentationModelNodeGroup to crm:E73_Information_Object (a conceptual set, and an E90 Symbolic Object, which is what the P106i membership edge needs at both ends), ParadataNodeGroup to crm:E89_Propositional_Object — which is what a gathered body of reasoning IS and what the range of crm:P129i_is_subject_of demands, that being the predicate has_paradata_nodegroup takes in connections 1.6.17 the same day; it stays an E90 through em:NodeGroup, so the membership edge does not break. SemanticShapeNode leaves crmgeo:SP5_Geometric_Place_Expression for crm:E73_Information_Object, PROVVISORIAMENTE: SP5 is not declared at the crmgeo namespace this datamodel emits, crmgeo:SP6_Declarative_Place is the better candidate, and the decision is rinviata da E.D. — E73 commits to nothing meanwhile. crm:P131_is_identified_by, deprecated in CRM 7.x together with E82 Actor Appellation, becomes crm:P1_is_identified_by on AuthorNode (name, surname) and AuthorAINode (name). «CRMs3D» is renamed «CRMem», in components and in referenced_ontology_versions alike: the companion ontology is em.ttl and its namespace is em:, so the old name pointed at nothing anyone could look up. CRMsci moves 3.1 -> 3.2 (latest release). The eight em: terms this file and the connections datamodel cite but em.ttl never defined are now declared there (em:FunctionalUnit, em:GCPSet, em:Narrative, em:NeutralSU, em:RegistrationTransform, em:RepresentationModelNodeGroup, em:hasSubEpoch, em:validatedBy), with domain, range and superclass read off these datamodels and nothing invented. NOT TOUCHED: the `alternative` and legacy `cidoc_s3d` prose fields, which still discuss E78 as an option — prose, not a projection, and rewording them is modelling rather than repair. v1.6.5 (EM16-RMNG, 2026-09-10): adds RepresentationModelNodeGroup, the RM container as a first-class group of the graph — sixth subtype of GroupNode, keeping the parent's E78 Collection because a container IS a curatorial set. Paired with connections datamodel 1.6.14, which adds the is_in_representation_model_group membership edge and widens has_representation_model.target to accept the group. Additive only: no existing entry changed. s3Dgraphy nodes datamodel including node types with CIDOC-CRM mappings. v1.6.4 adds the ADDITIVE georeferencing_nodes section (GCPSetNode = em:GCPSet, RegistrationTransformNode = em:RegistrationTransform, both subclasses of crm:E73_Information_Object with their own extension URIs so the RDF projection stays bijective): the CONTROL and the SOLUTION that place a produced model in the world, introduced with the photogrammetry processing connector. The two modes of that connector are the SHAPE of the graph (a transform with a CRS that has_gcp_set points at = absolute; a transform with crs=null and no control set = a site-local frame; no transform at all = nobody placed it), never a flag. No existing family changed. v1.6.3 re-reads SemanticShapeNode as a PAYLOAD carrier: the proxy of a unit is now a PropertyNode of qualia type 'geometry' that points at the shape (has_semantic_shape), so the proxy inherits the paradata chain it never had. Breaking for consumers that read the proxy as a standalone SemanticShape. v1.6.2 adds AnnotationRegionNode (em:AnnotationRegion, subclass of crm:E36_Visual_Item): the geometry of a 2D annotation in NORMALISED image space, distinct from SemanticShapeNode (3D scene geometry, crmgeo:SP5) - the semantics of the 2D annotator, defined before any canvas exists. v1.6.0 inaugurates a systematic CIDOC-CRM mapping revision: complete audit of all node types against CIDOC-CRM, CRMarchaeo, CRMinf, CRMdig, CRMsci, CRMgeo; replacement of legacy 'cidoc_s3d' pseudo-class names (invented strings without IRI or superclass declaration) with formal em:/s3d: IRIs declared as proper subclasses of CRM classes; introduction of CRMinf as primary (not alternative) for the paradata chain (ParadataNode, PropertyNode interpretive case, ExtractorNode, CombinerNode); introduction of PROV-O for AuthorNode to cover both human and AI agents; alignment with the Heritage Digital Twin Ontology (HDT-O) for containment / granularity properties; LocationNodeGroup (v1.5.3) adopted as the reference pattern (CIDOC-native composition via P2_has_type → E55 Type instances, with explicit extension_status and rationale). Companion deliverables: em.ttl (formal EM extension ontology, dereferenceable via w3id.org/em/) and hdto_extension.ttl (HDT-O granularity properties: contains_HDT, contains_SU, isPrimary). v1.5.4 added RSF (Reused Special Find — spolia) as a stratigraphic subtype, octagon with red border, family=real, is_series=false. Originating DP: DP-26 (spolia project, last DP before the EM 1.5 cut). v1.5.3 added LocationNodeGroup (E53 Place + E55 Type) for spatial / locational membership orthogonal to ActivityNodeGroup (intention) and EpochNode (time). v1.5.2 added family + is_series classification metadata on stratigraphic subtypes.",
|
|
2
|
+
"s3Dgraphy_data_model_version": "1.6.42",
|
|
3
|
+
"description": "v1.6.42 (6 Nov 2026, MICRO-TIMBRA-MASTER, on E.D.'s «Timbrare i master, e due tipi di master», 30 Oct 2026): TWO KINDS OF MASTER. ResourceNode.properties.master_kind (em:masterKind): very_high_resolution (dense geometry, often untextured) | complete (textured: a texturing step with two inputs, the reduced mesh and the aligned photographs) — declared, only with tier master, labels translated in datamodel_translations.json (section master_kinds). No new node type and no new edge. v1.6.41 (6 Nov 2026, MICRO-LANDSCAPE-ONTOLOGIA, on D-LG1..9 of landscape-graph-semantica, 24 Oct 2026): THE UNITS OF THE LANDSCAPE GRAPH. A new section landscape_nodes with three classes under one Python parent, LandscapeUnitNode (the name the edges use, abstract: in the generated registry only): TopographicUnitNode (UT, node_type UT, observed: E26 Physical Feature), NegativeTopographicUnitNode (UT0 displayed −UT, observed absence: crmsci:S4 Observation) and DistrictNode (district, declared: crmgeo:SP6 Declarative Place, typed urban | rural by properties.district_kind → em:DistrictUrban / em:DistrictRural, two E55 concepts of the EM vocabulary, CRMem 1.6.25). LandscapeUnitNode joins spatiotemporal_entities: start/end, lanes, sequence and chronology like a unit, no physical relation. The site and the virtual site are unchanged (LocationNodeGroup level sito, virtual: 1.6.39). v1.6.40 (6 Nov 2026, MICRO-GIS-BASE): THE FOUR BASE GIS FORMATS ARE READ, AND THE GROUND OF THE LANDSCAPE HAS A NODE. (1) ResourceNode of url_type gis_layer: shapefile, GeoPackage (data.layer), GeoJSON and GeoTIFF (COG too) are read by s3dgraphy.gis without GDAL; the CRS comes from the file (prj/qpj, gpkg_spatial_ref_sys, the GeoJSON 2008 crs member or RFC 7946 WGS 84, the GeoTIFF GeoKeys), bbox in that CRS and bbox_wgs84 (pyproj). New field data.raster (a GeoTIFF: width, height, bands, kind dem|image, pixel_size, nodata, cog, tiled, overviews, compression, vertical_crs). (2) visualization_nodes.LandscapeSurfaceNode (node_type landscape_surface): the ground surface of a landscape — a DEM layer drawn as a mesh and an image layer draped on it — hatting its layers with has_linked_resource and saying its site with is_in_location (connections 1.6.52). Not an RM: an RM represents a stratigraphic node; not the LocationNodeGroup: the place is the identity, this is one of its geometries (the manual, location.rst). (3) Contour lines of a DEM are a DERIVED gis_layer (GeoJSON in the DEM's CRS) made by one DTC process of kind vectorization (s3dgraphy.gis.add_contours). v1.6.39 (30 Oct 2026, MICRO lab sito Sarmizegetusa, on D-LG4/D-LG5 and the proposal «Il GIS dentro l'em.json»): THE SITE AND ITS FOOTPRINT, THE GIS LAYER AS A RESOURCE. (1) LocationNodeGroup.fields gains `level` (declared at last: hdto.make_site_place has written level \"sito\" since 20 Oct; \"sito\" is THE SITE of D-LG4, the last ring of the toponym chain a study took place at) and `virtual` (a site supposed without stratigraphy, D-LG5: rdf:type em:VirtualSite, E89 + E27; the only CRMem term the Landscape Graph asks). (2) ResourceNode: url_type `gis_layer` (resource_types) and the fields of a layer — gis_format, crs, bbox, bbox_wgs84, layer, feature_key, z_field, geometry_type, feature_count, z_range; a shapefile is packaging file_set with its companions reached by has_file; its frame is data.frame (1.6.38). Not projected to RDF yet (a reading aid, like the frame). The footprint is a PropertyNode of qualia `footprint` (qualia 1.6.10) on the site (connections 1.6.50: has_property and has_linked_resource admit LocationNodeGroup). s3dgraphy.gis. ADDITIVE. v1.6.38 (25 Oct 2026, MICRO tileset, shift e epoche, decided by E.D.): THE FRAME OF A FILE — ResourceNode.properties.frame (data.frame: {crs, shift [x, y, z], note, source}), also on RepresentationModelNode and RepresentationModelNodeGroup: «the coordinates of this file are CRS X minus shift S». Surveys exported with shifted coordinates declared in the project's CRS (the Basilica Iulia's RealityScan tileset falls on the equator) are relocated by the viewers when they read it (s3dgraphy.geometry.frame: frame_of, relocate_transform); the file is never rewritten. Looked for on the resource, its asset, then its hat (RM or container). Not in RDF. Additive. v1.6.37 (24 Oct 2026, MICRO-LAB orizzonti, decided by E.D.): NEW section periodization_nodes — PeriodizationNode (PER, E32 Authority Document) lists its HorizonNode (HOR, crmgeo:SP10 Declarative Time-Span: label, start_time, end_time, color, order, enabled) through is_in_periodization (connections 1.6.47). They are nodes of the MULTIGRAPH, at the level of the container (member graphs.periodizations, em_collection «Periodizations»), never inside a study graph; «inside» an horizon means overlapping it; several periodizations per project; the colours travel with the data. An em.json without horizons is unchanged. v1.6.36 (23 Oct 2026, MICRO special find e fine dell'unità, part 3, decided by E.D.): the END of a unit is typed. ContinuityNode (BR) gets the node element properties.end_reason (data.end_reason): destroyed, transformed, removed, relocated, unknown (the default) — the tokens EMStudio already writes for the first three, now declared. The type decides the CIDOC class (E6, E81, E80, E9, E64) and the property the BR reaches its unit by (P13, P124 + P123, P113 + P112, P25 + P27, P93), always with P2_has_type to the EM concept em:EndOfUnit…; IRIs checked on the CIDOC 7.1.3 RDFS. em:ContinuityNode becomes a subclass of crm:E5_Event (was E64): E80 and E9 are not ends of existence. In the graph the BR → unit edge stays is_after; the RDF projection is declared in connections 1.6.45. The BR is a spatiotemporal unit like the others: paradata, its own start and end, the epoch inherited from the last the unit lives in until it has a date of its own (s3dgraphy.spatiotemporal.end_of_unit). v1.6.35 (23 Oct 2026, MICRO special find e fine dell'unità, part 2, decided by E.D.): new subtype serVSF (SeriesOfVirtualSpecialFindUnit, em:SeriesOfVirtualSpecialFind, subclass of em:VirtualSpecialFind + E89 + E19), the series of Virtual Special Finds on the pattern of serSU / serUSD / serUSVn / serUSVs: the repetition of one equal object (the tile repaired with a VSF and instanced over the whole roof), never pieces that are all different (the drums of a tapering column). v1.6.34 (23 Oct 2026, MICRO special find e fine dell'unità, part 1, decided by E.D.): descriptions only — SF, RSF, VSF redefined. SF: movable, found erratic or in a layer and taken out during the excavation, defined in positive (documented where it was found); how it lay — in situ, redeposited, fallen in position — is an attribute, not a class; a collapse found in position is an SF. RSF: label «Repositioned Special Find» (was «Reused»), fixed and immovable, intentionally put back into a stable unit or a new functional placement, a historical physical anastylosis included; reuse is one case; class name and URI unchanged. Invariant: movable (SF) / immovable (RSF). VSF: two roles, the VSF that holds the fragments and the VSF that completes what was restored; restoring the block and remodelling the ancient version are both correct, the difference SF/VSF by a boolean. An SF is drawn in an earlier epoch only when the piece is estimated equal to the ancient one. No field, node element or mapping changes. v1.6.33 (23 Oct 2026, decided by E.D.): description only — RepresentationModelNodeGroup: a model may belong to several RM containers (is_in_representation_model_group m:n, connections 1.6.43); the epochs stay on each model. v1.6.32 (2026-10-20, decided by E.D.): descriptions only — GraphNode and StudyNode say how «a graph is a study» (StratiGraph D3.1 §3.3, D3.2 §3.5) is read: one graph corresponds one to one to the study that created it (HP25), the two classes stay distinct, and the graph is not the digital twin (HC2). No field, node element or mapping changes. CRMem 1.6.18. v1.6.31 (MICRO le alternative e la trasformazione, decided by E.D. 2026-10-16/17): the TRANSFORMATION of a 3D object is declared — RepresentationModelNode, RepresentationModelDocNode, RepresentationModelSpecialFindNode and SemanticShapeNode get properties.transform: position (metres, the frame of the study), rotation in DEGREES with rotation_order (XYZ by default, Blender's), scale, up_axis (Z by default), the optional pivot (absent: the centre of the object's box) and the computed quaternion, all numbers; angle_unit 'deg' marks the new form, and the old one (strings, radians) is read and converted with a warning. Applied on top of the file's coordinates; a tileset's own pose stays in its tileset.json. RDF: em:position, em:rotationDegrees, em:rotationOrder, em:scale, em:upAxis, em:pivot (em.ttl 1.6.17, section 20). v1.6.30 (giro dell'11 ottobre (2), decided by E.D. 2026-10-11, «il codice di studio è stabile»): StudyNode.code is STABLE — once a study has one it never changes by itself (import, export, migration, projection): it is what Blender re-attaches the proxies by (GT16.1.USM100). Read: the study's code, else the GraphML header ID (graph_code), else the retired em_id (read only). A GraphML's header ID is written on the study at import. When there is none, s3dgraphy.hdto.propose_study_code writes ONE proposal (site initials + the year of the study's date, -2/-3 against the other codes of the container) and marks it with the new field `code_proposed` until the user confirms it. v1.6.29 (giro dell'11 ottobre, decided by E.D. 2026-10-11): the code of a graph is the code of its STUDY — StudyNode.code replaces the graph-self node's retired «EM-ID» (GraphNode.data.em_id, never a field of this datamodel): a file that has one keeps it and s3dgraphy.hdto.migrate_em_id carries it to the study's code only when the study exists and has none. A saggio is a study AND a place: its LocationNodeGroup (kind study) is in the site (is_in_location), the study took place at it. Descriptions only, no field added. v1.6.28 (MICRO lo studio usabile, decided by E.D. 2026-10-10: the stratigraphic trench is a STUDY, the site is TOPOGRAPHY, HC1 is heritage only where recognised): StudyNode gains `study_kind` (stratigraphic_excavation | survey | documentation | other) — a stratigraphic_excavation is ALSO a crmarchaeo:A9_Archaeological_Excavation, declared per value in the field (`subclass_of_by_value`, the same subclass_of form the classes use) and emitted by the RDF exporter as a second rdf:type — and `code` (the short name of the study, e.g. GT16: what the source gives, or what the user writes; never derived; the label prefix reads it). HC9 Study is aligned to crm:E65_Creation (was crm:E7_Activity; E65 ⊑ E7), HC1 Heritage Entity to crm:E70_Thing (was crm:E1_CRM_Entity), as the official HDT-O RDFS says (HDT_v2.0.1.rdf, ECHOES D7.1). The study reaches its place with study_took_place_at (crm:P7_took_place_at, connections 1.6.39). v1.6.27 (MICRO le entità spaziotemporali, decided by E.D. 2026-10-10): DocumentNode and AuthorNode (with AuthorAINode) are SPATIOTEMPORAL ENTITIES like the stratigraphic units — the top-level block `spatiotemporal_entities` names the three classes and what they share: a start and an end (absolute_time_start / absolute_time_end, read with the label of their owner: a person is born and dies, a model is released and retired), the lane of the matrix where they begin (has_first_epoch) and the ones they last through (survive_in_epoch), their place in the sequence (is_after, has_same_time), an activity. The edges are widened in connections 1.6.38; the chronology dates the three with the same rules (Graph.CHRONOLOGY_TYPES). AuthorNode and DocumentNode gain a `spatiotemporal` element saying how their time reads; no field of theirs changes. v1.6.26 (H4, decided by E.D. 5 Oct 2026, «Heriverse legge l'em.json e sceglie la versione»): ResourceNode.use admits two more uses, heriverse and aton — a version made FOR a viewer, the package on disk that Heriverse or another ATON app opens offline (EM Tools makes it with «Prepare for a use…», as is: no optimisation of its own); a viewer asks heriverse, aton, web, realtime in that order (s3dgraphy.resources.versions.choose_version). v1.6.25 (D1, MICRO un solo vocabolario, decided by E.D. 4 Oct 2026): GeoPositionNode.rotation_reference = 'grid' (D2: the rotation is measured from the GRID north of the CRS). ResourceNode.lod_level (em:lodLevel, computed from the chain, written only on export and checked at load), ResourceNode.use (em:use, a list of analysis | realtime | web | mobile_ar | print | render | preview) and seven measures of a version (em:trisPerM2, em:texelDensityDD, em:textureCount, em:textureSidePx, em:uvRatio, em:reductionFromLod0, em:geometricErrorM). v1.6.24 (dev30, decided by E.D. 2026-10-02 on the dev29 report): DTCAcquisitionNode.retrieved_from — where a retrieved object came from, a DOI or a URL (em:retrievedFrom, D1; optional, validate warns «download without origin»). ResourceNode.members_digest names em:membersDigest, the digest of a file_set with a predicate of its own beside em:checksum + em:digestCovers (D4; not a second field). ResourceNode.packaging carries its vocabulary with values and labels, translated in datamodel_translations.json (packagings; A3). ResourceNode.content_digest also holds the digest of the data of a master inside another file — a Metashape model's mesh.ply — compared, never verified by downloading (D7). GCPSetNode gains data.control (ground_control_points | camera_positions) and data.accuracy_m: a chunk referenced only by its cameras' GPS is absolute with the control said for what it is, and validate warns «georeferenced only by camera GPS» (D7). Node.properties.lang states the one explicit exception to the AI marker: a recognised language confirmed by a person is data.lang only (U5). CRMem 1.6.14. v1.6.23 (dev29, 2026-10-02, measured on San Pietro): seven properties that the round trip em.json → TTL → em.json lost now leave and come back — ResourceNode packaging / tier / digest_covers / content_digest (em:packaging, em:tier, em:digestCovers, em:contentDigest) and the declared fields of a DTC step, technique / parameters / software (em:technique, em:parameters, em:software, the last two as rdf:JSON). digest_covers admits members (a file_set). The blend:// locator stays out of RDF on purpose: it is a private path. v1.6.22 (dev28, 2026-11-01, decided by E.D. 2026-10-01 on the dev27 report): the access mode of a signature (created_auth / modified_auth / validated_auth) admits a third mode, 'declared' — an iD typed in a tool's preferences and checked by nobody (EMStudio's declared identity, EM Tools' local identity), with no attested_by; through a relay the mode is the relay's, read from the token (crdt.stamp_auth), not the client's declaration. The language a node is born in travels in the add_node op (crdt.make_op requires it of the producer, 'und' when unknown); the study's language is read only for old ops, said and counted. CRMem 1.6.12. v1.6.21 (dev27, 2026-10-31, decided by E.D. 2026-10-01, «il testo, la risorsa e la selezione» and «l'accesso sul campo»): ResourceNode.properties gains lang — on a resource the language(s) of its CONTENT, one tag or a sorted list, leaving as dcterms:language and outside the cascade of the texts — addresses (several addresses of ONE resource, same digest: em:hasAddress with em:locator, em:residency, em:checkedAt, em:reachable) and checksum_at (a dated digest, em:checksumAt). Node.properties gains created_auth / modified_auth / validated_auth: how the hand of a signature had entered, {mode: orcid | node_password, attested_by} (em:createdVia / em:modifiedVia / em:validatedVia, em:authMode, em:attestedBy). data.lang is written at birth (s3dgraphy.language.stamp_birth_language), also when equal to the study's. v1.6.20 (MICRO le traduzioni, 2026-10-29, decided by E.D. 2026-10-01, «Le traduzioni»): NEW TranslationNode (TRANSL, crm:E33_Linguistic_Object) — ONE translation of one text field of one node. The original stays a string in its field (data.lang on the node, else the study's), never overwritten; each translation is a node reached by has_translation (crm:P73_has_translation, connections 1.6.34) with data.lang (arrival), data.from_lang (departure, written because the original can change), data.field (CRDT vocabulary: description | data.<key>; a PropertyNode's value is data.value; never name), data.text, data.method (manual | ai | edition), data.source_digest (sha256 of the original translated: a different digest = «da riallineare») and data.review_requested («da rivedere»). Who: has_author; AI: data.ai_assisted, unverified until validated_by; an edition: extracted_from → the DocumentNode. RDF (em.ttl 1.6.10): Node.properties.lang names em:originalLanguage — the node's own data.lang leaves as that literal whenever it is declared, equal to the study's too, so a reader tells the original literal from the translations that share its predicate and the round trip gives data.lang back exactly where it was (the D.1 limit of 1.6.19 is closed); the TranslationNode's fields name em:sourceLanguage, em:translatedField, em:translationMethod, em:sourceDigest, em:reviewRequested. v1.6.19 (MICRO la lingua dei dati, 2026-10-27, decided by E.D. 2026-09-28): Node.properties.description becomes an object {cidoc: P3_has_note, natural_language: true, note} — the MARKER that says the description is text in a natural language and leaves in RDF with its language tag; declared once on the base class and inherited by every node type. name is NOT marked: names are invariant identities. No field added, no node element, no graph change: the em.json is the same; only the RDF literal gains its tag. v1.6.18 (MICRO i termini di em.ttl nel datamodel, 2026-10-26, decided by E.D. 2026-10-01 — the datamodel JSON is the truth, so every em: term of em.ttl is cited by a datamodel or is a written exception): the em: predicates the RDF exporter already writes are now NAMED in properties, as plain-string mapping notes (no field added, no node element, no graph change). Node (inherited by every class): the last-hand stamps created_by em:createdBy / modified_by em:lastEditedBy / modified_at em:modifiedAt (created_at prov:generatedAtTime), the tombstone removed.ts em:removedAt / removed.by em:removedBy, the AI marker ai_assisted.by em:aiAssistedBy / .model em:aiModel / .prompt_ref em:aiPromptRef / .fields em:aiAssistedField and the verification validated_by em:validatedBy / validated_at em:validatedAt (properties_note). ResourceNode: checksum em:checksum, scope em:resourceScope, residency em:residency. SemanticShapeNode: convexshapes em:convexShape, spheres em:sphere. AnnotationRegionNode: crs em:crs, coords.frame_iri em:LocalSceneFrame. AuthorNode and AuthorAINode: verified em:orcidVerified (AuthorAINode also names orcid P48, which the exporter writes for both). LocationNodeGroup.propagation.mapping: uri em:propagation. THREE ENTRIES CORRECTED TO WHAT THE CODE WRITES (measured in rdf_exporter.py): PropertyNode.property_type was P2_has_type, is em:hasQualiaType; AuthorAINode model / prompt_reference were P3_has_note, are em:modelIdentifier / em:promptReference; ResourceFileNode.checksum was P1_is_identified_by, is em:checksum; and LocationNodeGroup.propagation said 'not serialized to triplestore' while the exporter has written the non-default value as em:propagation since c1a702c (2026-08-12). v1.6.17 (MICRO la risorsa e i suoi file, 2026-10-18, decided by E.D. 2026-09-30): NEW ResourceFileNode (FILE, crmdig:D1_Digital_Object) — the ResourceNode is the set, the ResourceFileNode is each file, reached by has_file (connections 1.6.30) with role and relative path on the edge. With one file the node is implicit (url and checksum stay on the ResourceNode, as today). ResourceNode.PACKAGINGS += file_set (a few files that call each other: obj → mtl → textures, gltf → bin, shp and companions) and datablock (one object inside a file, a blend:// locator). Representations of the same thing are sibling ResourceNodes tied by dtc_derived_from and chosen by tier and packaging. ADDITIVE: nothing narrowed, no graph changes. v1.6.16 (MICRO le annotazioni ATON sull'asset, 2026-10-15, decided by E.D.): AnnotationRegionNode gains geometry_kind 'volume' — an annotation that encloses a part of a 3D model (ATON / Hathor convex hulls and spheres) and is the proxy of no unit. The region carries no vertices: it reaches a SemanticShapeNode (convexshapes, spheres) with has_semantic_shape and the model with is_on_resource. geometry.aton.import_aton_scene makes one for every semantic id no EM node is named after (a stratigraphic unit only with an explicit create_type); api.promote_region_to_proxy turns it into the proxy of a unit later. RDF: P2_has_type 'volume', no selector, no WKT; the shape travels as itself. Additive. v1.6.15 (MICRO la geometria per origine, 2026-10-11, decided by E.D. 2026-09-30): AnnotationRegionNode's point / line / polyline keep their vertices IN THE NODE, data.coords [[x, y, z], ...] (scene-local, glTF Y-up, metres) with crs and, for a line or a polyline, length and unit — no .glb and no SemanticShape for a reading. New block coords (inline_max_vertices 500: above it the vertices go to a .glb resource via has_linked_resource, with a warning). RDF: geo:hasGeometry -> <region>/geometry geo:asWKT (POINT Z / LINESTRING Z, GeoSPARQL). The readings/<id>.glb of 2026-10-06 are migrated on opening. v1.6.14 (MICRO la cattura in RDF, 2026-09-30): DTCAcquisitionNode.mapping.by_kind — its D12 is the class of a retrieval; a capture takes the class its kind declares in em_visual_rules 1.6.24 (D2 / D11 / E65). Mapping text only, no field changed. v1.6.13 (MICRO i generi delle US, 2026-09-30, decided by E.D. the same day): stratigraphic_kind gains 'coating' — the USR (rivestimento) and its English translation USS (surface): plaster, floors, revetments — with `labels`, `codes` and `default_code` per kind; new node element `source_code` (data.source_code) keeps the code a unit came in with when it is not its kind's default, so the way back to pyArchInit gives the same code. A legacy node_type 'USR' / 'USS' opens as US + coating. v1.6.12 (MICRO la cattura nel DTC e le murature, 2026-09-30): StratigraphicUnit (US) gains the node element `stratigraphic_kind` (em.json data.stratigraphic_kind; today one value, 'masonry'): a USM is a US + masonry, and the legacy node_type 'USM' — never a type of this datamodel — opens as that. DTCAcquisitionNode's description names the two families of the acquisition axis (em_visual_rules 1.6.22: capture / retrieval). v1.6.11 (MICRO la misura in RDF, 2026-10-07): AnnotationRegionNode.properties says how the fields left unprojected by 1.6.10 now travel — the quote of a passage as oa:TextQuoteSelector, the length of a line/polyline as crm:E54_Dimension (P90 value, P91 QUDT unit, em:crs), vertex_count as em:vertexCount. CRMem (em.ttl) 1.6.5 -> 1.6.6. Mapping text only, no field changed. v1.6.10 (MICRO la geometria della lettura, 2026-10-06, decided by E.D. on 2026-09-29): AnnotationRegionNode becomes the node of THE PLACE A READING LOOKED AT, with a new field geometry_kind: region2d (default, every older region), passage (start, end, text), point, line, polyline. The three 3D kinds keep their coordinates in a .glb (glTF POINTS / LINES / LINE_STRIP) linked with has_semantic_shape exactly like a proxy's payload, never in the em.json; the node keeps vertex_count and, for line/polyline, length + unit + crs (api.measure). See the entry's geometry_kinds and glb_payload. Paired with connections 1.6.27 (is_on_resource.target += the representation models). Additive: a region without geometry_kind reads as region2d. v1.6.9 (MICRO la definizione dell'unita', 2026-10-20, decided by E.D. on 2026-09-27): StratigraphicNode.properties gains `definition`, the DEFINIZIONE of the US sheet, as an element of the node like name and description and NOT a qualia. Value = a controlled-vocabulary concept {concept, label}; em.json carries it as data.definition (CRDT field 'data.definition', no change to the frozen em.json v1 node shape); inherited by every stratigraphic subtype. The RDF projection is declared in the entry itself (`rdf`): crm:P2_has_type -> crm:E55_Type when a concept URI is present, nothing when only a label is (`label_only: null`). CRMem 1.6.4 -> 1.6.5 for the companion em:hasDefinition (subproperty of crm:P2_has_type, declared, not emitted by default). Additive only. v1.6.7 (CRMem WIRING, 2026-09-24): rimosso il campo legacy `cidoc_s3d` da tutte le mapping. Non era letto da nessuna parte del codice e portava quattro nomi di classe senza namespace, mai dichiarati e mai emessi: EpochNode = StratigraphicTimeframe; ActivityNodeGroup = StratigraphicActivity; ParadataNodeGroup = ParadataCollection; ResourceNode = ExternalResourceReference. Il prefisso CIDOC-S3D non esiste piu' in nessuno dei due datamodel. v1.6.6 (CIDOC REPAIR, 2026-09-21): classes that pointed at IRIs nobody declares. Checked by parsing the official releases, not from memory. crm:E78_Collection is gone from CIDOC CRM 7.1.3 — renamed E78_Curated_Holding — and E.D. decided NOT to follow the rename, because E78_Curated_Holding is a subclass of E24 Physical Human-Made Thing and a group of nodes is not a physical thing. The three classes that carried it therefore split, each to the class it actually is: GroupNode and RepresentationModelNodeGroup to crm:E73_Information_Object (a conceptual set, and an E90 Symbolic Object, which is what the P106i membership edge needs at both ends), ParadataNodeGroup to crm:E89_Propositional_Object — which is what a gathered body of reasoning IS and what the range of crm:P129i_is_subject_of demands, that being the predicate has_paradata_nodegroup takes in connections 1.6.17 the same day; it stays an E90 through em:NodeGroup, so the membership edge does not break. SemanticShapeNode leaves crmgeo:SP5_Geometric_Place_Expression for crm:E73_Information_Object, PROVVISORIAMENTE: SP5 is not declared at the crmgeo namespace this datamodel emits, crmgeo:SP6_Declarative_Place is the better candidate, and the decision is rinviata da E.D. — E73 commits to nothing meanwhile. crm:P131_is_identified_by, deprecated in CRM 7.x together with E82 Actor Appellation, becomes crm:P1_is_identified_by on AuthorNode (name, surname) and AuthorAINode (name). «CRMs3D» is renamed «CRMem», in components and in referenced_ontology_versions alike: the companion ontology is em.ttl and its namespace is em:, so the old name pointed at nothing anyone could look up. CRMsci moves 3.1 -> 3.2 (latest release). The eight em: terms this file and the connections datamodel cite but em.ttl never defined are now declared there (em:FunctionalUnit, em:GCPSet, em:Narrative, em:NeutralSU, em:RegistrationTransform, em:RepresentationModelNodeGroup, em:hasSubEpoch, em:validatedBy), with domain, range and superclass read off these datamodels and nothing invented. NOT TOUCHED: the `alternative` and legacy `cidoc_s3d` prose fields, which still discuss E78 as an option — prose, not a projection, and rewording them is modelling rather than repair. v1.6.5 (EM16-RMNG, 2026-09-10): adds RepresentationModelNodeGroup, the RM container as a first-class group of the graph — sixth subtype of GroupNode, keeping the parent's E78 Collection because a container IS a curatorial set. Paired with connections datamodel 1.6.14, which adds the is_in_representation_model_group membership edge and widens has_representation_model.target to accept the group. Additive only: no existing entry changed. s3Dgraphy nodes datamodel including node types with CIDOC-CRM mappings. v1.6.4 adds the ADDITIVE georeferencing_nodes section (GCPSetNode = em:GCPSet, RegistrationTransformNode = em:RegistrationTransform, both subclasses of crm:E73_Information_Object with their own extension URIs so the RDF projection stays bijective): the CONTROL and the SOLUTION that place a produced model in the world, introduced with the photogrammetry processing connector. The two modes of that connector are the SHAPE of the graph (a transform with a CRS that has_gcp_set points at = absolute; a transform with crs=null and no control set = a site-local frame; no transform at all = nobody placed it), never a flag. No existing family changed. v1.6.3 re-reads SemanticShapeNode as a PAYLOAD carrier: the proxy of a unit is now a PropertyNode of qualia type 'geometry' that points at the shape (has_semantic_shape), so the proxy inherits the paradata chain it never had. Breaking for consumers that read the proxy as a standalone SemanticShape. v1.6.2 adds AnnotationRegionNode (em:AnnotationRegion, subclass of crm:E36_Visual_Item): the geometry of a 2D annotation in NORMALISED image space, distinct from SemanticShapeNode (3D scene geometry, crmgeo:SP5) - the semantics of the 2D annotator, defined before any canvas exists. v1.6.0 inaugurates a systematic CIDOC-CRM mapping revision: complete audit of all node types against CIDOC-CRM, CRMarchaeo, CRMinf, CRMdig, CRMsci, CRMgeo; replacement of legacy 'cidoc_s3d' pseudo-class names (invented strings without IRI or superclass declaration) with formal em:/s3d: IRIs declared as proper subclasses of CRM classes; introduction of CRMinf as primary (not alternative) for the paradata chain (ParadataNode, PropertyNode interpretive case, ExtractorNode, CombinerNode); introduction of PROV-O for AuthorNode to cover both human and AI agents; alignment with the Heritage Digital Twin Ontology (HDT-O) for containment / granularity properties; LocationNodeGroup (v1.5.3) adopted as the reference pattern (CIDOC-native composition via P2_has_type → E55 Type instances, with explicit extension_status and rationale). Companion deliverables: em.ttl (formal EM extension ontology, dereferenceable via w3id.org/em/) and hdto_extension.ttl (HDT-O granularity properties: contains_HDT, contains_SU, isPrimary). v1.5.4 added RSF (Reused Special Find — spolia) as a stratigraphic subtype, octagon with red border, family=real, is_series=false. Originating DP: DP-26 (spolia project, last DP before the EM 1.5 cut). v1.5.3 added LocationNodeGroup (E53 Place + E55 Type) for spatial / locational membership orthogonal to ActivityNodeGroup (intention) and EpochNode (time). v1.5.2 added family + is_series classification metadata on stratigraphic subtypes.",
|
|
4
4
|
"components": [
|
|
5
5
|
"CIDOC-CRM",
|
|
6
6
|
"CRMarchaeo",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"source": "https://www.w3.org/TR/prov-o/"
|
|
49
49
|
},
|
|
50
50
|
"CRMem": {
|
|
51
|
-
"version": "1.6.
|
|
51
|
+
"version": "1.6.26",
|
|
52
52
|
"source": "internal em.ttl / hdto_extension.ttl companion ontologies"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
@@ -1350,6 +1350,7 @@
|
|
|
1350
1350
|
"residency": "em:residency",
|
|
1351
1351
|
"packaging": {"rdf": "em:packaging", "note": "1.6.23 (dev29): how the bytes are packed (file | file_set | directory | archive | datablock, the dtcstamp PACKAGINGS), DECLARED — never the effective_packaging fallback. Emitted only when recorded. 1.6.24 (dev30): the vocabulary with its labels lives here (values, labels; translations in datamodel_translations.json, section packagings), so an interface reads the name of a packaging from the datamodel instead of its own words.", "values": {"file": "One file: the resource is its bytes.", "file_set": "A few files that call each other (obj → mtl → textures, gltf → bin, shp and companions): the resource is the list of its members, stamped by the digest of that list.", "directory": "A folder: the resource is everything under it, members reached by has_file with their relative path.", "archive": "One file that packs others (zip, .3tz): the resource is the archive's bytes.", "datablock": "One object inside a file (a blend:// locator): comparable by a structural digest, not verifiable by downloading."}, "labels": {"file": "File", "file_set": "File set", "directory": "Folder", "archive": "Archive", "datablock": "Blender object"}},
|
|
1352
1352
|
"tier": {"rdf": "em:tier", "note": "1.6.23 (dev29): master | distribution | …, declared; emitted only when recorded."},
|
|
1353
|
+
"master_kind": {"rdf": "em:masterKind", "note": "1.6.42 (6 Nov 2026, MICRO-TIMBRA-MASTER, E.D. 30 Oct 2026 «Timbrare i master, e due tipi di master»): WHICH master, when tier is master — DECLARED, emitted only when recorded; refused on a distribution (ResourceNode.set_master_kind). Unstated, a reader may decide from the textures (s3dgraphy.resources.master_stamp.master_kind: textured → complete, untextured → very_high_resolution), a reading never written as a fact. The stamp carries it as self.master_kind beside self.tier.", "values": {"very_high_resolution": "The densest geometry the survey gave, often with no texture: the mesh of the dense reconstruction, or a dense cloud. A master: nothing remakes it by a button.", "complete": "The textured master: born from the REDUCED mesh and the aligned photographs — a texturing step with two inputs, not a linear derivative of the very high resolution master."}, "labels": {"very_high_resolution": "Very high resolution", "complete": "Complete (textured)"}},
|
|
1353
1354
|
"digest_covers": {"rdf": "em:digestCovers", "note": "1.6.23 (dev29): what em:checksum covers — artifact (the bytes), payload, members (the canonical list of the members of a file_set, dtcstamp.members_digest). add_resource writes members for a file_set; a legacy members_digest equal to the checksum leaves as members."},
|
|
1354
1355
|
"members_digest": {"rdf": "em:membersDigest", "note": "1.6.24 (dev30, decided by E.D. 2 Oct 2026, D4): NOT A SECOND FIELD — the digest of a file_set is its checksum with digest_covers members (dtcstamp.members_digest of the list of members, A1 of dev29). In RDF it leaves ALSO as em:membersDigest, a predicate of its own, so a reader tells the digest of a set from the digest of a file without reading em:checksum and em:digestCovers together; those two stay, for compatibility. A TTL carrying only em:membersDigest comes back as checksum + digest_covers members."},
|
|
1355
1356
|
"content_digest": {"rdf": "em:contentDigest", "note": "1.6.23 (dev29): the digest of the CONTENT of a tree (a folder or its .3tz), dtcstamp.content_digest — the same for both forms. 1.6.24 (dev30, decided by E.D. 2 Oct 2026, D7): also the digest of the DATA of a master that lives inside another file — for a Metashape model (a datablock, psx://) the sha256 of its mesh.ply inside the project's model.zip, written by importer.metashape_project. It is COMPARED (has the master changed?), never verified by downloading, and so it is never the checksum, which is the digest of bytes one can fetch."},
|
|
@@ -2256,7 +2256,8 @@ class RDFExporter:
|
|
|
2256
2256
|
@staticmethod
|
|
2257
2257
|
def _emit_resource_packing(node_iri: URIRef, data: Dict[str, Any],
|
|
2258
2258
|
ctx) -> None:
|
|
2259
|
-
for key, pred in (("packaging", EM.packaging), ("tier", EM.tier)
|
|
2259
|
+
for key, pred in (("packaging", EM.packaging), ("tier", EM.tier),
|
|
2260
|
+
("master_kind", EM.masterKind)):
|
|
2260
2261
|
value = data.get(key)
|
|
2261
2262
|
if value:
|
|
2262
2263
|
ctx.add((node_iri, pred, Literal(str(value))))
|