s3dgraphy 1.6.0.dev41__tar.gz → 1.6.0.dev42__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.
Files changed (538) hide show
  1. {s3dgraphy-1.6.0.dev41/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev42}/PKG-INFO +1 -1
  2. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/pyproject.toml +1 -1
  3. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/datamodel_translations.json +53 -9
  4. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_qualia_types.json +15 -3
  5. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/__init__.py +1 -1
  6. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/graph_ingestor.py +81 -0
  7. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/datamodel_i18n.py +32 -1
  8. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
  9. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_datamodel_i18n.py +26 -0
  10. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_edge_ui_phrases.py +3 -1
  11. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_qualia_dai_d7_d8.py +3 -3
  12. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/LICENSE +0 -0
  13. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/MANIFEST.in +0 -0
  14. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/README.md +0 -0
  15. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/setup.cfg +0 -0
  16. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
  17. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
  18. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
  19. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
  20. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em.ttl +0 -0
  21. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
  22. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
  23. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
  24. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
  25. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_state_symbols.json +0 -0
  26. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
  27. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
  28. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
  29. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/node_registry.generated.json +0 -0
  30. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
  31. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
  32. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +0 -0
  33. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
  34. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -0
  35. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
  36. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
  37. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
  38. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
  39. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
  40. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
  41. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
  42. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
  43. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
  44. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
  45. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
  46. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
  47. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
  48. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
  49. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
  50. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
  51. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
  52. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
  53. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
  54. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
  55. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
  56. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
  57. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
  58. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
  59. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
  60. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
  61. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
  62. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/author_ai.svg +0 -0
  63. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
  64. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
  65. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/container.svg +0 -0
  66. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
  67. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
  68. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
  69. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
  70. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
  71. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
  72. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
  73. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
  74. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
  75. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
  76. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
  77. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
  78. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
  79. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
  80. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
  81. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +0 -0
  82. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +0 -0
  83. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +0 -0
  84. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +0 -0
  85. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +0 -0
  86. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +0 -0
  87. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +0 -0
  88. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +0 -0
  89. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/12_gnss_survey.svg +0 -0
  90. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/13_field_drawing.svg +0 -0
  91. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/14_recording_sheet.svg +0 -0
  92. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/15_decimation.svg +0 -0
  93. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/16_georeferencing.svg +0 -0
  94. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/17_format_conversion.svg +0 -0
  95. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/18_classification.svg +0 -0
  96. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/dtc/19_vectorization.svg +0 -0
  97. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
  98. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/embargo.svg +0 -0
  99. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
  100. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
  101. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
  102. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
  103. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
  104. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
  105. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
  106. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/license.svg +0 -0
  107. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
  108. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
  109. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/narrative.svg +0 -0
  110. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
  111. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
  112. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
  113. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/proxy.svg +0 -0
  114. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
  115. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
  116. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
  117. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
  118. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/resource_file.svg +0 -0
  119. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
  120. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
  121. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
  122. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
  123. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
  124. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
  125. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
  126. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/tileset.svg +0 -0
  127. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/version_gltf.svg +0 -0
  128. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/version_mesh.svg +0 -0
  129. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/version_scene.svg +0 -0
  130. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/2D/version_tiles.svg +0 -0
  131. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
  132. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
  133. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
  134. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
  135. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
  136. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
  137. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
  138. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
  139. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
  140. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
  141. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
  142. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
  143. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
  144. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
  145. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
  146. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
  147. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/JSON_config/version_for_cases.json +0 -0
  148. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/acquisition/__init__.py +0 -0
  149. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/acquisition/acquire.py +0 -0
  150. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/acquisition/descriptor.py +0 -0
  151. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/acquisition/mapping.py +0 -0
  152. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/ai_validation.py +0 -0
  153. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/annotation/__init__.py +0 -0
  154. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/annotation/migrate_reading.py +0 -0
  155. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/annotation/paradata.py +0 -0
  156. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/annotation/reading.py +0 -0
  157. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/api.py +0 -0
  158. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/__init__.py +0 -0
  159. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/resolver.py +0 -0
  160. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/snapshots/LICENSE +0 -0
  161. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -0
  162. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
  163. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
  164. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
  165. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/authorities/snapshots/provenance.json +0 -0
  166. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/classification.py +0 -0
  167. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/container.py +0 -0
  168. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/contract/__init__.py +0 -0
  169. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/contract/connector.py +0 -0
  170. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/contract/consumer.py +0 -0
  171. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/contract/core.py +0 -0
  172. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/contract/reference.py +0 -0
  173. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/crdt.py +0 -0
  174. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
  175. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/datamodel.py +0 -0
  176. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/diagnostics.py +0 -0
  177. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dissemination.py +0 -0
  178. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/__init__.py +0 -0
  179. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/capture.py +0 -0
  180. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/corpus.py +0 -0
  181. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/devices.py +0 -0
  182. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/ingest.py +0 -0
  183. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
  184. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/dtc/residency.py +0 -0
  185. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/edges/__init__.py +0 -0
  186. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/edges/connection_resolver.py +0 -0
  187. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/edges/connections_loader.py +0 -0
  188. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/edges/edge.py +0 -0
  189. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/editorial.py +0 -0
  190. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/__init__.py +0 -0
  191. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
  192. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/emjson_exporter.py +0 -0
  193. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
  194. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
  195. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
  196. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
  197. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +0 -0
  198. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
  199. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
  200. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
  201. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
  202. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
  203. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
  204. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
  205. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
  206. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
  207. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
  208. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/html_exporter.py +0 -0
  209. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
  210. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/json_exporter.py +0 -0
  211. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
  212. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/rdf_exporter.py +0 -0
  213. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
  214. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/__init__.py +0 -0
  215. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/aton.py +0 -0
  216. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/gltf.py +0 -0
  217. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/migrate.py +0 -0
  218. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/proxy.py +0 -0
  219. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/reading_glb.py +0 -0
  220. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/store_backed.py +0 -0
  221. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/geometry/wkt.py +0 -0
  222. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/graph.py +0 -0
  223. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/iiif.py +0 -0
  224. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/__init__.py +0 -0
  225. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/base_importer.py +0 -0
  226. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/csv_importer.py +0 -0
  227. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/emjson_importer.py +0 -0
  228. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/fmpxml_importer.py +0 -0
  229. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/import_graphml.py +0 -0
  230. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
  231. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/metashape_project.py +0 -0
  232. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
  233. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/qualia_importer.py +0 -0
  234. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/rdf_importer.py +0 -0
  235. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/sheet_header.py +0 -0
  236. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/source_text.py +0 -0
  237. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
  238. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
  239. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/importer/xml_importer.py +0 -0
  240. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/indices.py +0 -0
  241. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/labels.py +0 -0
  242. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/language.py +0 -0
  243. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/__init__.py +0 -0
  244. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/authoring.py +0 -0
  245. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
  246. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
  247. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
  248. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
  249. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
  250. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/registry.py +0 -0
  251. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/source_list/em_sourcelist_it.json +0 -0
  252. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -0
  253. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
  254. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
  255. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/merge/__init__.py +0 -0
  256. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/merge/graph_merger.py +0 -0
  257. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/multigraph/__init__.py +0 -0
  258. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/multigraph/multigraph.py +0 -0
  259. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/narrative/__init__.py +0 -0
  260. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/narrative/bake.py +0 -0
  261. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/narrative/generation.py +0 -0
  262. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/narrative/query.py +0 -0
  263. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/narrative/registry.py +0 -0
  264. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/narrative/site_story.py +0 -0
  265. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/__init__.py +0 -0
  266. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
  267. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/author_node.py +0 -0
  268. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/base_node.py +0 -0
  269. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/combiner_node.py +0 -0
  270. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/document_node.py +0 -0
  271. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
  272. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
  273. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/dtc_node.py +0 -0
  274. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
  275. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/embargo_node.py +0 -0
  276. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/epoch_node.py +0 -0
  277. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/extractor_node.py +0 -0
  278. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
  279. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
  280. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/graph_node.py +0 -0
  281. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/group_node.py +0 -0
  282. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/hdt_node.py +0 -0
  283. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
  284. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/license_node.py +0 -0
  285. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/narrative_node.py +0 -0
  286. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/paradata_node.py +0 -0
  287. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/project_node.py +0 -0
  288. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/property_node.py +0 -0
  289. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/representation_node.py +0 -0
  290. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/resource_file_node.py +0 -0
  291. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/resource_node.py +0 -0
  292. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
  293. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/stratigraphic_node.py +0 -0
  294. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/study_node.py +0 -0
  295. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/nodes/translation_node.py +0 -0
  296. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/ownership.py +0 -0
  297. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/paradata_view.py +0 -0
  298. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
  299. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/photogrammetry/delta.py +0 -0
  300. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/project_tree.py +0 -0
  301. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/property_source.py +0 -0
  302. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/publication.py +0 -0
  303. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/rapporti.py +0 -0
  304. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resolvers/__init__.py +0 -0
  305. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
  306. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
  307. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/__init__.py +0 -0
  308. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/addresses.py +0 -0
  309. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/files.py +0 -0
  310. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/fs_backend.py +0 -0
  311. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/locate.py +0 -0
  312. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/minio_backend.py +0 -0
  313. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/resolver.py +0 -0
  314. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/tiles3tz.py +0 -0
  315. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/resources/versions.py +0 -0
  316. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/rights.py +0 -0
  317. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/shelf/__init__.py +0 -0
  318. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/shelf/core.py +0 -0
  319. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/stamp/__init__.py +0 -0
  320. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/stamp/absorb.py +0 -0
  321. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/stamp/emit.py +0 -0
  322. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/stamp/hints.py +0 -0
  323. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/stamp/identity.py +0 -0
  324. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/study.py +0 -0
  325. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/__init__.py +0 -0
  326. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/_db_handle.py +0 -0
  327. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
  328. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/_workspace.py +0 -0
  329. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
  330. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/edge_registry.py +0 -0
  331. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/graph_projector.py +0 -0
  332. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/graphml_writer.py +0 -0
  333. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/group_projector.py +0 -0
  334. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/group_store.py +0 -0
  335. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/ingest_result.py +0 -0
  336. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/paradata_store.py +0 -0
  337. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
  338. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/rapporti.py +0 -0
  339. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/uuid7.py +0 -0
  340. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
  341. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/vocab_types.py +0 -0
  342. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/yed_classifier.py +0 -0
  343. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/yed_detector.py +0 -0
  344. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
  345. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
  346. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
  347. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
  348. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
  349. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
  350. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/temporal/__init__.py +0 -0
  351. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/temporal/inference_engine.py +0 -0
  352. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/__init__.py +0 -0
  353. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/consumer_drift.py +0 -0
  354. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/deliverable_report.py +0 -0
  355. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/glyph_sheet.py +0 -0
  356. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/glyphs_from_svg.py +0 -0
  357. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/node_finder.py +0 -0
  358. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
  359. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/tools/wheel_drift.py +0 -0
  360. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/transforms/__init__.py +0 -0
  361. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
  362. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/transforms/compact.py +0 -0
  363. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
  364. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/translation.py +0 -0
  365. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/utils/__init__.py +0 -0
  366. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/utils/utils.py +0 -0
  367. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/utils/visual_layout.py +0 -0
  368. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy/zero_hour.py +0 -0
  369. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy.egg-info/SOURCES.txt +0 -0
  370. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
  371. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy.egg-info/requires.txt +0 -0
  372. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/src/s3dgraphy.egg-info/top_level.txt +0 -0
  373. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_acquisition.py +0 -0
  374. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_acquisition_fs.py +0 -0
  375. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_add_resource.py +0 -0
  376. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_ai_validation_nodes.py +0 -0
  377. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_alternative_labels.py +0 -0
  378. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_api_surface.py +0 -0
  379. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_asset_dtc_protocol.py +0 -0
  380. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_asset_versions.py +0 -0
  381. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_aton_shapes.py +0 -0
  382. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_attach_only.py +0 -0
  383. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_authority_projection.py +0 -0
  384. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_authority_resolver.py +0 -0
  385. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_blend_locator.py +0 -0
  386. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_canonical_document_rename.py +0 -0
  387. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_canvas_metadata_import.py +0 -0
  388. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_capture_acquisition.py +0 -0
  389. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_capture_rdf_class.py +0 -0
  390. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_chronology_on_request.py +0 -0
  391. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_coating_unit.py +0 -0
  392. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_composite_node_name.py +0 -0
  393. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_connection_resolver.py +0 -0
  394. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_consumer_drift.py +0 -0
  395. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_container.py +0 -0
  396. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_container_layouts.py +0 -0
  397. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_containment_tpq.py +0 -0
  398. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_contract.py +0 -0
  399. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_contract_consumer.py +0 -0
  400. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_convert_command.py +0 -0
  401. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_crdt.py +0 -0
  402. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_cycle_message_is_cheap.py +0 -0
  403. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_datamodel_fingerprint.py +0 -0
  404. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_deterministic_ids.py +0 -0
  405. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_em_sourcelist.py +0 -0
  406. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_file_set_stamp.py +0 -0
  407. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_graphml_without_a_database.py +0 -0
  408. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_image_set_texturing.py +0 -0
  409. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_not_georeferenced.py +0 -0
  410. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_one_act_n_outputs.py +0 -0
  411. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev29_ttl_round_trip.py +0 -0
  412. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dev30_decisions.py +0 -0
  413. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_devices.py +0 -0
  414. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dissemination_tombstones.py +0 -0
  415. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dove_sta_il_testo.py +0 -0
  416. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dtc_corpus.py +0 -0
  417. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dtc_ingest.py +0 -0
  418. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dtc_neighbourhood.py +0 -0
  419. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dtc_projection.py +0 -0
  420. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_dtc_residency.py +0 -0
  421. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_edge_outside_graph.py +0 -0
  422. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_editorial.py +0 -0
  423. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_em_ttl_matches_the_datamodels.py +0 -0
  424. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_emjson_roundtrip.py +0 -0
  425. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_emjson_schema_version.py +0 -0
  426. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_epoch_properties_and_sub_epochs.py +0 -0
  427. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_epoch_undated_import.py +0 -0
  428. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_explicit_node_type_marker.py +0 -0
  429. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_extracted_from_unit.py +0 -0
  430. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_filtered_import.py +0 -0
  431. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_fmpxml_importer.py +0 -0
  432. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_fs_backend.py +0 -0
  433. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_functional_units.py +0 -0
  434. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_georeference_scene.py +0 -0
  435. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_gltf_stitch.py +0 -0
  436. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_glyph_paths.py +0 -0
  437. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_graph_helpers_indexed.py +0 -0
  438. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_graph_indices_alive.py +0 -0
  439. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_graph_indices_edges.py +0 -0
  440. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_graph_scope_migration.py +0 -0
  441. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_hdto_projection.py +0 -0
  442. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_header_key_aliases.py +0 -0
  443. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_i_generi_dei_passi.py +0 -0
  444. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_iiif.py +0 -0
  445. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_il_modo_d_accesso.py +0 -0
  446. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_il_modo_dal_relay.py +0 -0
  447. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_il_proprietario_si_legge.py +0 -0
  448. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_il_riallineamento.py +0 -0
  449. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_importer_edge_hygiene.py +0 -0
  450. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_ipynb_exporter.py +0 -0
  451. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_issue27_small_points.py +0 -0
  452. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_la_lingua_alla_nascita.py +0 -0
  453. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_la_lingua_dei_dati.py +0 -0
  454. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_la_lingua_nell_op.py +0 -0
  455. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_la_riga_d_intestazione.py +0 -0
  456. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_latex_exporter.py +0 -0
  457. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_le_traduzioni.py +0 -0
  458. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_lod_levels.py +0 -0
  459. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_lossless_roundtrip.py +0 -0
  460. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_mapping_authoring.py +0 -0
  461. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_mapping_csv_and_relations.py +0 -0
  462. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_masonry_unit.py +0 -0
  463. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_material_color.py +0 -0
  464. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_merge_conflicts.py +0 -0
  465. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_metashape_project.py +0 -0
  466. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_migrate_legacy_proxy.py +0 -0
  467. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_minio_backend.py +0 -0
  468. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_authorship.py +0 -0
  469. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_bake_docx.py +0 -0
  470. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_figures.py +0 -0
  471. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_generation.py +0 -0
  472. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_mentions.py +0 -0
  473. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_node.py +0 -0
  474. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_query.py +0 -0
  475. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_scaffolder.py +0 -0
  476. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_site_place.py +0 -0
  477. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_narrative_unvalidated_export.py +0 -0
  478. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_node_datamodel_registry.py +0 -0
  479. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_node_finder.py +0 -0
  480. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_node_type_map_integrity.py +0 -0
  481. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_one_resolver.py +0 -0
  482. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_one_spelling_writers.py +0 -0
  483. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_op_vocabulary.py +0 -0
  484. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_pg_importer.py +0 -0
  485. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_photogrammetry_delta.py +0 -0
  486. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_physical_relation_spellings.py +0 -0
  487. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_piu_indirizzi.py +0 -0
  488. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_promotion.py +0 -0
  489. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_property_as_source.py +0 -0
  490. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_property_owners.py +0 -0
  491. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_proxy_resource.py +0 -0
  492. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_proxy_retype.py +0 -0
  493. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_psx_locator.py +0 -0
  494. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_pyarchinit_tier2.py +0 -0
  495. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_rdf_embedding.py +0 -0
  496. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_rdf_reverse_edges.py +0 -0
  497. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_rdf_roundtrip.py +0 -0
  498. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reading_coords.py +0 -0
  499. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reading_glb.py +0 -0
  500. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reading_migration.py +0 -0
  501. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reading_place.py +0 -0
  502. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reading_rdf.py +0 -0
  503. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_recompute_warnings.py +0 -0
  504. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_release.py +0 -0
  505. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reproject.py +0 -0
  506. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_resource_file_node.py +0 -0
  507. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_resource_files_implicit.py +0 -0
  508. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_resource_layer.py +0 -0
  509. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_resource_representations.py +0 -0
  510. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_resource_revision.py +0 -0
  511. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_resource_tier.py +0 -0
  512. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_reverse_edges.py +0 -0
  513. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_rm_container_node_group.py +0 -0
  514. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_semantic_purity.py +0 -0
  515. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_shelf.py +0 -0
  516. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_shelf_facets.py +0 -0
  517. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_shelf_hatting.py +0 -0
  518. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_shelf_role_uri_table.py +0 -0
  519. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_shipped_mappings.py +0 -0
  520. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_source_list_mapping.py +0 -0
  521. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_source_text.py +0 -0
  522. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_stamp.py +0 -0
  523. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_stamp_hints.py +0 -0
  524. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_stamp_title_description.py +0 -0
  525. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_store_backed_geometry.py +0 -0
  526. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_stratiminer_api.py +0 -0
  527. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_study_metadata.py +0 -0
  528. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_tileset_resource.py +0 -0
  529. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_ttl_roundtrip.py +0 -0
  530. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_unit_definition.py +0 -0
  531. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_verifica_provenance.py +0 -0
  532. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_version_for.py +0 -0
  533. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_visual_assets.py +0 -0
  534. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_wheel_drift.py +0 -0
  535. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_xlsx_containment_and_unknown_bounds.py +0 -0
  536. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_xlsx_importer_graph_init.py +0 -0
  537. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/tests/test_xlsx_source_column.py +0 -0
  538. {s3dgraphy-1.6.0.dev41 → s3dgraphy-1.6.0.dev42}/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.dev41
3
+ Version: 1.6.0.dev42
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.dev41"
7
+ version = "1.6.0.dev42"
8
8
  description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "s3Dgraphy_datamodel_translations",
3
- "version": "1.8",
3
+ "version": "1.9",
4
4
  "languages": [
5
5
  "en",
6
6
  "it",
@@ -2243,43 +2243,43 @@
2243
2243
  "absolute_time_end": {
2244
2244
  "label": {
2245
2245
  "en": "Absolute Time — End",
2246
- "validated_it": false,
2246
+ "validated_it": true,
2247
2247
  "validated_el": false,
2248
2248
  "validated_he": false,
2249
2249
  "validated_es": false,
2250
2250
  "validated_pl": false,
2251
2251
  "validated_ro": false,
2252
2252
  "validated_fr": false,
2253
- "validated_de": false,
2254
- "it": "Tempo assoluto — fine",
2253
+ "validated_de": true,
2254
+ "it": "Data di fine",
2255
2255
  "el": "Απόλυτος χρόνος — Τέλος",
2256
2256
  "he": "זמן מוחלט — סיום",
2257
2257
  "es": "Tiempo absoluto — Fin",
2258
2258
  "pl": "Czas bezwzględny — koniec",
2259
2259
  "ro": "Timp absolut — sfârșit",
2260
2260
  "fr": "Temps absolu — fin",
2261
- "de": "Absolute Zeit — Ende"
2261
+ "de": "Enddatum"
2262
2262
  }
2263
2263
  },
2264
2264
  "absolute_time_start": {
2265
2265
  "label": {
2266
2266
  "en": "Absolute Time — Start",
2267
- "validated_it": false,
2267
+ "validated_it": true,
2268
2268
  "validated_el": false,
2269
2269
  "validated_he": false,
2270
2270
  "validated_es": false,
2271
2271
  "validated_pl": false,
2272
2272
  "validated_ro": false,
2273
2273
  "validated_fr": false,
2274
- "validated_de": false,
2275
- "it": "Tempo assoluto — inizio",
2274
+ "validated_de": true,
2275
+ "it": "Data di inizio",
2276
2276
  "el": "Απόλυτος χρόνος — Αρχή",
2277
2277
  "he": "זמן מוחלט — התחלה",
2278
2278
  "es": "Tiempo absoluto — Inicio",
2279
2279
  "pl": "Czas bezwzględny — początek",
2280
2280
  "ro": "Timp absolut — început",
2281
2281
  "fr": "Temps absolu — début",
2282
- "de": "Absolute Zeit — Beginn"
2282
+ "de": "Anfangsdatum"
2283
2283
  }
2284
2284
  },
2285
2285
  "access_conditions": {
@@ -8661,5 +8661,49 @@
8661
8661
  "fr": "Propriétaires non déclarés"
8662
8662
  }
8663
8663
  }
8664
+ },
8665
+ "property_names": {
8666
+ "definition": {
8667
+ "label": {
8668
+ "en": "Definition",
8669
+ "validated_it": true,
8670
+ "validated_el": false,
8671
+ "validated_he": false,
8672
+ "validated_es": false,
8673
+ "validated_pl": false,
8674
+ "validated_ro": false,
8675
+ "validated_fr": false,
8676
+ "validated_de": true,
8677
+ "it": "Definizione",
8678
+ "de": "Definition",
8679
+ "el": "Ορισμός",
8680
+ "he": "הגדרה",
8681
+ "es": "Definición",
8682
+ "pl": "Definicja",
8683
+ "ro": "Definiție",
8684
+ "fr": "Définition"
8685
+ }
8686
+ },
8687
+ "material": {
8688
+ "label": {
8689
+ "en": "Material",
8690
+ "validated_it": true,
8691
+ "validated_el": false,
8692
+ "validated_he": false,
8693
+ "validated_es": false,
8694
+ "validated_pl": false,
8695
+ "validated_ro": false,
8696
+ "validated_fr": false,
8697
+ "validated_de": true,
8698
+ "it": "Materiale",
8699
+ "de": "Material",
8700
+ "el": "Υλικό",
8701
+ "he": "חומר",
8702
+ "es": "Material",
8703
+ "pl": "Materiał",
8704
+ "ro": "Material",
8705
+ "fr": "Matériau"
8706
+ }
8707
+ }
8664
8708
  }
8665
8709
  }
@@ -1,11 +1,23 @@
1
1
  {
2
2
  "metadata": {
3
- "version": "1.6.7",
4
- "last_updated": "2026-10-05",
3
+ "version": "1.6.8",
4
+ "last_updated": "2026-10-09",
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.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)."
8
+ "changelog": "v1.6.8 (MICRO badge PD e cronologia, part 5, 2026-10-09): a top-level `property_names` block — the EM property NAMES in use that are not a quale, each with its English `name` (the source of its label in datamodel_translations.json, section `property_names`) and a `description`: `definition` (the property of the EM GraphML templates that says what the unit is, 75 PropertyNodes in the files at hand, measured) and `material` (the same fact as the quale `material_type`, under the name of the yEd tradition: `quale` says so; 26 PropertyNodes as `material` / `Material`). They give a client the readable label of a property by its name; they are NOT qualia: no mapping, no class, nothing exported to RDF changes (the exporter reads `qualia_categories` only). Keys starting with `_` are notes. 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
+ },
10
+ "property_names": {
11
+ "_note": "EM property names in use that are not a quale (v1.6.8): the readable label of a property is looked up by its name here when no quale has that id. Not vocabulary terms: no mapping, no data_type, no RDF class.",
12
+ "definition": {
13
+ "name": "Definition",
14
+ "description": "What the unit is, said in words (\"wall in opus quadratum\", \"floor layer\") — the property of the EM GraphML templates. The node's own `definition` element is its concept; this is the property a record writes."
15
+ },
16
+ "material": {
17
+ "name": "Material",
18
+ "description": "The material of the unit, under the name of the EM GraphML tradition.",
19
+ "quale": "material_type"
20
+ }
9
21
  },
10
22
  "qualia_categories": [
11
23
  {
@@ -1,4 +1,4 @@
1
- __version__ = "1.6.0.dev41"
1
+ __version__ = "1.6.0.dev42"
2
2
  __datamodel_version__ = "1.5.5" # s3Dgraphy connections datamodel version
3
3
 
4
4
  # s3Dgraphy/__init__.py
@@ -164,6 +164,54 @@ if TYPE_CHECKING:
164
164
  log = logging.getLogger("modules.s3dgraphy.sync.graph_ingestor")
165
165
 
166
166
 
167
+ #: The tables this ingestor INSERTs into with the serial, and their
168
+ #: primary key, for the realignment below.
169
+ _SERIAL_PK_TABLES = (
170
+ ("us_table", "id_us"),
171
+ ("periodizzazione_table", "id_perfas"),
172
+ )
173
+
174
+
175
+ def _resync_pg_serial_sequences(conn, handle) -> None:
176
+ """Realign each serial sequence to ``MAX(pk)`` before writing.
177
+
178
+ A restored PostgreSQL dump leaves its sequences behind the data —
179
+ ``pg_restore`` copies the primary keys and does not reset them — so
180
+ the first auto-key INSERT asks for a value the table already holds
181
+ and PostgreSQL raises ``UniqueViolation`` on the primary key:
182
+ creating the epochs of a new site died on
183
+ ``periodizzazione_table_pkey`` and took the whole ingest with it.
184
+
185
+ ``setval`` is not transactional, so the correction stays even when
186
+ the ingest afterwards rolls back (a dry run, or an error). That is
187
+ the right outcome either way: ``MAX(pk)`` is the value the sequence
188
+ should have had. It reads no row and writes none, so nothing that
189
+ is already in the table moves or is renumbered.
190
+
191
+ A no-op on SQLite, whose ``AUTOINCREMENT`` corrects itself, and
192
+ best-effort everywhere: a schema without one of these tables (the
193
+ minimal ones the tests build) must not block the ingest.
194
+ """
195
+ if not getattr(handle, "is_postgres", False):
196
+ return
197
+ for table, pk in _SERIAL_PK_TABLES:
198
+ # One SAVEPOINT each: in PostgreSQL a failed statement aborts
199
+ # the whole transaction, so a plain try/except would not
200
+ # recover — every later INSERT would fail with "current
201
+ # transaction is aborted". begin_nested() lets a missing table,
202
+ # column or sequence roll back just this savepoint and leaves
203
+ # the ingest transaction intact.
204
+ try:
205
+ with conn.begin_nested():
206
+ conn.execute(text(
207
+ "SELECT setval("
208
+ "pg_get_serial_sequence(:table, :pk), "
209
+ "GREATEST((SELECT COALESCE(MAX(%s), 0) FROM %s), 1))"
210
+ % (pk, table)), {"table": table, "pk": pk})
211
+ except Exception: # pragma: no cover - housekeeping, never fatal
212
+ log.debug("sequence of %s.%s left as it was", table, pk)
213
+
214
+
167
215
  class GraphIngestor:
168
216
  """Persist a s3dgraphy Graph back to the PyArchInit SQL tables.
169
217
 
@@ -391,6 +439,12 @@ class GraphIngestor:
391
439
  # _DryRunRollback sentinel to force rollback at the end.
392
440
  try:
393
441
  with handle.engine.begin() as conn:
442
+ # Before anything is written: a restored dump's sequences sit
443
+ # behind its rows, and the first INSERT with the serial would
444
+ # collide on the primary key. Runs in a dry run too, which
445
+ # executes the INSERTs before rolling back and would
446
+ # otherwise crash on the preview.
447
+ _resync_pg_serial_sequences(conn, handle)
394
448
  # Ensure site_table has a row for `sito` — create if missing.
395
449
  count_row = conn.execute(
396
450
  text("SELECT COUNT(*) FROM site_table WHERE sito = :sito"),
@@ -416,6 +470,8 @@ class GraphIngestor:
416
470
  type_name = type(node).__name__
417
471
  if type_name in _NON_STRAT_TYPES:
418
472
  continue
473
+ if _is_synthetic_node(node):
474
+ continue
419
475
  attrs = dict(getattr(node, "attributes", None) or {})
420
476
  # Look up by node_uuid. Prefer the explicit attribute
421
477
  # (set by GraphProjector._propagate_node_uuid_and_us);
@@ -541,6 +597,8 @@ class GraphIngestor:
541
597
  type_name = type(node).__name__
542
598
  if type_name in _NON_STRAT_TYPES:
543
599
  continue
600
+ if _is_synthetic_node(node):
601
+ continue
544
602
  attrs = dict(getattr(node, "attributes", None) or {})
545
603
  # Same priority as the detection loop above:
546
604
  # explicit attrs.node_uuid wins (projector-built graphs),
@@ -1056,6 +1114,23 @@ def _values_equal(col: str, a, b) -> bool:
1056
1114
  return str(a) == str(b)
1057
1115
 
1058
1116
 
1117
+ def _is_synthetic_node(node) -> bool:
1118
+ """True for a materialised continuity diamond, by name.
1119
+
1120
+ ``transforms.materialize_continuity`` names them
1121
+ ``_synth_BR_<label>``, and a round trip through GraphML or em.json can
1122
+ hand one back as a plain stratigraphic unit: the class is gone and the
1123
+ name is all that is left to recognise it by. Writing it as a unit gave
1124
+ rows like ``us = '_synth_BR_1'``.
1125
+ """
1126
+ for valore in (getattr(node, "name", None),
1127
+ getattr(node, "node_id", None),
1128
+ (getattr(node, "attributes", None) or {}).get("us")):
1129
+ if valore is not None and str(valore).startswith("_synth"):
1130
+ return True
1131
+ return False
1132
+
1133
+
1059
1134
  def _is_epoch_node_local(node) -> bool:
1060
1135
  return type(node).__name__ == "EpochNode"
1061
1136
 
@@ -1328,4 +1403,10 @@ _NON_STRAT_TYPES: frozenset[str] = frozenset({
1328
1403
  "ActivityNodeGroup",
1329
1404
  "LocationNodeGroup", # AI07: new spatial group node class
1330
1405
  "TimeBranchNodeGroup",
1406
+ # The graph's own scaffolding. A ContinuityNode is the end of a unit's
1407
+ # life, derived from the epochs and synthesised by
1408
+ # transforms.materialize_continuity; a GraphNode stands for the document.
1409
+ # us_table has no row for either — and no unita_tipo that fits them.
1410
+ "ContinuityNode",
1411
+ "GraphNode",
1331
1412
  })
@@ -31,6 +31,7 @@ Shape — one section per kind of key, each keyed by a STABLE identity::
31
31
  "dtc_kinds": {"<dtc kind>": {"label": {...}}},
32
32
  "stratigraphic_kinds": {"<kind>": {"label": {...}}},
33
33
  "packagings": {"<packaging>": {"label": {...}}},
34
+ "property_names": {"<property name>": {"label": {...}}},
34
35
  "reasoning": {"<word>": {"label": {...}, "description": {...}}}
35
36
  }
36
37
 
@@ -42,6 +43,12 @@ and its badge («from {owner}» → «da {owner}»; 1.8, connections 1.6.37, «l
42
43
  ``source_removed``, ``reasoning_cycle``, ``undeclared_owners``) and the cures —
43
44
  ``label`` the title, ``description`` the sentence, ``{placeholders}`` kept.
44
45
 
46
+ `property_names.<name>.label` (1.9, em_qualia_types 1.6.8) is the readable label
47
+ of a PROPERTY NAME in use that is not a quale — `definition`, `material` — seeded
48
+ from the `property_names` block of the qualia file: «Material» → «Materiale». A
49
+ client shows it beside the technical name; a name in neither section is shown
50
+ as it is.
51
+
45
52
  `packagings.<packaging>.label` (1.6, dev30) is the name of how a resource's bytes
46
53
  are packed — the `packaging` field of ResourceNode, seeded from its `labels`:
47
54
  «File set» → «Insieme di file», «Folder» → «Cartella» — what an inspector shows
@@ -127,6 +134,7 @@ SECTIONS: Dict[str, str] = {
127
134
  "stratigraphic_kinds": "strat_kind",
128
135
  "packagings": "packaging",
129
136
  "reasoning": "reasoning",
137
+ "property_names": "property_name",
130
138
  }
131
139
  #: the two directions of an edge's `ui_phrase`, as fields of the `edge_types`
132
140
  #: section — `ui_phrase.as_source` in the datamodel is `ui_phrase_as_source` here
@@ -199,6 +207,22 @@ def _collect_qualia_en(qualia: Dict[str, Any]) -> Dict[str, Dict[str, Dict[str,
199
207
  return out
200
208
 
201
209
 
210
+ def _collect_property_names_en(qualia: Dict[str, Any]) -> Dict[str, Dict[str, str]]:
211
+ """{name: {"label": name}} from the qualia file's ``property_names`` block
212
+ (1.6.8): EM property names that are not a quale. ``_`` keys are notes; a
213
+ name that is also a quale id is refused (one label per name)."""
214
+ ids = {q["id"] for cat in qualia.get("qualia_categories", [])
215
+ for sub in cat.get("subcategories", {}).values() for q in sub.get("qualia", [])}
216
+ out: Dict[str, Dict[str, str]] = {}
217
+ for name, spec in (qualia.get("property_names") or {}).items():
218
+ if name.startswith("_") or not isinstance(spec, dict):
219
+ continue
220
+ assert name not in ids, f"property name {name} is a quale"
221
+ if isinstance(spec.get("name"), str) and spec["name"].strip():
222
+ out[name] = {"label": spec["name"]}
223
+ return out
224
+
225
+
202
226
  def _collect_edge_phrases_en(connections: Dict[str, Any]) -> Dict[str, Dict[str, str]]:
203
227
  """{edge type: {"label": ..., "ui_phrase_as_source": ..., "ui_phrase_as_target":
204
228
  ...}}: the `label` of EVERY edge type (1.3), and the two phrases of every edge
@@ -297,6 +321,7 @@ def _collect_all_en() -> Dict[str, Dict[str, Dict[str, str]]]:
297
321
  out["stratigraphic_kinds"] = _collect_stratigraphic_kinds_en(_load(DATAMODEL))
298
322
  out["packagings"] = _collect_packagings_en(_load(DATAMODEL))
299
323
  out["reasoning"] = _collect_reasoning_en(_load(CONNECTIONS))
324
+ out["property_names"] = _collect_property_names_en(_load(QUALIA))
300
325
  return out
301
326
 
302
327
 
@@ -311,7 +336,7 @@ def seed(write: bool = True) -> Dict[str, Any]:
311
336
  existing = {}
312
337
  doc: Dict[str, Any] = {
313
338
  "schema": "s3Dgraphy_datamodel_translations",
314
- "version": "1.8",
339
+ "version": "1.9",
315
340
  "languages": LANGUAGES,
316
341
  }
317
342
  for section in SECTIONS:
@@ -417,6 +442,12 @@ def qualia_label(qualia_id: str, lang: str = "en") -> Optional[str]:
417
442
  return translate("qualia", qualia_id, "label", lang)
418
443
 
419
444
 
445
+ def property_name_label(name: str, lang: str = "en") -> Optional[str]:
446
+ """Label of an EM property name that is not a quale (``property_names``,
447
+ em_qualia_types 1.6.8) in ``lang``, English fallback; ``None`` when unknown."""
448
+ return translate("property_names", name, "label", lang)
449
+
450
+
420
451
  def qualia_category_label(category_id: str, lang: str = "en") -> Optional[str]:
421
452
  return translate("qualia_categories", category_id, "label", lang)
422
453
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: s3dgraphy
3
- Version: 1.6.0.dev41
3
+ Version: 1.6.0.dev42
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>
@@ -176,3 +176,29 @@ def test_reader_on_the_committed_sidecar():
176
176
  assert t.is_validated("qualia", "thickness", "label", lang) is False # a draft
177
177
  assert t.qualia_category_label("physical_material", "en") == "Physical and Material Qualia"
178
178
  assert t.node_label("EpochNode", "it")
179
+
180
+
181
+ def test_property_names_are_labelled_and_are_not_qualia():
182
+ """em_qualia_types 1.6.8 / translations 1.9 (MICRO badge PD e cronologia,
183
+ part 5): the EM property names in use that are not a quale — `definition`,
184
+ `material` — have their own section, seeded from the qualia file's
185
+ `property_names` block, labelled in every language, it/de validated; a
186
+ name of that block is never a quale id, and `_` keys are notes."""
187
+ t._doc.cache_clear()
188
+ qualia = json.loads(t.QUALIA.read_text(encoding="utf-8"))
189
+ en = t._collect_property_names_en(qualia)
190
+ assert set(en) == {"definition", "material"}
191
+ assert not any(k.startswith("_") for k in en)
192
+ ids = set(t._collect_qualia_en(qualia)["qualia"])
193
+ assert not (set(en) & ids)
194
+ assert qualia["property_names"]["material"]["quale"] in ids
195
+ assert t.property_name_label("material", "it") == "Materiale"
196
+ assert t.property_name_label("definition", "it") == "Definizione"
197
+ assert t.property_name_label("material", "xx") == "Material"
198
+ assert t.property_name_label("riser_depth", "it") is None
199
+ for name in en:
200
+ for lang in ("it", "de"):
201
+ assert t.is_validated("property_names", name, "label", lang) is True
202
+ # E.D.'s words for the dating qualia
203
+ assert t.qualia_label("absolute_time_start", "it") == "Data di inizio"
204
+ assert t.qualia_label("absolute_time_end", "it") == "Data di fine"
@@ -225,7 +225,9 @@ def test_the_version_went_up():
225
225
  # 1.7 (2026-10-09): the `reasoning` section — see test_property_as_source
226
226
  # 1.8 (2026-10-09, evening): `instance` for documents and properties, the
227
227
  # badge's {owner}, no refresh_instance — the instance is a view
228
- assert _translations()["version"] == "1.8"
228
+ # 1.9 (2026-10-09, night): the `property_names` section — see
229
+ # test_datamodel_i18n.test_property_names_are_labelled_and_are_not_qualia
230
+ assert _translations()["version"] == "1.9"
229
231
 
230
232
 
231
233
  def test_combines_reads_of_in_english():
@@ -65,9 +65,9 @@ def test_mappings_claim_only_what_is_evident(qualia_doc):
65
65
 
66
66
  def test_the_version_and_the_changelog_say_so(qualia_doc):
67
67
  meta = qualia_doc["metadata"]
68
- # 1.6.7 dal 5 ott 2026 (alternative_label, A1); la voce 1.6.2 resta
69
- # nella storia
70
- assert meta["version"] == "1.6.7"
68
+ # 1.6.7 dal 5 ott 2026 (alternative_label, A1), 1.6.8 dal 9 ott 2026
69
+ # (property_names); la voce 1.6.2 resta nella storia
70
+ assert meta["version"] == "1.6.8"
71
71
  head = meta["changelog"].split(" v1.6.2:", 1)[1].split(" v1.6.1:")[0]
72
72
  assert "feature_shape" in head and "boundary_distinctness" in head
73
73
  assert "proposte da Cowork per E.D., 28 set 2026, dalla scheda DAI" in head
File without changes