s3dgraphy 1.6.0.dev18__tar.gz → 1.6.0.dev21__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 (424) hide show
  1. {s3dgraphy-1.6.0.dev18/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev21}/PKG-INFO +85 -15
  2. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/README.md +79 -9
  3. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/pyproject.toml +8 -8
  4. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/datamodel_translations.json +1 -1
  5. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em.ttl +128 -16
  6. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em_document_types.json +2 -1
  7. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em_extractor_types.json +2 -1
  8. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em_qualia_types.json +2 -1
  9. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/node_registry.generated.json +2 -2
  10. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +85 -66
  11. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +1720 -0
  12. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device.svg +18 -0
  13. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_computer.svg +20 -0
  14. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_drone.svg +23 -0
  15. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_gnss.svg +20 -0
  16. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_optical.svg +19 -0
  17. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_scanner.svg +20 -0
  18. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_sensor.svg +20 -0
  19. s3dgraphy-1.6.0.dev21/src/s3dgraphy/JSON_config/src/2D/dtc/11_device_station.svg +20 -0
  20. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/__init__.py +1 -1
  21. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/api.py +57 -6
  22. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/authorities/__init__.py +2 -0
  23. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/authorities/resolver.py +132 -11
  24. s3dgraphy-1.6.0.dev21/src/s3dgraphy/authorities/snapshots/LICENSE +54 -0
  25. s3dgraphy-1.6.0.dev21/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +37 -0
  26. s3dgraphy-1.6.0.dev21/src/s3dgraphy/authorities/snapshots/provenance.json +63 -0
  27. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/edges/connections_loader.py +48 -2
  28. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/emjson_exporter.py +1 -0
  29. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +26 -10
  30. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/rdf_exporter.py +239 -10
  31. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +25 -2
  32. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/base_importer.py +150 -14
  33. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/emjson_importer.py +7 -1
  34. s3dgraphy-1.6.0.dev21/src/s3dgraphy/importer/fmpxml_importer.py +150 -0
  35. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/pyarchinit_importer.py +6 -0
  36. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/rdf_importer.py +106 -12
  37. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/unified_xlsx_importer.py +45 -8
  38. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/mappings/authoring.py +227 -12
  39. s3dgraphy-1.6.0.dev21/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +62 -0
  40. s3dgraphy-1.6.0.dev21/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +181 -0
  41. s3dgraphy-1.6.0.dev21/src/s3dgraphy/mappings/emdb/usm_mapping.json +76 -0
  42. s3dgraphy-1.6.0.dev21/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +277 -0
  43. s3dgraphy-1.6.0.dev21/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +259 -0
  44. s3dgraphy-1.6.0.dev21/src/s3dgraphy/mappings/source_list/source_list_mapping.json +49 -0
  45. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/mappings/template_emdb_mapping.json +8 -9
  46. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +8 -11
  47. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/merge/graph_merger.py +33 -11
  48. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/base_node.py +13 -1
  49. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/group_node.py +1 -1
  50. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/representation_node.py +8 -1
  51. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/stratigraphic_node.py +35 -0
  52. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/__init__.py +1 -1
  53. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/rapporti.py +53 -11
  54. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/temporal/inference_engine.py +13 -2
  55. s3dgraphy-1.6.0.dev21/src/s3dgraphy/tools/deliverable_report.py +402 -0
  56. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21/src/s3dgraphy.egg-info}/PKG-INFO +85 -15
  57. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy.egg-info/SOURCES.txt +22 -0
  58. s3dgraphy-1.6.0.dev21/tests/test_attach_only.py +223 -0
  59. s3dgraphy-1.6.0.dev21/tests/test_authority_resolver.py +355 -0
  60. s3dgraphy-1.6.0.dev21/tests/test_fmpxml_importer.py +140 -0
  61. s3dgraphy-1.6.0.dev21/tests/test_il_proprietario_si_legge.py +154 -0
  62. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_mapping_authoring.py +11 -8
  63. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_mapping_csv_and_relations.py +55 -11
  64. s3dgraphy-1.6.0.dev21/tests/test_node_type_map_integrity.py +64 -0
  65. s3dgraphy-1.6.0.dev21/tests/test_one_spelling_writers.py +312 -0
  66. s3dgraphy-1.6.0.dev21/tests/test_physical_relation_spellings.py +215 -0
  67. s3dgraphy-1.6.0.dev21/tests/test_rdf_embedding.py +104 -0
  68. s3dgraphy-1.6.0.dev21/tests/test_rdf_reverse_edges.py +218 -0
  69. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_rdf_roundtrip.py +23 -5
  70. s3dgraphy-1.6.0.dev21/tests/test_reverse_edges.py +296 -0
  71. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_rm_container_node_group.py +24 -10
  72. s3dgraphy-1.6.0.dev21/tests/test_shipped_mappings.py +239 -0
  73. s3dgraphy-1.6.0.dev21/tests/test_unit_definition.py +252 -0
  74. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_visual_assets.py +94 -0
  75. s3dgraphy-1.6.0.dev21/tests/test_xlsx_containment_and_unknown_bounds.py +203 -0
  76. s3dgraphy-1.6.0.dev18/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -1757
  77. s3dgraphy-1.6.0.dev18/src/s3dgraphy/authorities/snapshots/LICENSE +0 -22
  78. s3dgraphy-1.6.0.dev18/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +0 -23
  79. s3dgraphy-1.6.0.dev18/src/s3dgraphy/authorities/snapshots/provenance.json +0 -41
  80. s3dgraphy-1.6.0.dev18/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -60
  81. s3dgraphy-1.6.0.dev18/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -118
  82. s3dgraphy-1.6.0.dev18/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -67
  83. s3dgraphy-1.6.0.dev18/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -197
  84. s3dgraphy-1.6.0.dev18/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -102
  85. s3dgraphy-1.6.0.dev18/src/s3dgraphy/mappings/source_list/source_list_mapping.json +0 -34
  86. s3dgraphy-1.6.0.dev18/tests/test_authority_resolver.py +0 -81
  87. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/LICENSE +0 -0
  88. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/MANIFEST.in +0 -0
  89. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/setup.cfg +0 -0
  90. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +0 -0
  91. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +0 -0
  92. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +0 -0
  93. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/acquisition_mappings/uri.json +0 -0
  94. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
  95. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
  96. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/em_visual_rules.json +0 -0
  97. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
  98. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
  99. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
  100. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
  101. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
  102. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +0 -0
  103. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
  104. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +0 -0
  105. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +0 -0
  106. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +0 -0
  107. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
  108. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
  109. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/SE.svg +0 -0
  110. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
  111. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +0 -0
  112. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
  113. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/SF.svg +0 -0
  114. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
  115. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
  116. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/US.svg +0 -0
  117. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
  118. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/USD.svg +0 -0
  119. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
  120. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/USVn.svg +0 -0
  121. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
  122. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/USVs.svg +0 -0
  123. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/UTR.svg +0 -0
  124. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
  125. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/VSF.svg +0 -0
  126. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
  127. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/author.svg +0 -0
  128. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
  129. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
  130. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/combiner.svg +0 -0
  131. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
  132. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/continuity.svg +0 -0
  133. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
  134. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/document.svg +0 -0
  135. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +0 -0
  136. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +0 -0
  137. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +0 -0
  138. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +0 -0
  139. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +0 -0
  140. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +0 -0
  141. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +0 -0
  142. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +0 -0
  143. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +0 -0
  144. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +0 -0
  145. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +0 -0
  146. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
  147. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
  148. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/extractor.svg +0 -0
  149. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/gcp_set.svg +0 -0
  150. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +0 -0
  151. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +0 -0
  152. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/graph.svg +0 -0
  153. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
  154. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/link.svg +0 -0
  155. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
  156. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/play.svg +0 -0
  157. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
  158. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/property.svg +0 -0
  159. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/registration_transform.svg +0 -0
  160. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +0 -0
  161. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +0 -0
  162. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +0 -0
  163. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +0 -0
  164. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
  165. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/serSU.svg +0 -0
  166. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
  167. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
  168. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +0 -0
  169. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +0 -0
  170. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
  171. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
  172. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
  173. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
  174. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
  175. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
  176. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
  177. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
  178. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
  179. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
  180. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
  181. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
  182. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
  183. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
  184. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
  185. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
  186. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/acquisition/__init__.py +0 -0
  187. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/acquisition/acquire.py +0 -0
  188. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/acquisition/descriptor.py +0 -0
  189. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/acquisition/mapping.py +0 -0
  190. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/annotation/__init__.py +0 -0
  191. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/annotation/paradata.py +0 -0
  192. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +0 -0
  193. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +0 -0
  194. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/authorities/snapshots/periodo.jsonld +0 -0
  195. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/classification.py +0 -0
  196. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/container.py +0 -0
  197. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/contract/__init__.py +0 -0
  198. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/contract/connector.py +0 -0
  199. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/contract/consumer.py +0 -0
  200. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/contract/core.py +0 -0
  201. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/contract/reference.py +0 -0
  202. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/crdt.py +0 -0
  203. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
  204. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/diagnostics.py +0 -0
  205. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dissemination.py +0 -0
  206. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dtc/__init__.py +0 -0
  207. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dtc/corpus.py +0 -0
  208. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dtc/devices.py +0 -0
  209. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dtc/ingest.py +0 -0
  210. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dtc/neighbourhood.py +0 -0
  211. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/dtc/residency.py +0 -0
  212. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/edges/__init__.py +0 -0
  213. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/edges/connection_resolver.py +0 -0
  214. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/edges/edge.py +0 -0
  215. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/editorial.py +0 -0
  216. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/__init__.py +0 -0
  217. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/docx_exporter.py +0 -0
  218. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
  219. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
  220. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
  221. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
  222. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
  223. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
  224. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
  225. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
  226. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
  227. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
  228. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
  229. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
  230. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
  231. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
  232. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/html_exporter.py +0 -0
  233. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/ipynb_exporter.py +0 -0
  234. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/json_exporter.py +0 -0
  235. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/exporter/latex_exporter.py +0 -0
  236. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/geometry/__init__.py +0 -0
  237. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/geometry/migrate.py +0 -0
  238. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/geometry/proxy.py +0 -0
  239. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/geometry/store_backed.py +0 -0
  240. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/graph.py +0 -0
  241. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/iiif.py +0 -0
  242. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/__init__.py +0 -0
  243. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/csv_importer.py +0 -0
  244. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/import_graphml.py +0 -0
  245. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
  246. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/qualia_importer.py +0 -0
  247. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/source_text.py +0 -0
  248. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/xlsx_importer.py +0 -0
  249. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/importer/xml_importer.py +0 -0
  250. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/indices.py +0 -0
  251. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/mappings/__init__.py +0 -0
  252. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/mappings/registry.py +0 -0
  253. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/merge/__init__.py +0 -0
  254. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/multigraph/__init__.py +0 -0
  255. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/multigraph/multigraph.py +0 -0
  256. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/narrative/__init__.py +0 -0
  257. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/narrative/bake.py +0 -0
  258. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/narrative/generation.py +0 -0
  259. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/narrative/query.py +0 -0
  260. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/narrative/registry.py +0 -0
  261. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/narrative/site_story.py +0 -0
  262. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/__init__.py +0 -0
  263. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/annotation_region_node.py +0 -0
  264. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/author_node.py +0 -0
  265. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/combiner_node.py +0 -0
  266. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/document_node.py +0 -0
  267. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/dtc_acquisition_node.py +0 -0
  268. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/dtc_device_node.py +0 -0
  269. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/dtc_node.py +0 -0
  270. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/dtc_process_node.py +0 -0
  271. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/embargo_node.py +0 -0
  272. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/epoch_node.py +0 -0
  273. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/extractor_node.py +0 -0
  274. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
  275. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/georeferencing_node.py +0 -0
  276. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/graph_node.py +0 -0
  277. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/hdt_node.py +0 -0
  278. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/heritage_entity_node.py +0 -0
  279. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/license_node.py +0 -0
  280. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/narrative_node.py +0 -0
  281. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/paradata_node.py +0 -0
  282. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/project_node.py +0 -0
  283. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/property_node.py +0 -0
  284. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/resource_node.py +0 -0
  285. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
  286. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/nodes/study_node.py +0 -0
  287. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/photogrammetry/__init__.py +0 -0
  288. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/photogrammetry/delta.py +0 -0
  289. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/publication.py +0 -0
  290. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resolvers/__init__.py +0 -0
  291. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
  292. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
  293. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resources/__init__.py +0 -0
  294. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resources/fs_backend.py +0 -0
  295. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resources/minio_backend.py +0 -0
  296. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/resources/resolver.py +0 -0
  297. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/rights.py +0 -0
  298. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/shelf/__init__.py +0 -0
  299. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/shelf/core.py +0 -0
  300. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/stamp/__init__.py +0 -0
  301. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/stamp/absorb.py +0 -0
  302. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/stamp/emit.py +0 -0
  303. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/stamp/hints.py +0 -0
  304. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/stamp/identity.py +0 -0
  305. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/study.py +0 -0
  306. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/_db_handle.py +0 -0
  307. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
  308. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/_workspace.py +0 -0
  309. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
  310. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/edge_registry.py +0 -0
  311. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
  312. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/graph_projector.py +0 -0
  313. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/graphml_writer.py +0 -0
  314. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/group_projector.py +0 -0
  315. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/group_store.py +0 -0
  316. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/ingest_result.py +0 -0
  317. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/paradata_store.py +0 -0
  318. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
  319. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/uuid7.py +0 -0
  320. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
  321. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/vocab_types.py +0 -0
  322. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/yed_classifier.py +0 -0
  323. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/yed_detector.py +0 -0
  324. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
  325. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
  326. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
  327. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
  328. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
  329. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
  330. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/temporal/__init__.py +0 -0
  331. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/tools/__init__.py +0 -0
  332. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/tools/consumer_drift.py +0 -0
  333. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/tools/datamodel_i18n.py +0 -0
  334. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/tools/sync_node_datamodel.py +0 -0
  335. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/tools/wheel_drift.py +0 -0
  336. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/transforms/__init__.py +0 -0
  337. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
  338. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/transforms/compact.py +0 -0
  339. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
  340. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/utils/__init__.py +0 -0
  341. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/utils/utils.py +0 -0
  342. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/utils/visual_layout.py +0 -0
  343. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy/zero_hour.py +0 -0
  344. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
  345. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy.egg-info/requires.txt +0 -0
  346. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/src/s3dgraphy.egg-info/top_level.txt +0 -0
  347. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_acquisition.py +0 -0
  348. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_acquisition_fs.py +0 -0
  349. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_api_surface.py +0 -0
  350. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_asset_dtc_protocol.py +0 -0
  351. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_authority_projection.py +0 -0
  352. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_blend_locator.py +0 -0
  353. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_canonical_document_rename.py +0 -0
  354. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_canvas_metadata_import.py +0 -0
  355. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_composite_node_name.py +0 -0
  356. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_connection_resolver.py +0 -0
  357. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_consumer_drift.py +0 -0
  358. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_container.py +0 -0
  359. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_contract.py +0 -0
  360. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_contract_consumer.py +0 -0
  361. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_convert_command.py +0 -0
  362. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_crdt.py +0 -0
  363. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_datamodel_i18n.py +0 -0
  364. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_deterministic_ids.py +0 -0
  365. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_devices.py +0 -0
  366. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_dissemination_tombstones.py +0 -0
  367. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_dtc_corpus.py +0 -0
  368. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_dtc_ingest.py +0 -0
  369. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_dtc_neighbourhood.py +0 -0
  370. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_dtc_projection.py +0 -0
  371. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_dtc_residency.py +0 -0
  372. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_editorial.py +0 -0
  373. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_emjson_roundtrip.py +0 -0
  374. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_emjson_schema_version.py +0 -0
  375. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_epoch_undated_import.py +0 -0
  376. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_explicit_node_type_marker.py +0 -0
  377. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_filtered_import.py +0 -0
  378. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_fs_backend.py +0 -0
  379. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_functional_units.py +0 -0
  380. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_georeference_scene.py +0 -0
  381. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_graph_scope_migration.py +0 -0
  382. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_hdto_projection.py +0 -0
  383. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_header_key_aliases.py +0 -0
  384. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_iiif.py +0 -0
  385. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_importer_edge_hygiene.py +0 -0
  386. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_ipynb_exporter.py +0 -0
  387. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_latex_exporter.py +0 -0
  388. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_lossless_roundtrip.py +0 -0
  389. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_material_color.py +0 -0
  390. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_merge_conflicts.py +0 -0
  391. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_migrate_legacy_proxy.py +0 -0
  392. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_minio_backend.py +0 -0
  393. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_authorship.py +0 -0
  394. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_bake_docx.py +0 -0
  395. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_figures.py +0 -0
  396. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_generation.py +0 -0
  397. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_node.py +0 -0
  398. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_query.py +0 -0
  399. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_narrative_scaffolder.py +0 -0
  400. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_node_datamodel_registry.py +0 -0
  401. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_pg_importer.py +0 -0
  402. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_photogrammetry_delta.py +0 -0
  403. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_promotion.py +0 -0
  404. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_pyarchinit_tier2.py +0 -0
  405. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_recompute_warnings.py +0 -0
  406. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_reproject.py +0 -0
  407. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_resource_layer.py +0 -0
  408. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_resource_tier.py +0 -0
  409. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_semantic_purity.py +0 -0
  410. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_shelf.py +0 -0
  411. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_shelf_facets.py +0 -0
  412. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_shelf_hatting.py +0 -0
  413. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_shelf_role_uri_table.py +0 -0
  414. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_source_list_mapping.py +0 -0
  415. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_source_text.py +0 -0
  416. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_stamp.py +0 -0
  417. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_stamp_hints.py +0 -0
  418. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_store_backed_geometry.py +0 -0
  419. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_stratiminer_api.py +0 -0
  420. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_study_metadata.py +0 -0
  421. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_ttl_roundtrip.py +0 -0
  422. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_wheel_drift.py +0 -0
  423. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_xlsx_importer_graph_init.py +0 -0
  424. {s3dgraphy-1.6.0.dev18 → s3dgraphy-1.6.0.dev21}/tests/test_zero_hour.py +0 -0
@@ -1,17 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: s3dgraphy
3
- Version: 1.6.0.dev18
3
+ Version: 1.6.0.dev21
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>
7
7
  License: GPL-3.0-or-later
8
- Project-URL: Homepage, https://github.com/zalmoxes-laran/s3dgraphy
8
+ Project-URL: Homepage, https://github.com/ExtendedMatrix/s3Dgraphy
9
9
  Project-URL: Documentation, https://docs.extendedmatrix.org/projects/s3dgraphy/
10
- Project-URL: Repository, https://github.com/zalmoxes-laran/s3dgraphy.git
11
- Project-URL: Bug Reports, https://github.com/zalmoxes-laran/s3dgraphy/issues
12
- Project-URL: Source Code, https://github.com/zalmoxes-laran/s3dgraphy
10
+ Project-URL: Repository, https://github.com/ExtendedMatrix/s3Dgraphy.git
11
+ Project-URL: Bug Reports, https://github.com/ExtendedMatrix/s3Dgraphy/issues
12
+ Project-URL: Source Code, https://github.com/ExtendedMatrix/s3Dgraphy
13
13
  Project-URL: Extended Matrix, https://www.extendedmatrix.org
14
- Project-URL: Changelog, https://github.com/zalmoxes-laran/s3dgraphy/blob/main/CHANGELOG.md
14
+ Project-URL: Changelog, https://github.com/ExtendedMatrix/s3Dgraphy/blob/main/CHANGELOG.md
15
15
  Keywords: archaeology,stratigraphy,graph,3d,heritage,temporal-modeling,knowledge-graph,extended-matrix
16
16
  Classifier: Development Status :: 4 - Beta
17
17
  Classifier: Intended Audience :: Science/Research
@@ -81,7 +81,7 @@ Dynamic: license-file
81
81
  [![Python versions](https://img.shields.io/pypi/pyversions/s3dgraphy.svg)](https://pypi.org/project/s3dgraphy/)
82
82
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
83
83
  [![Downloads](https://pepy.tech/badge/s3dgraphy)](https://pepy.tech/project/s3dgraphy)
84
- [![Publish to PyPI](https://github.com/zalmoxes-laran/s3dgraphy/actions/workflows/publish.yml/badge.svg)](https://github.com/zalmoxes-laran/s3dgraphy/actions/workflows/publish.yml)
84
+ [![Publish to PyPI](https://github.com/ExtendedMatrix/s3Dgraphy/actions/workflows/publish.yml/badge.svg)](https://github.com/ExtendedMatrix/s3Dgraphy/actions/workflows/publish.yml)
85
85
 
86
86
  ## 3D Stratigraphic Graph Management Library
87
87
 
@@ -260,7 +260,7 @@ match exactly and case-sensitively. The same flow applies to
260
260
 
261
261
  - **[User Guide](https://docs.extendedmatrix.org/projects/s3dgraphy/)** - Complete documentation
262
262
  - **[API Reference](https://docs.extendedmatrix.org/projects/s3dgraphy/api.html)** - Detailed API docs
263
- - **[Examples](https://github.com/zalmoxes-laran/s3dgraphy/tree/main/examples)** - Code examples and tutorials
263
+ - **[Examples](https://github.com/ExtendedMatrix/s3Dgraphy/tree/main/examples)** - Code examples and tutorials
264
264
  - **[Extended Matrix](https://www.extendedmatrix.org)** - Framework overview
265
265
 
266
266
  ## Where this sits
@@ -284,7 +284,7 @@ framework and no socket on purpose — what it does can be proved on a table.
284
284
  ### Setting up Development Environment
285
285
 
286
286
  ```bash
287
- git clone https://github.com/zalmoxes-laran/s3dgraphy.git
287
+ git clone https://github.com/ExtendedMatrix/s3Dgraphy.git
288
288
  cd s3dgraphy
289
289
  python3 -m venv .venv
290
290
  .venv/bin/pip install -e ".[dev]"
@@ -339,7 +339,7 @@ git push --follow-tags
339
339
  ## 🤝 Contributing
340
340
 
341
341
  We welcome contributions. Open an issue or a pull request on
342
- [GitHub](https://github.com/zalmoxes-laran/s3dgraphy) — and see the
342
+ [GitHub](https://github.com/ExtendedMatrix/s3Dgraphy) — and see the
343
343
  [Development](#-development) section above for how to run the suite and read its
344
344
  known baseline.
345
345
 
@@ -372,7 +372,7 @@ s3Dgraphy — referencing records live or baking them into the graph.
372
372
 
373
373
  The PyArchInit integration drove the design of the LocationNodeGroup in
374
374
  s3Dgraphy 0.1.41 (insight from
375
- [issue #5](https://github.com/zalmoxes-laran/s3Dgraphy/issues/5) by
375
+ [issue #5](https://github.com/ExtendedMatrix/s3Dgraphy/issues/5) by
376
376
  [Enzo Cocca](https://github.com/enzococca)).
377
377
 
378
378
  To request inclusion in this list, see the [Ecosystem page](https://docs.extendedmatrix.org/en/latest/ecosystem.html) of the Extended Matrix manual.
@@ -384,9 +384,79 @@ s3Dgraphy is designed to be consumed by independent tools. **Revit**,
384
384
  domain-specific tools are natural candidates for similar bridges into the
385
385
  Extended Matrix ecosystem. If you maintain such a project and want to
386
386
  explore an integration, open a discussion at
387
- [github.com/zalmoxes-laran/s3Dgraphy/discussions](https://github.com/zalmoxes-laran/s3Dgraphy/discussions)
387
+ [github.com/ExtendedMatrix/s3Dgraphy/discussions](https://github.com/ExtendedMatrix/s3Dgraphy/discussions)
388
388
  or look at the PyArchInit integration as a worked example.
389
389
 
390
+ ## Pubblicare su PyPI
391
+
392
+ Il rilascio è **manuale** — Actions → *Publish to PyPI* → *Run workflow*, con il
393
+ tag e il bersaglio (`testpypi` o `pypi`) — e **non usa nessun token**.
394
+
395
+ ### Perché non un token
396
+
397
+ Un token API di lunga vita nei segreti del repository è una chiave di una
398
+ persona che tiene in ostaggio un artefatto del progetto, e non dice **da dove**
399
+ viene la wheel. Misurato il 22 settembre 2026 sulla versione che i servizi
400
+ installano davvero:
401
+
402
+ ```
403
+ curl https://pypi.org/integrity/s3dgraphy/1.6.0.dev18/\
404
+ s3dgraphy-1.6.0.dev18-py3-none-any.whl/provenance
405
+ → 404 {"message":"No provenance available for …"}
406
+ ```
407
+
408
+ Tre servizi installano questa libreria e finisce dentro le immagini Docker che
409
+ consegniamo a un partner: chi le specchia può risalire al Dockerfile, al commit
410
+ e al tag — e poi arriva alla wheel, e la catena si interrompe lì.
411
+
412
+ Il **Trusted Publisher** toglie il token e dà l'attestazione, perché sono la
413
+ stessa cosa vista dai due lati: PyPI si fida di un'identità — questo
414
+ repository, questo workflow — invece che di un segreto, e quell'identità è
415
+ esattamente ciò che l'attestazione afferma.
416
+
417
+ ### I campi da mettere su PyPI (una volta, e li mette E.D.)
418
+
419
+ PyPI → *Your projects* → **s3dgraphy** → *Settings* → **Publishing** → *Add a
420
+ new publisher* → **GitHub**. Quattro campi, e questi sono i valori esatti:
421
+
422
+ | campo | valore |
423
+ |---|---|
424
+ | **Owner** | `ExtendedMatrix` |
425
+ | **Repository name** | `s3Dgraphy` |
426
+ | **Workflow name** | `publish.yml` |
427
+ | **Environment name** | *(vuoto)* |
428
+
429
+ `Environment name` resta vuoto perché il workflow non dichiara nessun
430
+ `environment:`. Se un giorno gliene si dà uno — è il modo di chiedere
431
+ un'approvazione umana prima del push su PyPI — quel campo va compilato con lo
432
+ stesso nome, e i due devono restare d'accordo.
433
+
434
+ Su **TestPyPI** la procedura è identica, sul sito `test.pypi.org`, con gli
435
+ stessi quattro valori: sono due indici diversi e ciascuno tiene la sua lista.
436
+
437
+ Finché quei campi non ci sono, il workflow **fallisce** al passo di publish con
438
+ un errore di PyPI che dice che il publisher non è configurato — che è il modo
439
+ giusto di fallire.
440
+
441
+ ### Il cancello
442
+
443
+ Dopo ogni rilascio in produzione il workflow interroga l'indice:
444
+
445
+ ```bash
446
+ ./scripts/verifica-provenance.sh 1.6.0.dev19
447
+ ```
448
+
449
+ Un publish riuscito senza provenance è un publish che ha fatto metà del lavoro
450
+ e lo dichiara riuscito. Lo script distingue i due guasti — l'attestazione che
451
+ **manca** e quella che nomina un **altro repository**, che è il più grave dei
452
+ due perché sembra una garanzia — e si può lanciare a mano su qualunque versione
453
+ già pubblicata, inclusa una di un altro progetto:
454
+
455
+ ```bash
456
+ PACCHETTO=sigstore GITHUB_REPOSITORY=sigstore/sigstore-python \
457
+ ./scripts/verifica-provenance.sh 4.5.0
458
+ ```
459
+
390
460
  ## 📄 License
391
461
 
392
462
  This project is licensed under the **GNU General Public License v3.0** - see the [LICENSE](LICENSE) file for details.
@@ -402,7 +472,7 @@ If you use s3dgraphy in your research, please cite:
402
472
  title={s3dgraphy: 3D Stratigraphic Graph Management Library},
403
473
  author={Demetrescu, Emanuel},
404
474
  year={2026},
405
- url={https://github.com/zalmoxes-laran/s3dgraphy},
475
+ url={https://github.com/ExtendedMatrix/s3Dgraphy},
406
476
  version={1.6.0},
407
477
  institution={CNR-ISPC (National Research Council - Institute of Heritage Science)}
408
478
  }
@@ -418,11 +488,11 @@ If you use s3dgraphy in your research, please cite:
418
488
 
419
489
  ## 🔗 Links
420
490
 
421
- - **GitHub Repository**: https://github.com/zalmoxes-laran/s3dgraphy
491
+ - **GitHub Repository**: https://github.com/ExtendedMatrix/s3Dgraphy
422
492
  - **PyPI Package**: https://pypi.org/project/s3dgraphy/
423
493
  - **Documentation**: https://docs.extendedmatrix.org/projects/s3dgraphy/
424
494
  - **Extended Matrix Website**: https://www.extendedmatrix.org
425
- - **Bug Reports**: https://github.com/zalmoxes-laran/s3dgraphy/issues
495
+ - **Bug Reports**: https://github.com/ExtendedMatrix/s3Dgraphy/issues
426
496
 
427
497
  ---
428
498
 
@@ -4,7 +4,7 @@
4
4
  [![Python versions](https://img.shields.io/pypi/pyversions/s3dgraphy.svg)](https://pypi.org/project/s3dgraphy/)
5
5
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
6
6
  [![Downloads](https://pepy.tech/badge/s3dgraphy)](https://pepy.tech/project/s3dgraphy)
7
- [![Publish to PyPI](https://github.com/zalmoxes-laran/s3dgraphy/actions/workflows/publish.yml/badge.svg)](https://github.com/zalmoxes-laran/s3dgraphy/actions/workflows/publish.yml)
7
+ [![Publish to PyPI](https://github.com/ExtendedMatrix/s3Dgraphy/actions/workflows/publish.yml/badge.svg)](https://github.com/ExtendedMatrix/s3Dgraphy/actions/workflows/publish.yml)
8
8
 
9
9
  ## 3D Stratigraphic Graph Management Library
10
10
 
@@ -183,7 +183,7 @@ match exactly and case-sensitively. The same flow applies to
183
183
 
184
184
  - **[User Guide](https://docs.extendedmatrix.org/projects/s3dgraphy/)** - Complete documentation
185
185
  - **[API Reference](https://docs.extendedmatrix.org/projects/s3dgraphy/api.html)** - Detailed API docs
186
- - **[Examples](https://github.com/zalmoxes-laran/s3dgraphy/tree/main/examples)** - Code examples and tutorials
186
+ - **[Examples](https://github.com/ExtendedMatrix/s3Dgraphy/tree/main/examples)** - Code examples and tutorials
187
187
  - **[Extended Matrix](https://www.extendedmatrix.org)** - Framework overview
188
188
 
189
189
  ## Where this sits
@@ -207,7 +207,7 @@ framework and no socket on purpose — what it does can be proved on a table.
207
207
  ### Setting up Development Environment
208
208
 
209
209
  ```bash
210
- git clone https://github.com/zalmoxes-laran/s3dgraphy.git
210
+ git clone https://github.com/ExtendedMatrix/s3Dgraphy.git
211
211
  cd s3dgraphy
212
212
  python3 -m venv .venv
213
213
  .venv/bin/pip install -e ".[dev]"
@@ -262,7 +262,7 @@ git push --follow-tags
262
262
  ## 🤝 Contributing
263
263
 
264
264
  We welcome contributions. Open an issue or a pull request on
265
- [GitHub](https://github.com/zalmoxes-laran/s3dgraphy) — and see the
265
+ [GitHub](https://github.com/ExtendedMatrix/s3Dgraphy) — and see the
266
266
  [Development](#-development) section above for how to run the suite and read its
267
267
  known baseline.
268
268
 
@@ -295,7 +295,7 @@ s3Dgraphy — referencing records live or baking them into the graph.
295
295
 
296
296
  The PyArchInit integration drove the design of the LocationNodeGroup in
297
297
  s3Dgraphy 0.1.41 (insight from
298
- [issue #5](https://github.com/zalmoxes-laran/s3Dgraphy/issues/5) by
298
+ [issue #5](https://github.com/ExtendedMatrix/s3Dgraphy/issues/5) by
299
299
  [Enzo Cocca](https://github.com/enzococca)).
300
300
 
301
301
  To request inclusion in this list, see the [Ecosystem page](https://docs.extendedmatrix.org/en/latest/ecosystem.html) of the Extended Matrix manual.
@@ -307,9 +307,79 @@ s3Dgraphy is designed to be consumed by independent tools. **Revit**,
307
307
  domain-specific tools are natural candidates for similar bridges into the
308
308
  Extended Matrix ecosystem. If you maintain such a project and want to
309
309
  explore an integration, open a discussion at
310
- [github.com/zalmoxes-laran/s3Dgraphy/discussions](https://github.com/zalmoxes-laran/s3Dgraphy/discussions)
310
+ [github.com/ExtendedMatrix/s3Dgraphy/discussions](https://github.com/ExtendedMatrix/s3Dgraphy/discussions)
311
311
  or look at the PyArchInit integration as a worked example.
312
312
 
313
+ ## Pubblicare su PyPI
314
+
315
+ Il rilascio è **manuale** — Actions → *Publish to PyPI* → *Run workflow*, con il
316
+ tag e il bersaglio (`testpypi` o `pypi`) — e **non usa nessun token**.
317
+
318
+ ### Perché non un token
319
+
320
+ Un token API di lunga vita nei segreti del repository è una chiave di una
321
+ persona che tiene in ostaggio un artefatto del progetto, e non dice **da dove**
322
+ viene la wheel. Misurato il 22 settembre 2026 sulla versione che i servizi
323
+ installano davvero:
324
+
325
+ ```
326
+ curl https://pypi.org/integrity/s3dgraphy/1.6.0.dev18/\
327
+ s3dgraphy-1.6.0.dev18-py3-none-any.whl/provenance
328
+ → 404 {"message":"No provenance available for …"}
329
+ ```
330
+
331
+ Tre servizi installano questa libreria e finisce dentro le immagini Docker che
332
+ consegniamo a un partner: chi le specchia può risalire al Dockerfile, al commit
333
+ e al tag — e poi arriva alla wheel, e la catena si interrompe lì.
334
+
335
+ Il **Trusted Publisher** toglie il token e dà l'attestazione, perché sono la
336
+ stessa cosa vista dai due lati: PyPI si fida di un'identità — questo
337
+ repository, questo workflow — invece che di un segreto, e quell'identità è
338
+ esattamente ciò che l'attestazione afferma.
339
+
340
+ ### I campi da mettere su PyPI (una volta, e li mette E.D.)
341
+
342
+ PyPI → *Your projects* → **s3dgraphy** → *Settings* → **Publishing** → *Add a
343
+ new publisher* → **GitHub**. Quattro campi, e questi sono i valori esatti:
344
+
345
+ | campo | valore |
346
+ |---|---|
347
+ | **Owner** | `ExtendedMatrix` |
348
+ | **Repository name** | `s3Dgraphy` |
349
+ | **Workflow name** | `publish.yml` |
350
+ | **Environment name** | *(vuoto)* |
351
+
352
+ `Environment name` resta vuoto perché il workflow non dichiara nessun
353
+ `environment:`. Se un giorno gliene si dà uno — è il modo di chiedere
354
+ un'approvazione umana prima del push su PyPI — quel campo va compilato con lo
355
+ stesso nome, e i due devono restare d'accordo.
356
+
357
+ Su **TestPyPI** la procedura è identica, sul sito `test.pypi.org`, con gli
358
+ stessi quattro valori: sono due indici diversi e ciascuno tiene la sua lista.
359
+
360
+ Finché quei campi non ci sono, il workflow **fallisce** al passo di publish con
361
+ un errore di PyPI che dice che il publisher non è configurato — che è il modo
362
+ giusto di fallire.
363
+
364
+ ### Il cancello
365
+
366
+ Dopo ogni rilascio in produzione il workflow interroga l'indice:
367
+
368
+ ```bash
369
+ ./scripts/verifica-provenance.sh 1.6.0.dev19
370
+ ```
371
+
372
+ Un publish riuscito senza provenance è un publish che ha fatto metà del lavoro
373
+ e lo dichiara riuscito. Lo script distingue i due guasti — l'attestazione che
374
+ **manca** e quella che nomina un **altro repository**, che è il più grave dei
375
+ due perché sembra una garanzia — e si può lanciare a mano su qualunque versione
376
+ già pubblicata, inclusa una di un altro progetto:
377
+
378
+ ```bash
379
+ PACCHETTO=sigstore GITHUB_REPOSITORY=sigstore/sigstore-python \
380
+ ./scripts/verifica-provenance.sh 4.5.0
381
+ ```
382
+
313
383
  ## 📄 License
314
384
 
315
385
  This project is licensed under the **GNU General Public License v3.0** - see the [LICENSE](LICENSE) file for details.
@@ -325,7 +395,7 @@ If you use s3dgraphy in your research, please cite:
325
395
  title={s3dgraphy: 3D Stratigraphic Graph Management Library},
326
396
  author={Demetrescu, Emanuel},
327
397
  year={2026},
328
- url={https://github.com/zalmoxes-laran/s3dgraphy},
398
+ url={https://github.com/ExtendedMatrix/s3Dgraphy},
329
399
  version={1.6.0},
330
400
  institution={CNR-ISPC (National Research Council - Institute of Heritage Science)}
331
401
  }
@@ -341,11 +411,11 @@ If you use s3dgraphy in your research, please cite:
341
411
 
342
412
  ## 🔗 Links
343
413
 
344
- - **GitHub Repository**: https://github.com/zalmoxes-laran/s3dgraphy
414
+ - **GitHub Repository**: https://github.com/ExtendedMatrix/s3Dgraphy
345
415
  - **PyPI Package**: https://pypi.org/project/s3dgraphy/
346
416
  - **Documentation**: https://docs.extendedmatrix.org/projects/s3dgraphy/
347
417
  - **Extended Matrix Website**: https://www.extendedmatrix.org
348
- - **Bug Reports**: https://github.com/zalmoxes-laran/s3dgraphy/issues
418
+ - **Bug Reports**: https://github.com/ExtendedMatrix/s3Dgraphy/issues
349
419
 
350
420
  ---
351
421
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "s3dgraphy"
7
- version = "1.6.0.dev18"
7
+ version = "1.6.0.dev21"
8
8
  description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -60,13 +60,13 @@ dependencies = [
60
60
  ]
61
61
 
62
62
  [project.urls]
63
- Homepage = "https://github.com/zalmoxes-laran/s3dgraphy"
63
+ Homepage = "https://github.com/ExtendedMatrix/s3Dgraphy"
64
64
  Documentation = "https://docs.extendedmatrix.org/projects/s3dgraphy/"
65
- Repository = "https://github.com/zalmoxes-laran/s3dgraphy.git"
66
- "Bug Reports" = "https://github.com/zalmoxes-laran/s3dgraphy/issues"
67
- "Source Code" = "https://github.com/zalmoxes-laran/s3dgraphy"
65
+ Repository = "https://github.com/ExtendedMatrix/s3Dgraphy.git"
66
+ "Bug Reports" = "https://github.com/ExtendedMatrix/s3Dgraphy/issues"
67
+ "Source Code" = "https://github.com/ExtendedMatrix/s3Dgraphy"
68
68
  "Extended Matrix" = "https://www.extendedmatrix.org"
69
- Changelog = "https://github.com/zalmoxes-laran/s3dgraphy/blob/main/CHANGELOG.md"
69
+ Changelog = "https://github.com/ExtendedMatrix/s3Dgraphy/blob/main/CHANGELOG.md"
70
70
 
71
71
  # ─────────────────────────────────────────────────────────────────────────
72
72
  # Optional features — pip install s3dgraphy[<extra>]
@@ -104,12 +104,12 @@ sync = [
104
104
  # ingestion + projection between a Graph and the host application's
105
105
  # SQL tables. SQLite works out of the box; add the [postgres] extra
106
106
  # for the PostgreSQL backend. Moved from pyArchInit in 1.6.0
107
- # (zalmoxes-laran/s3Dgraphy#10).
107
+ # (ExtendedMatrix/s3Dgraphy#10).
108
108
  "sqlalchemy>=2.0",
109
109
  ]
110
110
  postgres = [
111
111
  # PostgreSQL backend driver. Combine with [sync] for the SQL bridge
112
- # (zalmoxes-laran/s3Dgraphy#9 + #10). Standalone, it also enables
112
+ # (ExtendedMatrix/s3Dgraphy#9 + #10). Standalone, it also enables
113
113
  # the PG path of PyArchInitImporter when that lands.
114
114
  "psycopg2-binary>=2.9",
115
115
  ]
@@ -842,7 +842,7 @@
842
842
  },
843
843
  "SpecialFindUnit": {
844
844
  "description": {
845
- "en": "Movable physical object whose ORIGINAL position is unknown (and sometimes whose pertinence to the site is uncertain). Distinct from in-situ artefacts — known to exist(ed) but displaced. Architectural artefacts, coins, fragments without findspot. Provenance / pertinence uncertainty is captured via paradata edges, not by class.",
845
+ "en": "Movable physical object whose ORIGINAL position is unknown (and sometimes whose pertinence to the site is uncertain). Distinct from in-situ artefacts — known to exist(ed) but displaced. Architectural artefacts, coins, fragments without findspot. This is also the unit for a REDEPOSITED object: a block in secondary deposition found inside a layer, which is observed where it lies but not where it was made to lie. Provenance / pertinence uncertainty is captured via paradata edges, not by class.",
846
846
  "validated_it": false,
847
847
  "validated_el": false,
848
848
  "validated_he": false,
@@ -13,7 +13,7 @@
13
13
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
14
14
 
15
15
  # ============================================================================
16
- # Extended Matrix (EM) Ontology — v1.6.0
16
+ # Extended Matrix (EM) Ontology — v1.6.5
17
17
  # ============================================================================
18
18
  # Formal extension of the CIDOC-CRM family + HDT-O for the Extended Matrix
19
19
  # stratigraphic + paradata + virtual-reconstruction modeling. Companion to
@@ -31,7 +31,7 @@
31
31
  # Python inheritance (e.g. AuthorAINode → AuthorNode) is for code reuse.
32
32
  # * "Maps to: Python ClassName" comments anchor each class to its
33
33
  # s3dgraphy Python counterpart for round-trip verification.
34
- # * AP11_has_physical_relation discrimination uses subproperties (em:abuts,
34
+ # * AP11_has_physical_relation_to discrimination uses subproperties (em:abuts,
35
35
  # em:cuts, em:fills, em:overlies, em:bondedTo, em:physicallyEquals)
36
36
  # rather than reified relations with E55_Type tags — this is the
37
37
  # SPARQL-friendly pattern.
@@ -44,8 +44,8 @@
44
44
  dcterms:creator "Emanuele Demetrescu" ;
45
45
  dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
46
46
  dcterms:issued "2026-05-23"^^xsd:date ;
47
- owl:versionInfo "1.6.0" ;
48
- rdfs:comment "Formal ontology for Extended Matrix (EM): a human-readable layout for knowledge graphs of archaeological stratigraphy and virtual reconstruction. Extends CIDOC-CRM, CRMarchaeo, CRMinf, CRMdig, CRMgeo, with PROV-O for agent provenance and HDT-O for digital-twin granularity. This file declares the em: classes and properties introduced in s3dgraphy v1.6.0."@en ;
47
+ owl:versionInfo "1.6.5" ;
48
+ rdfs:comment "Formal ontology for Extended Matrix (EM): a human-readable layout for knowledge graphs of archaeological stratigraphy and virtual reconstruction. Extends CIDOC-CRM, CRMarchaeo, CRMinf, CRMdig, CRMgeo, with PROV-O for agent provenance and HDT-O for digital-twin granularity. This file declares the em: classes and properties introduced in s3dgraphy v1.6.0. v1.6.2 (2026-09-21, CIDOC repair pass): the eight terms the datamodels cited and this file never defined are declared in section 12; em:NodeGroup and em:ParadataNodeGroup leave the undeclared crm:E78_Collection for crm:E73_Information_Object and crm:E89_Propositional_Object; em:SemanticShape leaves crmgeo:SP5 for crm:E73_Information_Object, provisionally; crmarchaeo:AP11_has_physical_relation becomes AP11_has_physical_relation_to, the name CRMarchaeo has used since 2.0; and em:RepresentationModel says what a representation model IS. v1.6.5 (2026-10-20, MICRO la definizione dell\'unita\'): em:hasDefinition, the DEFINIZIONE of a stratigraphic unit as a subproperty of crm:P2_has_type — declared for the node datamodel 1.6.9 entry StratigraphicNode.properties.definition, not emitted by default (owl:versionInfo was left at 1.6.2 by the 1.6.3/1.6.4 passes and is realigned here)."@en ;
49
49
  owl:imports <http://www.cidoc-crm.org/cidoc-crm/> ,
50
50
  <http://www.cidoc-crm.org/extensions/crminf/> ,
51
51
  <http://www.cidoc-crm.org/extensions/crmarchaeo/> ,
@@ -305,7 +305,7 @@ em:RepresentationModel
305
305
  a owl:Class ;
306
306
  rdfs:label "Representation Model"@en ;
307
307
  rdfs:subClassOf crmdig:D1_Digital_Object ;
308
- rdfs:comment "A 3D model or spatialized image representing some node in the graph. Abstract base. Specialized into em:StratigraphicRepresentation, em:DocumentaryRepresentation, em:SpecialFindRepresentation. Always linked to what it represents via crm:P138_represents."@en .
308
+ rdfs:comment "A 3D model or spatialized image representing some node in the graph. Abstract base. Specialized into em:StratigraphicRepresentation, em:DocumentaryRepresentation, em:SpecialFindRepresentation. Always linked to what it represents via crm:P138_represents. WHAT IT IS (E.D., 21 September 2026). A representation model is a DOCUMENT WITH A DATE: it was made on a day, by somebody, from something, and it is naturally anchored to an EPOCH rather than to a unit. It is also potentially PARTIAL — a photogrammetric survey can come back with an incomplete mesh, a facade recorded from one side only, a room whose ceiling nobody could reach. Both of those together have one consequence worth stating so nobody reasons past it: the ABSENCE of a link between a model and a stratigraphic unit IS NOT INFORMATIVE. It does not mean the unit was not represented, and it does not mean the unit is not there; it means this document does not reach that far. Queries must not read a missing link as a negative claim. The PROXY has a different statute and is not the same kind of thing: em:SemanticShape is CUMULATIVE and ARGUED — a quale synthesised from several sources, inheriting the extractor/combiner chain, so it can be more COMPLETE than any single model while being far less detailed. A model is one look at the thing; a proxy is what we have concluded the thing occupies. DATING AND PROVENANCE HAVE NO FIELD OF THEIR OWN ON THIS CLASS, and that is deliberate: they travel through has_linked_resource to a ResourceNode and back up through dtc_had_output to the DTC event that produced it, where the date, the device and the author already live and are already paradata. A `date` field MUST NOT be added to RepresentationModelNode: it would duplicate the DTC chain, drift from it, and turn a documented provenance into a typed-in string."@en .
309
309
 
310
310
  em:StratigraphicRepresentation
311
311
  a owl:Class ;
@@ -328,7 +328,12 @@ em:SpecialFindRepresentation
328
328
  em:SemanticShape
329
329
  a owl:Class ;
330
330
  rdfs:label "Semantic Shape (proxy geometry)"@en ;
331
- rdfs:subClassOf crmgeo:SP5_Geometric_Place_Expression ;
331
+ # PROVVISORIO — crmgeo:SP6_Declarative_Place è il candidato migliore,
332
+ # decisione rinviata da E.D. (21 set 2026). Era crmgeo:SP5_Geometric_Place_Expression,
333
+ # che NON è dichiarata nel documento servito a http://www.cidoc-crm.org/extensions/crmgeo/
334
+ # (CRMgeo 2.0 draft: SP1,2,3,4,6,7,10,11,12,13,14,15 — SP5 sopravvive solo nella scope
335
+ # note di SP6). crm:E73_Information_Object è la mossa sicura che non impegna.
336
+ rdfs:subClassOf crm:E73_Information_Object ;
332
337
  rdfs:comment "3D proxy geometry (convex shapes or spheres, or a .glb via rdfs:seeAlso) representing the spatial extent of a node. Lighter weight than a full RepresentationModel: intended for spatial indexing and rough containment, not for visual rendering. SINCE 2026-08-11 IT IS A PAYLOAD: the proxy of a unit is a quale — a property of type 'geometry' — and this class is what that property points at through P138i (has_semantic_shape). The reason is paradata: a lone shape cannot say where it came from, while a property inherits the extractor/combiner chain, so one proxy can be synthesised from several sources (a photogrammetric mesh and a historical photograph). The class itself did not change; who points at it did. Maps to: Python SemanticShapeNode (node_type='semantic_shape')."@en .
333
338
 
334
339
  em:convexShape
@@ -483,7 +488,7 @@ em:confidenceLevel
483
488
  # ============================================================================
484
489
  # 11. STRATIGRAPHIC PHYSICAL RELATIONS (AP11 subproperties)
485
490
  # ============================================================================
486
- # CRMarchaeo's AP11_has_physical_relation is the generic relation between
491
+ # CRMarchaeo's AP11_has_physical_relation_to is the generic relation between
487
492
  # two stratigraphic units. We discriminate the specific type with named
488
493
  # subproperties — the SPARQL-friendly pattern (queries can be specific
489
494
  # OR fall back to the generic AP11 via subproperty inference).
@@ -491,7 +496,7 @@ em:confidenceLevel
491
496
  em:abuts
492
497
  a owl:ObjectProperty ;
493
498
  rdfs:label "abuts"@en ;
494
- rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation ;
499
+ rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation_to ;
495
500
  rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
496
501
  rdfs:range crmarchaeo:A8_Stratigraphic_Unit ;
497
502
  rdfs:comment "Source stratigraphic unit abuts against the target. Non-symmetric: A abuts B does NOT imply B abuts A (B is_abutted_by A). Maps to: connections_datamodel edge 'abuts'."@en .
@@ -499,7 +504,7 @@ em:abuts
499
504
  em:cuts
500
505
  a owl:ObjectProperty ;
501
506
  rdfs:label "cuts"@en ;
502
- rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation ;
507
+ rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation_to ;
503
508
  rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
504
509
  rdfs:range crmarchaeo:A8_Stratigraphic_Unit ;
505
510
  rdfs:comment "Source stratigraphic unit cuts (is incised into) the target. Non-symmetric. Maps to: connections_datamodel edge 'cuts'."@en .
@@ -507,7 +512,7 @@ em:cuts
507
512
  em:fills
508
513
  a owl:ObjectProperty ;
509
514
  rdfs:label "fills"@en ;
510
- rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation ;
515
+ rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation_to ;
511
516
  rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
512
517
  rdfs:range crmarchaeo:A8_Stratigraphic_Unit ;
513
518
  rdfs:comment "Source stratigraphic unit fills the target (typically a deposit filling a cut). Non-symmetric. Maps to: connections_datamodel edge 'fills'."@en .
@@ -515,7 +520,7 @@ em:fills
515
520
  em:overlies
516
521
  a owl:ObjectProperty ;
517
522
  rdfs:label "overlies"@en ;
518
- rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation ;
523
+ rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation_to ;
519
524
  rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
520
525
  rdfs:range crmarchaeo:A8_Stratigraphic_Unit ;
521
526
  rdfs:comment "Source stratigraphic unit overlies (covers) the target. Non-symmetric. Maps to: connections_datamodel edge 'overlies'."@en .
@@ -523,7 +528,7 @@ em:overlies
523
528
  em:bondedTo
524
529
  a owl:ObjectProperty , owl:SymmetricProperty ;
525
530
  rdfs:label "bonded to"@en ;
526
- rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation ;
531
+ rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation_to ;
527
532
  rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
528
533
  rdfs:range crmarchaeo:A8_Stratigraphic_Unit ;
529
534
  rdfs:comment "Two stratigraphic units are physically bonded (e.g. masonry bonding). Symmetric. Maps to: connections_datamodel edges 'bonded_to' / 'is_bonded_to'."@en .
@@ -531,7 +536,7 @@ em:bondedTo
531
536
  em:physicallyEquals
532
537
  a owl:ObjectProperty , owl:SymmetricProperty ;
533
538
  rdfs:label "physically equals"@en ;
534
- rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation ;
539
+ rdfs:subPropertyOf crmarchaeo:AP11_has_physical_relation_to ;
535
540
  rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
536
541
  rdfs:range crmarchaeo:A8_Stratigraphic_Unit ;
537
542
  rdfs:comment "Two distinct stratigraphic-unit ids refer to the same physical entity (e.g. across campaigns or archives). Symmetric. Maps to: connections_datamodel edges 'equals' / 'is_physically_equal_to'."@en .
@@ -612,13 +617,13 @@ em:UnknownNode
612
617
  em:NodeGroup
613
618
  a owl:Class ;
614
619
  rdfs:label "Node Group (abstract)"@en ;
615
- rdfs:subClassOf crm:E78_Collection ;
620
+ rdfs:subClassOf crm:E73_Information_Object ;
616
621
  rdfs:comment "Abstract superclass of the EM grouping axes — activity (intention), paradata (justification), timebranch (alternative time), location (place), functional unit (architectural composition). A group is a Collection of nodes and never changes what its members ARE. Maps to: Python GroupNode (node_type='Group')."@en .
617
622
 
618
623
  em:ParadataNodeGroup
619
624
  a owl:Class ;
620
625
  rdfs:label "Paradata Node Group"@en ;
621
- rdfs:subClassOf em:NodeGroup , crm:E78_Collection ;
626
+ rdfs:subClassOf em:NodeGroup , crm:E89_Propositional_Object ;
622
627
  rdfs:comment "All the paradata of one stratigraphic unit gathered as a unit, by EM convention named '[US_name]_PD'. Distinct class so the paradata groups are findable by type rather than by naming convention. Maps to: Python ParadataNodeGroup (node_type='ParadataNodeGroup')."@en .
623
628
 
624
629
  em:LocationNodeGroup
@@ -635,5 +640,112 @@ em:GeoPositionNode
635
640
 
636
641
 
637
642
  # ============================================================================
638
- # End of em.ttl v1.6.1
643
+ # 12. TERMS THE DATAMODELS CITE — declared here for the first time
644
+ # (added 2026-09-21, repair pass on the CIDOC mapping)
645
+ # ============================================================================
646
+ #
647
+ # These eight em: terms were named by s3Dgraphy_node_datamodel.json and
648
+ # s3Dgraphy_connections_datamodel.json and never defined here. An undefined
649
+ # term is not an error anywhere: it serialises as a perfectly well-formed IRI
650
+ # that no reasoner can place and no query can reach through its superclass.
651
+ # Domain, range and superclass below are READ OFF the datamodels
652
+ # (em_extension.subclass_of, mapping.cidoc, allowed_connections) — nothing is
653
+ # invented. Where the datamodel did not say, the field is absent and the
654
+ # comment says so.
655
+
656
+ em:FunctionalUnit
657
+ a owl:Class ;
658
+ rdfs:label "Functional Unit"@en ;
659
+ rdfs:subClassOf crm:E24_Physical_Human-Made_Thing ;
660
+ rdfs:comment "The stratigraphic units that together make up one recognisable functional or architectural component — the column made of its US, the wall made of its US (DP-72). Physical, not curatorial: it takes E24 rather than the collection class its em:NodeGroup parent carries, because a component is a whole made of parts and not a set somebody assembled. It is likewise not an em:WorkingUnit (an activity axis: why something was done) — this answers what a set of units IS. Since 2026-09-21 it is also a bearer of the temporal index: has_first_epoch and survive_in_epoch both accept it, and the asymmetry with ActivityNodeGroup (which takes has_first_epoch and never survive_in_epoch) is the point — an activity is an event and does not survive, a thing persists. Maps to: Python FunctionalUnitNodeGroup (node_type=\'FunctionalUnitNodeGroup\')."@en .
661
+
662
+ em:RepresentationModelNodeGroup
663
+ a owl:Class ;
664
+ rdfs:label "Representation Model Container"@en ;
665
+ rdfs:subClassOf em:NodeGroup , crm:E73_Information_Object ;
666
+ rdfs:comment "The representation models that form ONE named set published under a single Document — «Survey 2015» under D.01, «Reconstruction» under D.09 (EM16-RMNG, 2026-09-10). The one group subtype that does not override its parent class: a container of models is a conceptual set, not a physical thing and not an event. Membership is 1:1 — a mesh belongs to exactly one container — and the container sits BESIDE the direct Document→model edges, never in between. Maps to: Python RepresentationModelNodeGroup (node_type=\'RepresentationModelNodeGroup\')."@en .
667
+
668
+ em:GCPSet
669
+ a owl:Class ;
670
+ rdfs:label "Ground Control Point Set"@en ;
671
+ rdfs:subClassOf crm:E73_Information_Object ;
672
+ rdfs:comment "The set of ground control points a registration was (or will be) solved from: a documented list of measured places and, for each, where it was observed. An information object that CARRIES places and measurements without being either — it is not an E53 Place and not a crmsci:S21 Measurement. Named in the EM extension because «the control points behind this registration» is the unit archaeologists actually hand each other, and CIDOC has nothing above E73 for it. The individual observations stay payload literals in this version; exploding each point into an S21 Measurement of an E53 Place is declared as a refinement, not implied. Maps to: Python GCPSetNode (node_type=\'gcp_set\')."@en .
673
+
674
+ em:RegistrationTransform
675
+ a owl:Class ;
676
+ rdfs:label "Registration Transform"@en ;
677
+ rdfs:subClassOf crm:E73_Information_Object ;
678
+ rdfs:comment "The 7-parameter similarity (rotation, translation, positive scale) that places a produced model in a frame, carrying its own error bar (rms, residuals) beside the claim rather than in a log nobody keeps. It DESCRIBES a mapping between two crmgeo:SP4 spatial coordinate reference systems, which CIDOC and CRMgeo model individually but never as a parameterised map between two of them — hence E73 as the honest superclass. Deliberately NOT an event: the alternative, leaving the parameters as literals on the D7 acquisition, loses the ability to point at «the placement» as a thing that gets superseded, and being superseded is the whole reason the transform is a node. The three modes are the SHAPE of the graph, never a flag: 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. Maps to: Python RegistrationTransformNode (node_type=\'registration_transform\')."@en .
679
+
680
+ em:Narrative
681
+ a owl:Class ;
682
+ rdfs:label "Narrative"@en ;
683
+ rdfs:subClassOf crm:E33_Linguistic_Object ;
684
+ rdfs:comment "A narrative over the EM graph: an ordered sequence of chapters, each anchored to a lane (epoch, activity, area) or standing outside the stratigraphy (introduction, geographic placement), composed of prose blocks and embed blocks. E33 because the narrative IS linguistic content about the heritage entity — and an E33 is already an E73 Information Object in CRM, so it is versionable, licensable and embargoable like the graph itself without a second assertion. The embeds are not content but references, and project as P67_refers_to. Endorsement is a separate act and a separate edge: see em:validatedBy. Maps to: Python NarrativeNode (node_type=\'narrative\')."@en .
685
+
686
+ em:NeutralSU
687
+ a owl:Class ;
688
+ rdfs:label "Neutral Stratigraphic Unit (USNt)"@en ;
689
+ rdfs:subClassOf crmarchaeo:A3_Stratigraphic_Interface ;
690
+ rdfs:comment "PROVISIONAL (datamodel extension_status: proposed_provisional — the class is declared so the IRI stops being undefined, NOT because the CIDOC placement is settled). A void that is part of the DESIGN and not the product of a destruction: the risparmi of masonry, a window or door opening, a niche, the empty volume of a room. The wall was built around it, so nothing was ever removed — which is what separates it from the negative unit, whose void is what a destructive act left behind. A3 Stratigraphic Interface is the better-informed placeholder; the genesis it wants is CONSTRUCTIVE (A4-flavoured), not the A5 destructive modification the negative unit takes. Consequence already enforced in the connections datamodel: USNt takes is_after / is_before and nothing else — a void cannot cut, fill, abut or bond. Maps to: Python NeutralStratigraphicUnit (stratigraphic subtype token \'USNt\' since POL6, 2026-08-04)."@en .
691
+
692
+ em:hasSubEpoch
693
+ a owl:ObjectProperty ;
694
+ rdfs:label "has sub-epoch"@en ;
695
+ rdfs:domain crm:E4_Period ;
696
+ rdfs:range crm:E4_Period ;
697
+ rdfs:comment "Splits an epoch into ordered sub-epochs (phases): the SUBJECT is the parent epoch, the OBJECT a phase, which is itself an epoch. Direction taken from the connections datamodel, which states it in words — «Source is the parent epoch, target a phase» — and from the edge\'s own name; the reverse edge is is_in_epoch. Phases partition the parent\'s time-span: when hidden the parent holds all the units, when shown the units are distributed across the phases. NO rdfs:subPropertyOf IS ASSERTED, deliberately. The edge\'s mapping.cidoc is crm:P10_falls_within, whose containment runs the other way (a phase falls within its parent, as that mapping\'s own _comment says) — so the CRM projection of this edge is currently written source-first on the wrong end, and the superproperty here would bake that in. crm:P10i_contains is the candidate; the decision is E.D.\'s and is recorded in the repair report of 2026-09-21. Maps to: connections_datamodel edge \'has_sub_epoch\'."@en .
698
+
699
+ em:validatedBy
700
+ a owl:ObjectProperty ;
701
+ rdfs:label "validated by"@en ;
702
+ rdfs:subPropertyOf prov:wasInfluencedBy ;
703
+ rdfs:domain em:Narrative ;
704
+ rdfs:range em:HumanAuthor ;
705
+ rdfs:comment "A HUMAN author endorses a piece of content: they have read it and put their name to it (EM Narrative N4, «Who Made This?»). Distinct from em:hasAuthor, and the distinction is the point: hasAuthor says who WROTE it, human or AI; validatedBy says who accepted RESPONSIBILITY for it. The range is em:HumanAuthor and never em:AIAuthor — a model endorsing a model would be a signature with nobody behind it. It is not a quality judgement and not a peer review. The absence of the property IS the unendorsed state, so a machine draft cannot claim an endorsement it never received. Superproperty and domain/range read off the connections datamodel (mapping.cidoc prov:wasInfluencedBy; source NarrativeNode, target AuthorNode). prov:wasInfluencedBy is the domain-neutral anchor because it is true and claims nothing more: endorsement has no exact term in CIDOC-CRM or PROV-O, and the datamodel records that an E13 Attribute Assignment reification is where this would change. Maps to: connections_datamodel edge \'validated_by\'."@en .
706
+
707
+
708
+ # ============================================================================
709
+ # CRMem v1.6.3 (2026-09-21) — the first of the four surviving CRMem properties
710
+ # Decided by E.D. in the CIDOC-EM branch chat, 21 September 2026.
711
+ # ============================================================================
712
+
713
+ em:isInActivity
714
+ a owl:ObjectProperty ;
715
+ rdfs:label "is in activity"@en ;
716
+ rdfs:domain crm:E1_CRM_Entity ;
717
+ rdfs:range crm:E7_Activity ;
718
+ rdfs:comment "An entity of any kind — a stratigraphic unit, a quale, a document, an extractor, a whole paradata group — is CLASSIFIED UNDER an activity-shaped grouping. This is the axis of INTENTION in the Extended Matrix, orthogonal to space (is_in_location) and to time (the epoch edges), and it is a curatorial grouping and not an event anyone attended. NO SUPERPROPERTY, deliberately, and the reason is the whole justification for the term: CIDOC can say that an actor PARTICIPATED in an event (P11i), that a thing WAS PRESENT (P12i), that an object WAS USED (P16i) — but it cannot say that an arbitrary entity is classified under an activity. P12i would even pass the type check, because E28 Conceptual Object reaches E77 through E71/E70, but it would be false: a PropertyNode attended nothing. P9i needs an E4 Period in the subject and the sources here are not periods; P129i needs an E89 in the object and E7 Activity is not one. Verified against CIDOC CRM 7.1.3 and CRMarchaeo 2.1.1: CRMarchaeo has specific archaeological activities (A9, A1, A6) but no generic activity class and none of its 32 AP properties expresses membership in one. The CLASS is not ours — crm:E7_Activity is CIDOC core and ActivityNodeGroup stays mapped to it — only the property is. NAMED isInActivity and NOT participatedInActivity (the dead CIDOC-S3D desideratum it replaces), because participation is a claim this model does not make. Maps to: connections_datamodel edge 'is_in_activity' (sources StratigraphicNode/ParadataNode/ParadataNodeGroup/DocumentNode/ExtractorNode/CombinerNode/PropertyNode, target ActivityNodeGroup); mapping.cidoc stays EMPTY on purpose, and the exporter emits this property on its own."@en .
719
+
720
+ em:belongsToAlternative
721
+ a owl:ObjectProperty ;
722
+ rdfs:label "belongs to alternative"@en ;
723
+ rdfs:domain crm:E1_CRM_Entity ;
724
+ rdfs:range em:TimeBranch ;
725
+ rdfs:subPropertyOf crminf:J28i_is_referred_to_in ;
726
+ rdfs:comment "An entity belongs to one alternative reconstruction scenario rather than another. UNLIKE em:contrastsWith and em:isInActivity this term HAS an honest ceiling: CRMinf does cover membership in a set of propositions (J28/J28i, and since 1.2 the I17 pattern with J30/J31/J32), so the extension NARROWS here instead of widening. What it adds beneath that ceiling is the identity of the scenario as an addressable thing, which the bare membership property does not carry: a reader must be able to ask which units belong to scenario B, not merely that they are referred to somewhere. Maps to: connections_datamodel edges is_in_timebranch (source StratigraphicNode, target TimeBranchNodeGroup) and the deprecated has_timebranch. Replaces the dead desideratum CIDOC-S3D:belongsToAlternative, which named the same thing under a prefix that resolved to nothing."@en .
727
+
728
+ em:hasSemanticShape
729
+ a owl:ObjectProperty ;
730
+ rdfs:label "has semantic shape"@en ;
731
+ rdfs:domain crm:E1_CRM_Entity ;
732
+ rdfs:range em:SemanticShape ;
733
+ rdfs:comment "An entity is represented, for the purpose of spatial reasoning, by a simplified geometry that STANDS FOR it — a convex hull, a sphere, a proximity volume — as distinct from a geometry that measures it. The two answer different questions: a measured geometry says where the unit was found, a semantic shape says how it is to be reasoned about spatially when its true shape is unknown, irrelevant, or argued. NO SUPERPROPERTY: crmgeo places (SP5 and its neighbourhood) express a place expression, not a schematic stand-in, and since the proxy-as-property change of v1.6.10 the source of this relation includes a PropertyNode — a quale does not occupy a place, so a place-valued property would be false as well as imprecise. The CLASS is ours (em:SemanticShape, itself declared beneath crm:E73_Information_Object) because the stand-in is an information object and not a physical extent. Maps to: connections_datamodel edge has_semantic_shape (source Node, target SemanticShapeNode). Replaces the dead desideratum CIDOC-S3D:hasSymbolicSpatialRepresentation."@en .
734
+
735
+ # ============================================================================
736
+ # 13. NODE ELEMENTS — CRMem v1.6.5 (2026-10-20)
737
+ # Decided by E.D. on 2026-09-27: the definition of a unit is an ELEMENT
738
+ # OF THE NODE, like name and description — not a qualia.
739
+ # ============================================================================
740
+
741
+ em:hasDefinition
742
+ a owl:ObjectProperty ;
743
+ rdfs:label "has definition"@en ;
744
+ rdfs:subPropertyOf crm:P2_has_type ;
745
+ rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
746
+ rdfs:range crm:E55_Type ;
747
+ rdfs:comment "The DEFINITION of a stratigraphic unit — strato di crollo, riempimento, taglio: the DEFINIZIONE box of the US sheet — as a concept of a controlled vocabulary (a SKOS concept, typed crm:E55_Type). It is a TYPE of the unit and nothing more, which is why it narrows crm:P2_has_type rather than widening anything: every em:hasDefinition triple IS a P2_has_type triple, and a CIDOC-only consumer reading the entailment loses nothing. What the subproperty adds is the ability to tell, in SPARQL, the definition from any other type a unit may carry. NOT EMITTED BY DEFAULT: the exporter writes crm:P2_has_type directly (node datamodel StratigraphicNode.properties.definition.rdf.with_concept), because an unreasoned store would otherwise not see the P2 edge at all; the switch is one line in that entry. A definition that carries only a label and no concept URI projects to nothing (rdf.label_only = null): a word is not a concept. Maps to: node_datamodel StratigraphicNode.properties.definition (em.json data.definition), inherited by every stratigraphic subtype."@en .
748
+
749
+ # ============================================================================
750
+ # End of em.ttl v1.6.5
639
751
  # ============================================================================
@@ -3,7 +3,8 @@
3
3
  "version": "2.0",
4
4
  "last_updated": "2025-01-29",
5
5
  "maintainers": ["Emanuel Demetrescu"],
6
- "license": "CC-BY-4.0",
6
+ "license": "CC-BY-SA-4.0",
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.",
7
8
  "description": "Comprehensive document types definition for Extended Matrix"
8
9
  },
9
10
  "vocabulary_versions": {