s3dgraphy 1.6.0.dev37__tar.gz → 1.6.0.dev39__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.dev37/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev39}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/pyproject.toml +1 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/datamodel_translations.json +21 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em.ttl +1 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_qualia_types.json +26 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_state_symbols.json +13 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/node_registry.generated.json +1 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +3 -3
- s3dgraphy-1.6.0.dev39/src/s3dgraphy/JSON_config/version_for_cases.json +580 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/__init__.py +1 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/api.py +54 -2
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/container.py +2 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/crdt.py +69 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/rdf_exporter.py +36 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/emjson_importer.py +16 -1
- s3dgraphy-1.6.0.dev39/src/s3dgraphy/labels.py +253 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/emdb/usm_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/template_emdb_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/merge/graph_merger.py +24 -12
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/locate.py +46 -6
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/versions.py +140 -7
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy.egg-info/SOURCES.txt +5 -0
- s3dgraphy-1.6.0.dev39/tests/test_alternative_labels.py +138 -0
- s3dgraphy-1.6.0.dev39/tests/test_edge_outside_graph.py +120 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_lod_levels.py +22 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_one_resolver.py +43 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_qualia_dai_d7_d8.py +3 -3
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_resource_file_node.py +3 -3
- s3dgraphy-1.6.0.dev39/tests/test_version_for.py +129 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/README.md +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/acquisition/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/acquisition/acquire.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/acquisition/descriptor.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/acquisition/mapping.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/ai_validation.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/annotation/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/annotation/paradata.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/annotation/reading.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/classification.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/contract/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/contract/connector.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/contract/consumer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/contract/core.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/contract/reference.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dissemination.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/capture.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/corpus.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/devices.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/ingest.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/dtc/residency.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/edges/connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/editorial.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/html_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/json_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/aton.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/gltf.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/migrate.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/proxy.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/store_backed.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/geometry/wkt.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/graph.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/iiif.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/base_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/csv_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/import_graphml.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/rdf_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/sheet_header.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/source_text.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/importer/xml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/language.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/authoring.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/narrative/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/narrative/bake.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/narrative/generation.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/narrative/query.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/narrative/registry.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/narrative/site_story.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/dtc_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/group_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/project_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/resource_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/study_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/nodes/translation_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/ownership.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/photogrammetry/delta.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/project_tree.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/publication.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/addresses.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/files.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/resources/tiles3tz.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/rights.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/shelf/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/shelf/core.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/stamp/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/stamp/absorb.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/stamp/emit.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/stamp/hints.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/stamp/identity.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/study.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/deliverable_report.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/tools/wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/translation.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/zero_hour.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy.egg-info/requires.txt +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_acquisition_fs.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_add_resource.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_ai_validation_nodes.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_api_surface.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_asset_dtc_protocol.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_asset_versions.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_aton_shapes.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_attach_only.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_authority_projection.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_authority_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_blend_locator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_canonical_document_rename.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_canvas_metadata_import.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_capture_acquisition.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_capture_rdf_class.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_chronology_on_request.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_coating_unit.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_connection_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_consumer_drift.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_container.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_container_layouts.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_containment_tpq.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_contract.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_contract_consumer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_convert_command.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_crdt.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_datamodel_fingerprint.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_datamodel_i18n.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_deterministic_ids.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_em_sourcelist.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_file_set_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_graphml_without_a_database.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_image_set_texturing.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_not_georeferenced.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_one_act_n_outputs.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev29_ttl_round_trip.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dev30_decisions.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_devices.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dissemination_tombstones.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dove_sta_il_testo.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dtc_corpus.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dtc_ingest.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dtc_neighbourhood.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dtc_projection.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_dtc_residency.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_edge_ui_phrases.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_editorial.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_emjson_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_emjson_schema_version.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_epoch_undated_import.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_explicit_node_type_marker.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_extracted_from_unit.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_fmpxml_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_fs_backend.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_functional_units.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_georeference_scene.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_gltf_stitch.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_glyph_paths.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_graph_indices_edges.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_graph_scope_migration.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_hdto_projection.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_header_key_aliases.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_i_generi_dei_passi.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_iiif.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_il_modo_d_accesso.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_il_modo_dal_relay.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_il_proprietario_si_legge.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_il_riallineamento.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_importer_edge_hygiene.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_ipynb_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_la_lingua_alla_nascita.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_la_lingua_dei_dati.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_la_lingua_nell_op.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_la_riga_d_intestazione.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_latex_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_le_traduzioni.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_lossless_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_mapping_authoring.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_mapping_csv_and_relations.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_masonry_unit.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_material_color.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_merge_conflicts.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_metashape_project.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_migrate_legacy_proxy.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_minio_backend.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_authorship.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_bake_docx.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_figures.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_generation.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_mentions.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_node.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_query.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_scaffolder.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_site_place.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_narrative_unvalidated_export.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_node_datamodel_registry.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_node_finder.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_node_type_map_integrity.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_one_spelling_writers.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_op_vocabulary.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_photogrammetry_delta.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_physical_relation_spellings.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_piu_indirizzi.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_promotion.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_property_owners.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_proxy_resource.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_proxy_retype.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_psx_locator.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_pyarchinit_tier2.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_rdf_embedding.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_rdf_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_rdf_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reading_coords.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reading_glb.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reading_migration.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reading_place.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reading_rdf.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_recompute_warnings.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_release.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reproject.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_resource_files_implicit.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_resource_layer.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_resource_representations.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_resource_revision.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_resource_tier.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_reverse_edges.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_rm_container_node_group.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_semantic_purity.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_shelf.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_shelf_facets.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_shelf_hatting.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_shelf_role_uri_table.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_shipped_mappings.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_source_list_mapping.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_source_text.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_stamp.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_stamp_hints.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_stamp_title_description.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_store_backed_geometry.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_stratiminer_api.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_study_metadata.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_tileset_resource.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_ttl_roundtrip.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_unit_definition.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_verifica_provenance.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_visual_assets.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_wheel_drift.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_xlsx_importer_graph_init.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/tests/test_xlsx_source_column.py +0 -0
- {s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/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.dev39
|
|
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.dev39"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -2324,6 +2324,27 @@
|
|
|
2324
2324
|
"de": "Ästhetischer Wert"
|
|
2325
2325
|
}
|
|
2326
2326
|
},
|
|
2327
|
+
"alternative_label": {
|
|
2328
|
+
"label": {
|
|
2329
|
+
"en": "Alternative Label",
|
|
2330
|
+
"validated_it": false,
|
|
2331
|
+
"validated_el": false,
|
|
2332
|
+
"validated_he": false,
|
|
2333
|
+
"validated_es": false,
|
|
2334
|
+
"validated_pl": false,
|
|
2335
|
+
"validated_ro": false,
|
|
2336
|
+
"validated_fr": false,
|
|
2337
|
+
"validated_de": false,
|
|
2338
|
+
"it": "Etichetta alternativa",
|
|
2339
|
+
"el": "Εναλλακτική ετικέτα",
|
|
2340
|
+
"he": "תווית חלופית",
|
|
2341
|
+
"es": "Etiqueta alternativa",
|
|
2342
|
+
"pl": "Etykieta alternatywna",
|
|
2343
|
+
"ro": "Etichetă alternativă",
|
|
2344
|
+
"fr": "Libellé alternatif",
|
|
2345
|
+
"de": "Alternative Bezeichnung"
|
|
2346
|
+
}
|
|
2347
|
+
},
|
|
2327
2348
|
"area": {
|
|
2328
2349
|
"label": {
|
|
2329
2350
|
"en": "Area",
|
|
@@ -1010,7 +1010,7 @@ em:use
|
|
|
1010
1010
|
a owl:DatatypeProperty ;
|
|
1011
1011
|
rdfs:label "use"@en ;
|
|
1012
1012
|
rdfs:range xsd:string ;
|
|
1013
|
-
rdfs:comment "What a version of an asset is FOR, one triple per use: analysis, realtime, web, mobile_ar, print, render, preview (correspondences with Smithsonian Voyager and 3D Tiles in the datamodel's note). Maps to: node_datamodel ResourceNode.properties.use."@en .
|
|
1013
|
+
rdfs:comment "What a version of an asset is FOR, one triple per use: analysis, realtime, web, mobile_ar, print, render, preview, heriverse, aton (the last two since node datamodel 1.6.26: a version made for a viewer, the package on disk Heriverse or another ATON app opens; correspondences with Smithsonian Voyager and 3D Tiles in the datamodel's note). Maps to: node_datamodel ResourceNode.properties.use."@en .
|
|
1014
1014
|
|
|
1015
1015
|
em:trisPerM2
|
|
1016
1016
|
a owl:DatatypeProperty ;
|
{s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_qualia_types.json
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
|
-
"version": "1.6.
|
|
4
|
-
"last_updated": "2026-10-
|
|
3
|
+
"version": "1.6.7",
|
|
4
|
+
"last_updated": "2026-10-05",
|
|
5
5
|
"maintainers": ["Emanuel Demetrescu"],
|
|
6
6
|
"license": "CC-BY-SA-4.0",
|
|
7
7
|
"license_note": "Share-alike per allinearsi agli strumenti terminologici da cui questo datamodel prende gli ancoraggi (ICCD CC BY-SA 3.0 IT) e perche' una derivazione resti aperta. Gli identificatori AAT/CIDOC citati nei `mappings` sono RIFERIMENTI, non contenuto incorporato: lo share-alike non si propaga ai vocabolari altrui, che mantengono i propri termini.",
|
|
8
|
-
"changelog": "v1.6.6 (dev27, 2026-10-31, decided by E.D. 2026-10-01): cultural_interpretive.semantic.attribution gains an optional `note` in its schema and `natural_language_fields: [\"note\"]` — the object is not text, its note is, and only the note carries a language tag (rdf_exporter._Datamodel.natural_language_fields). v1.6.5 (MICRO le traduzioni, 2026-10-29, decided by E.D. 2026-10-01, domanda 3): the doubtful qualia, MEASURED. contextual.administrative.intervention_history is prose (a history of conservation interventions) and gains `natural_language: true`. provenance_history, exhibition_history, publication_history and contextual.ownership.ownership_chain are `object_chain` WITHOUT a schema: no field of theirs is declared and no code reads a structure, so what a PropertyNode stores is ONE string (the chain as written) — the whole string is marked. cultural_interpretive.semantic.attribution is an `object` WITH separate fields (attributed_to: an E39 Actor reference, attribution_type: a closed list, confidence: a float): none of them is a note, so nothing is marked — the rule is to mark only the note, and this object has none. Its value today travels as one string (\"attributed to Phidias\") and leaves untagged; marking it would need a `note` field in its schema, which is E.D.'s to add. inventory_number stays a code. v1.6.4 (MICRO la lingua dei dati, 2026-10-27, decided by E.D. 2026-09-28): cultural_interpretive.iconographic.narrative_content gains `natural_language: true` — its value is prose and leaves in RDF with its language tag (crm:P90_has_value \"la guerra di Troia\"@it), the language coming from the property node's data.lang, else the study's working language. data_type alone does not say it: inventory_number is a string too, and it is a CODE, so it is not marked and never tagged. No other quale marked: the ones whose value may be prose (intervention_history, attribution, the *_history and ownership_chain object chains) are waiting for E.D. v1.6.3 (MICRO em.ttl nel datamodel, 2026-10-26, decided by E.D. 2026-10-01 — every em: term of em.ttl is cited by a datamodel): epistemic.confidence.confidence_level.mappings gains specialised_alternative 'em:confidenceLevel', the em.ttl literal form of the same scalar, declared and NOT emitted (the exporter keeps crminf:I6_Belief_Value via J5). Mapping text only, no quale changed. v1.6.2: added two descriptive qualia of the stratigraphic unit asked for by the DAI record (iDAI.field Layer, D7/D8) — proposte da Cowork per E.D., 28 set 2026, dalla scheda DAI: `feature_shape` (spatial; the shape in plan or section named with a term, AAT 300056273, E55_Type) and `boundary_distinctness` (material; how sharp the limits are: abrupt / clear / gradual / diffuse, E55_Type, no AAT evident). Both controlled vocabularies with indicative seed values; templates declare their own. v1.6.1: added the spatial qualia `geometry` — the PROXY as a quale. The geometry-without-material of a unit becomes a PropertyNode whose payload is a SemanticShapeNode (has_semantic_shape), so the proxy inherits the paradata chain a lone node could not have, and one proxy can be synthesised from several sources. CIDOC default crmgeo:SP5_Geometric_Place_Expression, flagged `confirm_with: Felicetti` (E36 is the alternative, to be decided together with em:AnnotationRegion). v1.6.0: version realigned to the EM language version (EM 1.6) — supersedes the standalone 4.x line (last was 4.2), so all EM JSON config files now share the 1.6.x scheme. Added optional `rationale` + `example` fields to qualia entries (a plain-language why + a concrete case), shown by the EMStudio vocabulary picker when creating a PropertyNode. Seeded for the temporal qualia (absolute_time_start / absolute_time_end / dating_method); to be filled in for the rest incrementally. Prior (4.x) history: v4.2 added rationale/example scaffolding; v4.1: expanded spatial elevation qualia for pyArchInit us_table quote (all E54_Dimension): elevation_relative, elevation_min_absolute, elevation_max_absolute, elevation_min_relative, elevation_max_relative, elevation_min_usm, elevation_max_usm (the generic 'elevation' = absolute MASL, used by quota_abs). Each pyArchInit quota column maps to its own qualia id so they don't collide on the single-PropertyNode-per-property_name rule. v4.0: verified all v3.0 CIDOC-CRM mappings (correct). Expanded with: volume, area, circumference in dimensional; color, texture, finish, patina, hardness, porosity in material; damage_type, fragility, completeness in state; tool_marks, joining_technique in technical; bounding_box, footprint_area in spatial; duration, terminus_post_quem, terminus_ante_quem, relative_chronology in temporal; ceremonial_function, ritual_function, defensive_function, domestic_function, symbolic_function in telic; school, workshop, period_attribution in stylistic. NEW subcategories: iconographic + semantic under cultural_interpretive (iconographic_subject, narrative_content, iconographic_program, aesthetic_value, religious_significance, monumental_status, attribution). Added provenance_history, exhibition_history, publication_history under administrative; NEW ownership subcategory (current_custodian, ownership_chain). NEW CATEGORY epistemic — meta-qualia central to EM paradata model (confidence_level, certainty_level, uncertainty_factors, methodology_used, validation_method, source_quality, primary_contributor, review_status, last_modified)."
|
|
8
|
+
"changelog": "v1.6.7 (MICRO le decisioni della sera, 2026-10-05, asked by E.D. 2026-10-04): contextual.administrative gains `alternative_label` — another label of the element in a source (a numbering of another excavation, of a thesis), analogous to skos:altLabel, projected as crm:P1_is_identified_by → E41_Appellation. The first quale declared `repeatable: true`: one PropertyNode per label, never a list in one value, and the merger keys it with its value (two labels are two claims). Its source is the ordinary paradata chain (property has_data_provenance → extractor extracted_from → document); an optional data.scheme names the numbering. The element's own label (area.settore.tipoNumero) is unchanged. s3dgraphy.labels writes and reads them. v1.6.6 (dev27, 2026-10-31, decided by E.D. 2026-10-01): cultural_interpretive.semantic.attribution gains an optional `note` in its schema and `natural_language_fields: [\"note\"]` — the object is not text, its note is, and only the note carries a language tag (rdf_exporter._Datamodel.natural_language_fields). v1.6.5 (MICRO le traduzioni, 2026-10-29, decided by E.D. 2026-10-01, domanda 3): the doubtful qualia, MEASURED. contextual.administrative.intervention_history is prose (a history of conservation interventions) and gains `natural_language: true`. provenance_history, exhibition_history, publication_history and contextual.ownership.ownership_chain are `object_chain` WITHOUT a schema: no field of theirs is declared and no code reads a structure, so what a PropertyNode stores is ONE string (the chain as written) — the whole string is marked. cultural_interpretive.semantic.attribution is an `object` WITH separate fields (attributed_to: an E39 Actor reference, attribution_type: a closed list, confidence: a float): none of them is a note, so nothing is marked — the rule is to mark only the note, and this object has none. Its value today travels as one string (\"attributed to Phidias\") and leaves untagged; marking it would need a `note` field in its schema, which is E.D.'s to add. inventory_number stays a code. v1.6.4 (MICRO la lingua dei dati, 2026-10-27, decided by E.D. 2026-09-28): cultural_interpretive.iconographic.narrative_content gains `natural_language: true` — its value is prose and leaves in RDF with its language tag (crm:P90_has_value \"la guerra di Troia\"@it), the language coming from the property node's data.lang, else the study's working language. data_type alone does not say it: inventory_number is a string too, and it is a CODE, so it is not marked and never tagged. No other quale marked: the ones whose value may be prose (intervention_history, attribution, the *_history and ownership_chain object chains) are waiting for E.D. v1.6.3 (MICRO em.ttl nel datamodel, 2026-10-26, decided by E.D. 2026-10-01 — every em: term of em.ttl is cited by a datamodel): epistemic.confidence.confidence_level.mappings gains specialised_alternative 'em:confidenceLevel', the em.ttl literal form of the same scalar, declared and NOT emitted (the exporter keeps crminf:I6_Belief_Value via J5). Mapping text only, no quale changed. v1.6.2: added two descriptive qualia of the stratigraphic unit asked for by the DAI record (iDAI.field Layer, D7/D8) — proposte da Cowork per E.D., 28 set 2026, dalla scheda DAI: `feature_shape` (spatial; the shape in plan or section named with a term, AAT 300056273, E55_Type) and `boundary_distinctness` (material; how sharp the limits are: abrupt / clear / gradual / diffuse, E55_Type, no AAT evident). Both controlled vocabularies with indicative seed values; templates declare their own. v1.6.1: added the spatial qualia `geometry` — the PROXY as a quale. The geometry-without-material of a unit becomes a PropertyNode whose payload is a SemanticShapeNode (has_semantic_shape), so the proxy inherits the paradata chain a lone node could not have, and one proxy can be synthesised from several sources. CIDOC default crmgeo:SP5_Geometric_Place_Expression, flagged `confirm_with: Felicetti` (E36 is the alternative, to be decided together with em:AnnotationRegion). v1.6.0: version realigned to the EM language version (EM 1.6) — supersedes the standalone 4.x line (last was 4.2), so all EM JSON config files now share the 1.6.x scheme. Added optional `rationale` + `example` fields to qualia entries (a plain-language why + a concrete case), shown by the EMStudio vocabulary picker when creating a PropertyNode. Seeded for the temporal qualia (absolute_time_start / absolute_time_end / dating_method); to be filled in for the rest incrementally. Prior (4.x) history: v4.2 added rationale/example scaffolding; v4.1: expanded spatial elevation qualia for pyArchInit us_table quote (all E54_Dimension): elevation_relative, elevation_min_absolute, elevation_max_absolute, elevation_min_relative, elevation_max_relative, elevation_min_usm, elevation_max_usm (the generic 'elevation' = absolute MASL, used by quota_abs). Each pyArchInit quota column maps to its own qualia id so they don't collide on the single-PropertyNode-per-property_name rule. v4.0: verified all v3.0 CIDOC-CRM mappings (correct). Expanded with: volume, area, circumference in dimensional; color, texture, finish, patina, hardness, porosity in material; damage_type, fragility, completeness in state; tool_marks, joining_technique in technical; bounding_box, footprint_area in spatial; duration, terminus_post_quem, terminus_ante_quem, relative_chronology in temporal; ceremonial_function, ritual_function, defensive_function, domestic_function, symbolic_function in telic; school, workshop, period_attribution in stylistic. NEW subcategories: iconographic + semantic under cultural_interpretive (iconographic_subject, narrative_content, iconographic_program, aesthetic_value, religious_significance, monumental_status, attribution). Added provenance_history, exhibition_history, publication_history under administrative; NEW ownership subcategory (current_custodian, ownership_chain). NEW CATEGORY epistemic — meta-qualia central to EM paradata model (confidence_level, certainty_level, uncertainty_factors, methodology_used, validation_method, source_quality, primary_contributor, review_status, last_modified)."
|
|
9
9
|
},
|
|
10
10
|
"qualia_categories": [
|
|
11
11
|
{
|
|
@@ -1071,6 +1071,29 @@
|
|
|
1071
1071
|
],
|
|
1072
1072
|
"_description_todo": "This subcategory shipped with no description, so its tooltip was empty in the EMStudio vocabulary picker (the only one of 17). The three proposals above match the register of the sibling subcategories — short noun phrase; the longer one mirrors `ownership`, which already defines itself AGAINST this one ('distinct from administrative qualia which cover legal/inventory aspects'). Pick one, move it into `description`, and delete these two keys.",
|
|
1073
1073
|
"qualia": [
|
|
1074
|
+
{
|
|
1075
|
+
"id": "alternative_label",
|
|
1076
|
+
"name": "Alternative Label",
|
|
1077
|
+
"description": "Another label by which the element is known in a source — a numbering of another excavation, of a thesis, of an archive — with that source as paradata. Repeatable: one property per label. The element's own label (the rule area.settore.tipoNumero) does not change.",
|
|
1078
|
+
"mappings": {
|
|
1079
|
+
"cidoc_crm": "E41_Appellation",
|
|
1080
|
+
"unit_predicate": "crm:P1_is_identified_by",
|
|
1081
|
+
"skos": "skos:altLabel",
|
|
1082
|
+
"mapping_note": "The label is an appellation of the unit (E41, reached with P1_is_identified_by), the same relation skos:altLabel states for a concept; its source is the ordinary paradata chain (has_data_provenance → extractor → extracted_from → the document that uses the label), so it is cited like every other assertion. A numbering it belongs to is data.scheme."
|
|
1083
|
+
},
|
|
1084
|
+
"data_type": "string",
|
|
1085
|
+
"repeatable": true,
|
|
1086
|
+
"schema": {
|
|
1087
|
+
"label": "string",
|
|
1088
|
+
"scheme": "string"
|
|
1089
|
+
},
|
|
1090
|
+
"rationale": "Units of one site are often named differently by the people who dug and studied it: the oldest excavation names them without numbers, a later one numbers them, a thesis numbers them again where the official numbering is missing (E.D., Templu Mare). Keeping every such label, each with the source that uses it, is what lets a reader of any of those publications find the unit — and the search finds them.",
|
|
1091
|
+
"example": "1.US10 is «US 1004» in the 2013 excavation report (scheme «scavo 2013») and «A.12» in Demetrescu's thesis (scheme «tesi Demetrescu»): two alternative_label properties, each with an extractor from its document.",
|
|
1092
|
+
"expected_extractors": [
|
|
1093
|
+
"archival_research",
|
|
1094
|
+
"bibliographic_research"
|
|
1095
|
+
]
|
|
1096
|
+
},
|
|
1074
1097
|
{
|
|
1075
1098
|
"id": "inventory_number",
|
|
1076
1099
|
"name": "Inventory Number",
|
{s3dgraphy-1.6.0.dev37 → s3dgraphy-1.6.0.dev39}/src/s3dgraphy/JSON_config/em_state_symbols.json
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_version": "1.
|
|
2
|
+
"_version": "1.1.0",
|
|
3
3
|
"_note": "I1 (decided by E.D., 4 Oct 2026) · ONE list of the STATES the EM tools show, with the SYMBOL of each and its MEANING. What is standardised is the symbol and what it means, not the final form: colour, stroke and style stay each tool's (EMStudio, EM Tools, StratiField draw their own version of the glyph). Each tool tests that every state here has its sign and that it shows no state that is not here. The file states are those of the one resolver (s3dgraphy.resources.locate.STATES). Vendored by EMStudio's ./em.sh sync next to em_visual_rules.json.",
|
|
4
4
|
"families": {
|
|
5
5
|
"file": "Where the bytes of a resource are (the resolver, R1)",
|
|
@@ -154,6 +154,18 @@
|
|
|
154
154
|
"en": "No room: the graph is a file on this computer."
|
|
155
155
|
}
|
|
156
156
|
},
|
|
157
|
+
"room.paired": {
|
|
158
|
+
"family": "room",
|
|
159
|
+
"glyph": "⇄",
|
|
160
|
+
"label": {
|
|
161
|
+
"it": "con l'altra app",
|
|
162
|
+
"en": "with the other app"
|
|
163
|
+
},
|
|
164
|
+
"meaning": {
|
|
165
|
+
"it": "Nessuna stanza: EMStudio e Blender su questo computer lavorano sullo stesso grafo (una persona, due schermi); le modifiche vanno all'altra app.",
|
|
166
|
+
"en": "No room: EMStudio and Blender on this computer work on the same graph (one person, two screens); the edits go to the other app."
|
|
167
|
+
}
|
|
168
|
+
},
|
|
157
169
|
"room.read_only": {
|
|
158
170
|
"family": "room",
|
|
159
171
|
"glyph": "⊘",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "by `python -m s3dgraphy.tools.sync_node_datamodel` — DO NOT hand-edit. The flat class hierarchy (parent/node_type/description) is derived from the Python Node subclasses; hand-authored semantics and CIDOC mappings live in s3Dgraphy_node_datamodel.json.",
|
|
3
|
-
"s3Dgraphy_data_model_version": "1.6.
|
|
3
|
+
"s3Dgraphy_data_model_version": "1.6.26",
|
|
4
4
|
"node_types": {
|
|
5
5
|
"ActivityNodeGroup": {
|
|
6
6
|
"parent": "GroupNode",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"s3Dgraphy_data_model_version": "1.6.
|
|
3
|
-
"description": "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.26",
|
|
3
|
+
"description": "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",
|
|
@@ -1101,7 +1101,7 @@
|
|
|
1101
1101
|
"note": "1.6.21 (dev27, decided by E.D. 2026-10-01, «il testo, la risorsa e la selezione»): on a RESOURCE, data.lang is the language of the CONTENT of the file — what it is made of — not the language of the resource's own description: a Latin PDF does not make its Italian description Latin. One BCP 47 tag, or a sorted list for more («latino e italiano a fronte» = [\"it\", \"la\"]), written by s3dgraphy.language.set_content_languages. It does NOT enter the cascade of the language of the texts (language.node_language skips resources and their files), it is not written at birth, and it leaves as one dcterms:language per tag instead of em:originalLanguage. The DocumentNode is the WORK, with no text in its fields; the resources are its manifestations, the text is in the file; the ExtractorNode is the selection, with the original words of the passage in its description and its own data.lang."
|
|
1102
1102
|
},
|
|
1103
1103
|
"lod_level": {"rdf": "em:lodLevel", "pattern": "^lod(0|[1-9][0-9]*)$", "note": "1.6.25 (D1, decided by E.D. 4 Oct 2026, TASSONOMIA-TIER-3D §2a): the LEVEL of a version of an asset, an ordinal INSIDE ONE derivation chain. The master is tier = master and has no level; lod0 is the first version derived from it that one can work on (textured with the Demetrescu-D'Annibale formula: 1.26 mm per texel side, 4096² atlases, UV ratio 0.6 — Demetrescu et al. 2026, Remote Sensing 18, 203, §2 and §4.7); lod1…lodN count the lod_generation steps from LOD0 (as 3DSC's LOD generator does), a version that only reduces its textures included. COMPUTED from the chain (dtc_derived_from + lod_generation, resources.versions.lod_level_of), never stored in the graph: WRITTEN only when the graph leaves (em.json, manifest, record, RDF) and at load computed again and compared, like a checksum (check_lod_levels): a difference is a line in the Log. Why still «measures, not an enumeration of levels»: the etiquette orders one chain and means nothing outside it; the measures compare chains. Engines' automatic LOD (Nanite) is one more way to show a version and does not replace the chain."},
|
|
1104
|
-
"use": {"rdf": "em:use", "cardinality": "list", "values": {"analysis": "Study and measure on the model: digital autopsy of the units, survey, sections, scientific annotation.", "realtime": "Interactive exploration in an engine (Unreal, Unity, Godot, EMviq), desktop and HMD, open world.", "web": "Viewing in the browser (ATON, Heriverse, Voyager), streamed too.", "mobile_ar": "Augmented reality and mobile devices.", "print": "3D printing, physical replica.", "render": "Non-interactive products: plates, sections, reconstructive views, CGI video.", "preview": "Light preview for catalogues and records."}, "labels": {"analysis": "Analysis", "realtime": "Real time", "web": "Web", "mobile_ar": "Mobile / AR", "print": "Print", "render": "Render", "preview": "Preview"}, "_note": "1.6.25 (D1, TASSONOMIA-TIER-3D §2b): what a version is FOR, a LIST (one version can serve the browser and the engine — unlike Voyager, which gives one usage per derivative). Correspondences, from the taxonomy's table: analysis — Voyager none (Editorial3D/Highest undocumented), 3D Tiles none; realtime — Voyager usage App3D; web — Voyager usage Web3D with quality Low/Medium/High, 3D Tiles: the tileset is the usual container and the level is chosen by geometricError; mobile_ar — Voyager quality AR and usage iOSApp3D; print — Voyager usage Print3D; render — Voyager usage Image2D (the correspondence is ours, not Voyager's); preview — Voyager quality Thumb. 'archive' is left out: keeping is the master's reason to be (tier = master). The older single 'purpose' of a lod_generation step is read as a one-item list when it is one of these."},
|
|
1104
|
+
"use": {"rdf": "em:use", "cardinality": "list", "values": {"analysis": "Study and measure on the model: digital autopsy of the units, survey, sections, scientific annotation.", "realtime": "Interactive exploration in an engine (Unreal, Unity, Godot, EMviq), desktop and HMD, open world.", "web": "Viewing in the browser (ATON, Heriverse, Voyager), streamed too.", "mobile_ar": "Augmented reality and mobile devices.", "print": "3D printing, physical replica.", "render": "Non-interactive products: plates, sections, reconstructive views, CGI video.", "preview": "Light preview for catalogues and records.", "heriverse": "A version made for Heriverse: the package on disk (em.json and its versions) Heriverse opens offline, or the one it takes first from the node (1.6.26, H4).", "aton": "A version made for an ATON app: the same package, for an ATON viewer other than Heriverse (1.6.26, H4)."}, "labels": {"analysis": "Analysis", "realtime": "Real time", "web": "Web", "mobile_ar": "Mobile / AR", "print": "Print", "render": "Render", "preview": "Preview", "heriverse": "Heriverse", "aton": "ATON"}, "_note": "1.6.26 (H4): heriverse and aton, a version made for a viewer; the version for a use is chosen by ONE rule, choose_version, whose cases (JSON_config/version_for_cases.json) Heriverse passes too. 1.6.25 (D1, TASSONOMIA-TIER-3D §2b): what a version is FOR, a LIST (one version can serve the browser and the engine — unlike Voyager, which gives one usage per derivative). Correspondences, from the taxonomy's table: analysis — Voyager none (Editorial3D/Highest undocumented), 3D Tiles none; realtime — Voyager usage App3D; web — Voyager usage Web3D with quality Low/Medium/High, 3D Tiles: the tileset is the usual container and the level is chosen by geometricError; mobile_ar — Voyager quality AR and usage iOSApp3D; print — Voyager usage Print3D; render — Voyager usage Image2D (the correspondence is ours, not Voyager's); preview — Voyager quality Thumb. 'archive' is left out: keeping is the master's reason to be (tier = master). The older single 'purpose' of a lod_generation step is read as a one-item list when it is one of these."},
|
|
1105
1105
|
"tris_per_m2": {"rdf": "em:trisPerM2", "note": "1.6.25 (D1): a measure of a version, computed by EMtools when the version is born. Triangles per square metre of surface: a MEASURE, with no target (Demetrescu et al. 2026 record 955–5403 on Amba Aradam)."},
|
|
1106
1106
|
"texel_density_dd": {"rdf": "em:texelDensityDD", "note": "1.6.25 (D1): a measure of a version, computed by EMtools when the version is born. The texel SIDE in mm, in the form of the Demetrescu-D'Annibale formula (reference 1.26 mm; surface / (atlases × side² × UV ratio), square root)."},
|
|
1107
1107
|
"texture_count": {"rdf": "em:textureCount", "note": "1.6.25 (D1): a measure of a version, computed by EMtools when the version is born. How many texture atlases."},
|