s3dgraphy 1.6.0.dev11__tar.gz → 1.6.0.dev13__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 (309) hide show
  1. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/MANIFEST.in +1 -0
  2. {s3dgraphy-1.6.0.dev11/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev13}/PKG-INFO +10 -2
  3. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/pyproject.toml +55 -3
  4. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +75 -0
  5. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +24 -0
  6. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +20 -0
  7. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em.ttl +2 -2
  8. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em_qualia_types.json +7 -0
  9. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em_visual_rules.json +187 -142
  10. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/hdto_extension.ttl +57 -1
  11. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/node_registry.generated.json +271 -0
  12. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +262 -13
  13. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +308 -266
  14. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/ActivityNodeGroup.svg +1 -0
  15. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/EMNarrative.png +0 -0
  16. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/EMNarrative.svg +64 -0
  17. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/EpochNode.svg +1 -0
  18. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/ParadataNodeGroup.svg +1 -0
  19. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/SE.svg +46 -0
  20. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/SE_old.png +0 -0
  21. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/SE_old.svg +65 -0
  22. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/SF.svg +32 -0
  23. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/US.svg +32 -0
  24. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/USD.svg +32 -0
  25. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/USVn.svg +32 -0
  26. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/USVs.svg +32 -0
  27. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/UTR.svg +24 -0
  28. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/VSF.svg +32 -0
  29. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
  30. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/author.svg +1 -0
  31. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
  32. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/combiner.svg +95 -0
  33. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/continuity.svg +19 -0
  34. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/document.svg +27 -0
  35. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/00_transformation.svg +76 -0
  36. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/01_topographicnetwork.svg +78 -0
  37. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/02_pointcloud.svg +68 -0
  38. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/03_mesh.svg +130 -0
  39. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/04_points.svg +119 -0
  40. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/05_lines.svg +67 -0
  41. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/06_polygons.svg +71 -0
  42. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/07_DEM.svg +77 -0
  43. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/08_ortophoto.svg +136 -0
  44. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/09_photos.svg +89 -0
  45. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/dtc/10_laserscanner.svg +99 -0
  46. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
  47. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/extractor.svg +35 -0
  48. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/generic_node.svg +38 -0
  49. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/geo_position.svg +1 -0
  50. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
  51. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/link.svg +1 -0
  52. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
  53. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/play.svg +1 -0
  54. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/property.svg +42 -0
  55. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/representation_model.svg +1 -0
  56. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/representation_model_doc.svg +1 -0
  57. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/representation_model_sf.svg +1 -0
  58. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/semantic_shape.svg +1 -0
  59. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/serSU.svg +32 -0
  60. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/serUSVn.svg +32 -0
  61. s3dgraphy-1.6.0.dev13/src/s3dgraphy/JSON_config/src/2D/serUSVs.svg +32 -0
  62. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/__init__.py +1 -1
  63. s3dgraphy-1.6.0.dev13/src/s3dgraphy/acquisition/__init__.py +32 -0
  64. s3dgraphy-1.6.0.dev13/src/s3dgraphy/acquisition/acquire.py +133 -0
  65. s3dgraphy-1.6.0.dev13/src/s3dgraphy/acquisition/descriptor.py +105 -0
  66. s3dgraphy-1.6.0.dev13/src/s3dgraphy/acquisition/mapping.py +109 -0
  67. s3dgraphy-1.6.0.dev13/src/s3dgraphy/api.py +1816 -0
  68. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/__init__.py +29 -0
  69. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/resolver.py +190 -0
  70. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/snapshots/LICENSE +22 -0
  71. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +23 -0
  72. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +51 -0
  73. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +25 -0
  74. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/snapshots/periodo.jsonld +29 -0
  75. s3dgraphy-1.6.0.dev13/src/s3dgraphy/authorities/snapshots/provenance.json +41 -0
  76. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/classification.py +3 -2
  77. s3dgraphy-1.6.0.dev13/src/s3dgraphy/dtc/__init__.py +34 -0
  78. s3dgraphy-1.6.0.dev13/src/s3dgraphy/dtc/residency.py +193 -0
  79. s3dgraphy-1.6.0.dev13/src/s3dgraphy/edges/__init__.py +47 -0
  80. s3dgraphy-1.6.0.dev13/src/s3dgraphy/edges/connection_resolver.py +536 -0
  81. s3dgraphy-1.6.0.dev13/src/s3dgraphy/exporter/docx_exporter.py +186 -0
  82. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/emjson_exporter.py +49 -11
  83. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +1 -1
  84. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +2 -3
  85. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/json_exporter.py +3 -3
  86. s3dgraphy-1.6.0.dev13/src/s3dgraphy/exporter/latex_exporter.py +379 -0
  87. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/rdf_exporter.py +222 -14
  88. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/graph.py +169 -34
  89. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/base_importer.py +27 -8
  90. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/emjson_importer.py +80 -9
  91. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/import_graphml.py +372 -71
  92. s3dgraphy-1.6.0.dev13/src/s3dgraphy/importer/source_text.py +171 -0
  93. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/unified_xlsx_importer.py +87 -9
  94. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/xlsx_importer.py +3 -2
  95. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/registry.py +8 -2
  96. s3dgraphy-1.6.0.dev13/src/s3dgraphy/mappings/source_list/source_list_mapping.json +34 -0
  97. s3dgraphy-1.6.0.dev13/src/s3dgraphy/narrative/__init__.py +36 -0
  98. s3dgraphy-1.6.0.dev13/src/s3dgraphy/narrative/bake.py +486 -0
  99. s3dgraphy-1.6.0.dev13/src/s3dgraphy/narrative/generation.py +380 -0
  100. s3dgraphy-1.6.0.dev13/src/s3dgraphy/narrative/registry.py +125 -0
  101. s3dgraphy-1.6.0.dev13/src/s3dgraphy/narrative/site_story.py +285 -0
  102. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/__init__.py +43 -2
  103. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/document_node.py +75 -28
  104. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/dtc_acquisition_node.py +31 -0
  105. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/dtc_node.py +66 -0
  106. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/dtc_process_node.py +21 -0
  107. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/geo_position_node.py +67 -0
  108. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/group_node.py +244 -0
  109. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/heritage_entity_node.py +58 -0
  110. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/narrative_node.py +515 -0
  111. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/project_node.py +49 -0
  112. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/representation_node.py +26 -2
  113. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/stratigraphic_node.py +72 -14
  114. s3dgraphy-1.6.0.dev13/src/s3dgraphy/nodes/study_node.py +50 -0
  115. s3dgraphy-1.6.0.dev13/src/s3dgraphy/resources/__init__.py +69 -0
  116. s3dgraphy-1.6.0.dev13/src/s3dgraphy/resources/fs_backend.py +285 -0
  117. s3dgraphy-1.6.0.dev13/src/s3dgraphy/resources/minio_backend.py +254 -0
  118. s3dgraphy-1.6.0.dev13/src/s3dgraphy/resources/resolver.py +155 -0
  119. s3dgraphy-1.6.0.dev13/src/s3dgraphy/shelf/__init__.py +64 -0
  120. s3dgraphy-1.6.0.dev13/src/s3dgraphy/shelf/core.py +612 -0
  121. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/graphml_writer.py +7 -0
  122. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/rapporti.py +5 -1
  123. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/templates/em_palette_template.graphml +21 -12
  124. s3dgraphy-1.6.0.dev13/src/s3dgraphy/tools/sync_node_datamodel.py +145 -0
  125. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/transforms/__init__.py +2 -0
  126. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/transforms/aux_tracking.py +43 -0
  127. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/utils/utils.py +109 -19
  128. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13/src/s3dgraphy.egg-info}/PKG-INFO +10 -2
  129. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy.egg-info/SOURCES.txt +130 -1
  130. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy.egg-info/requires.txt +13 -1
  131. s3dgraphy-1.6.0.dev13/tests/test_acquisition.py +157 -0
  132. s3dgraphy-1.6.0.dev13/tests/test_acquisition_fs.py +62 -0
  133. s3dgraphy-1.6.0.dev13/tests/test_api_surface.py +76 -0
  134. s3dgraphy-1.6.0.dev13/tests/test_authority_projection.py +99 -0
  135. s3dgraphy-1.6.0.dev13/tests/test_authority_resolver.py +81 -0
  136. s3dgraphy-1.6.0.dev13/tests/test_canonical_document_rename.py +209 -0
  137. s3dgraphy-1.6.0.dev13/tests/test_canvas_metadata_import.py +47 -0
  138. s3dgraphy-1.6.0.dev13/tests/test_connection_resolver.py +339 -0
  139. s3dgraphy-1.6.0.dev13/tests/test_convert_command.py +138 -0
  140. s3dgraphy-1.6.0.dev13/tests/test_deterministic_ids.py +156 -0
  141. s3dgraphy-1.6.0.dev13/tests/test_dtc_projection.py +144 -0
  142. s3dgraphy-1.6.0.dev13/tests/test_dtc_residency.py +178 -0
  143. s3dgraphy-1.6.0.dev13/tests/test_emjson_schema_version.py +154 -0
  144. s3dgraphy-1.6.0.dev13/tests/test_epoch_undated_import.py +54 -0
  145. s3dgraphy-1.6.0.dev13/tests/test_explicit_node_type_marker.py +129 -0
  146. s3dgraphy-1.6.0.dev13/tests/test_fs_backend.py +245 -0
  147. s3dgraphy-1.6.0.dev13/tests/test_functional_units.py +228 -0
  148. s3dgraphy-1.6.0.dev13/tests/test_georeference_scene.py +262 -0
  149. s3dgraphy-1.6.0.dev13/tests/test_hdto_projection.py +130 -0
  150. s3dgraphy-1.6.0.dev13/tests/test_importer_edge_hygiene.py +305 -0
  151. s3dgraphy-1.6.0.dev13/tests/test_latex_exporter.py +284 -0
  152. s3dgraphy-1.6.0.dev13/tests/test_material_color.py +145 -0
  153. s3dgraphy-1.6.0.dev13/tests/test_minio_backend.py +220 -0
  154. s3dgraphy-1.6.0.dev13/tests/test_narrative_authorship.py +299 -0
  155. s3dgraphy-1.6.0.dev13/tests/test_narrative_bake_docx.py +448 -0
  156. s3dgraphy-1.6.0.dev13/tests/test_narrative_generation.py +401 -0
  157. s3dgraphy-1.6.0.dev13/tests/test_narrative_node.py +324 -0
  158. s3dgraphy-1.6.0.dev13/tests/test_narrative_scaffolder.py +317 -0
  159. s3dgraphy-1.6.0.dev13/tests/test_node_datamodel_registry.py +18 -0
  160. s3dgraphy-1.6.0.dev13/tests/test_recompute_warnings.py +356 -0
  161. s3dgraphy-1.6.0.dev13/tests/test_reproject.py +169 -0
  162. s3dgraphy-1.6.0.dev13/tests/test_resource_layer.py +160 -0
  163. s3dgraphy-1.6.0.dev13/tests/test_shelf.py +130 -0
  164. s3dgraphy-1.6.0.dev13/tests/test_shelf_facets.py +361 -0
  165. s3dgraphy-1.6.0.dev13/tests/test_shelf_hatting.py +104 -0
  166. s3dgraphy-1.6.0.dev13/tests/test_source_list_mapping.py +29 -0
  167. s3dgraphy-1.6.0.dev13/tests/test_source_text.py +222 -0
  168. s3dgraphy-1.6.0.dev13/tests/test_stratiminer_api.py +317 -0
  169. s3dgraphy-1.6.0.dev13/tests/test_ttl_roundtrip.py +77 -0
  170. s3dgraphy-1.6.0.dev13/tests/test_xlsx_importer_graph_init.py +48 -0
  171. s3dgraphy-1.6.0.dev11/src/s3dgraphy/edges/__init__.py +0 -24
  172. s3dgraphy-1.6.0.dev11/src/s3dgraphy/nodes/geo_position_node.py +0 -44
  173. s3dgraphy-1.6.0.dev11/src/s3dgraphy/nodes/group_node.py +0 -127
  174. s3dgraphy-1.6.0.dev11/src/s3dgraphy/tools/sync_node_datamodel.py +0 -131
  175. s3dgraphy-1.6.0.dev11/tests/test_node_datamodel_registry.py +0 -17
  176. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/LICENSE +0 -0
  177. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/README.md +0 -0
  178. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/setup.cfg +0 -0
  179. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
  180. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
  181. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
  182. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
  183. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
  184. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
  185. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
  186. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
  187. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
  188. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
  189. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
  190. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
  191. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
  192. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
  193. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
  194. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
  195. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
  196. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
  197. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
  198. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
  199. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
  200. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
  201. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
  202. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
  203. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
  204. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
  205. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
  206. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
  207. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
  208. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
  209. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
  210. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
  211. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
  212. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
  213. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
  214. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
  215. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
  216. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
  217. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
  218. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
  219. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
  220. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
  221. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/diagnostics.py +0 -0
  222. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/edges/connections_loader.py +0 -0
  223. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/edges/edge.py +0 -0
  224. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/__init__.py +0 -0
  225. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
  226. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
  227. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
  228. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
  229. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/group_node_generator.py +0 -0
  230. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/node_generator.py +0 -0
  231. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
  232. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
  233. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
  234. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
  235. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
  236. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
  237. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
  238. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
  239. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/__init__.py +0 -0
  240. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
  241. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
  242. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/importer/qualia_importer.py +0 -0
  243. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/indices.py +0 -0
  244. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/__init__.py +0 -0
  245. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
  246. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
  247. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
  248. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
  249. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
  250. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
  251. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
  252. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/merge/__init__.py +0 -0
  253. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/merge/graph_merger.py +0 -0
  254. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/multigraph/__init__.py +0 -0
  255. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/multigraph/multigraph.py +0 -0
  256. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/author_node.py +0 -0
  257. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/base_node.py +0 -0
  258. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/combiner_node.py +0 -0
  259. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/embargo_node.py +0 -0
  260. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/epoch_node.py +0 -0
  261. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/extractor_node.py +0 -0
  262. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/graph_node.py +0 -0
  263. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/hdt_node.py +0 -0
  264. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/license_node.py +0 -0
  265. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/link_node.py +0 -0
  266. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/paradata_node.py +0 -0
  267. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/property_node.py +0 -0
  268. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
  269. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/resolvers/__init__.py +0 -0
  270. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
  271. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
  272. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/__init__.py +0 -0
  273. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/_db_handle.py +0 -0
  274. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
  275. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/_workspace.py +0 -0
  276. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
  277. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/edge_registry.py +0 -0
  278. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
  279. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/graph_projector.py +0 -0
  280. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/group_projector.py +0 -0
  281. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/group_store.py +0 -0
  282. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/ingest_result.py +0 -0
  283. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/paradata_store.py +0 -0
  284. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
  285. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/uuid7.py +0 -0
  286. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
  287. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/vocab_types.py +0 -0
  288. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/yed_classifier.py +0 -0
  289. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/yed_detector.py +0 -0
  290. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
  291. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
  292. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
  293. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
  294. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
  295. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/temporal/__init__.py +0 -0
  296. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/temporal/inference_engine.py +0 -0
  297. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/tools/__init__.py +0 -0
  298. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/transforms/compact.py +0 -0
  299. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/transforms/materialize_continuity.py +0 -0
  300. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/utils/__init__.py +0 -0
  301. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy/utils/visual_layout.py +0 -0
  302. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
  303. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/src/s3dgraphy.egg-info/top_level.txt +0 -0
  304. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/tests/test_composite_node_name.py +0 -0
  305. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/tests/test_emjson_roundtrip.py +0 -0
  306. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/tests/test_filtered_import.py +0 -0
  307. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/tests/test_lossless_roundtrip.py +0 -0
  308. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/tests/test_pg_importer.py +0 -0
  309. {s3dgraphy-1.6.0.dev11 → s3dgraphy-1.6.0.dev13}/tests/test_pyarchinit_tier2.py +0 -0
@@ -6,3 +6,4 @@ recursive-include src/s3dgraphy/JSON_config/src *
6
6
  recursive-include src/s3dgraphy/mappings *.json
7
7
  recursive-include src/s3dgraphy/data *
8
8
  recursive-include src/s3dgraphy/templates *
9
+ recursive-include src/s3dgraphy/authorities/snapshots *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: s3dgraphy
3
- Version: 1.6.0.dev11
3
+ Version: 1.6.0.dev13
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>
@@ -47,6 +47,14 @@ Provides-Extra: sync
47
47
  Requires-Dist: sqlalchemy>=2.0; extra == "sync"
48
48
  Provides-Extra: postgres
49
49
  Requires-Dist: psycopg2-binary>=2.9; extra == "postgres"
50
+ Provides-Extra: minio
51
+ Requires-Dist: minio>=7.0; extra == "minio"
52
+ Provides-Extra: geo
53
+ Requires-Dist: pyproj>=3.4; extra == "geo"
54
+ Provides-Extra: pdf
55
+ Requires-Dist: pypdf>=4.0; extra == "pdf"
56
+ Provides-Extra: docx
57
+ Requires-Dist: python-docx>=1.1; extra == "docx"
50
58
  Provides-Extra: dev
51
59
  Requires-Dist: pytest>=7.0; extra == "dev"
52
60
  Requires-Dist: pytest-cov; extra == "dev"
@@ -61,7 +69,7 @@ Requires-Dist: sphinx>=5.0; extra == "docs"
61
69
  Requires-Dist: sphinx-rtd-theme; extra == "docs"
62
70
  Requires-Dist: myst-parser; extra == "docs"
63
71
  Provides-Extra: full
64
- Requires-Dist: s3dgraphy[rdf-embedded,sync,visualization]; extra == "full"
72
+ Requires-Dist: s3dgraphy[geo,minio,rdf-embedded,sync,visualization]; extra == "full"
65
73
  Provides-Extra: all
66
74
  Requires-Dist: s3dgraphy[dev,docs,full,postgres]; extra == "all"
67
75
  Dynamic: license-file
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "s3dgraphy"
7
- version = "1.6.0.dev11"
7
+ version = "1.6.0.dev13"
8
8
  description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -81,7 +81,8 @@ rdf = [
81
81
  ]
82
82
  rdf-embedded = [
83
83
  # RDF export + embedded SPARQL store (no separate server required).
84
- # Planned for s3dgraphy v1.6.3+ (SPARQL endpoint read/write workflow).
84
+ # Kept available for later (embedded read/write workflow); Phase 1 uses the
85
+ # TTL projection (→ Virtuoso later), so this extra is not pursued yet.
85
86
  "rdflib>=7.0",
86
87
  "pyoxigraph>=0.4",
87
88
  ]
@@ -106,6 +107,52 @@ postgres = [
106
107
  # the PG path of PyArchInitImporter when that lands.
107
108
  "psycopg2-binary>=2.9",
108
109
  ]
110
+ minio = [
111
+ # MinIO / S3 object-storage backend for the Resource layer
112
+ # (s3dgraphy.resources.minio_backend, R2). Without this extra, constructing
113
+ # a client / ingesting raises MissingDependency (like rdflib for TTL);
114
+ # resolve()/manifest work dep-free on an already-populated index.
115
+ "minio>=7.0",
116
+ ]
117
+ geo = [
118
+ # Coordinate reprojection for api.reproject / api.georeference_scene (G1).
119
+ # Excavation coordinates are normally PROJECTED (UTM, national grids) with
120
+ # an EPSG code, and a map needs WGS84: that conversion needs PROJ.
121
+ #
122
+ # pyproj and not GDAL on purpose: the pyproj wheels BUNDLE PROJ, so this
123
+ # extra installs with pip alone — no system binaries, no GDAL build. That
124
+ # is exactly the fragile pipe this avoids. Without the extra, reprojection
125
+ # raises MissingDependency (like rdflib for TTL) and every caller degrades:
126
+ # the library imports, the graph loads, only the conversion is unavailable.
127
+ "pyproj>=3.4",
128
+ ]
129
+ pdf = [
130
+ # Text extraction from PDF sources, for StratiMiner's Path A
131
+ # (api.source_text). Without it a PDF is listed by name and its text is not
132
+ # read — the honest degradation, not an error.
133
+ #
134
+ # pypdf and NOT PyMuPDF (E.D., 2026-08-03): PyMuPDF renders beautifully and
135
+ # weighs 21 MB, all of which the FROZEN em-bridge sidecar would carry in order
136
+ # to read some paragraphs. pypdf is ~350 KB, pure Python, no dependencies and
137
+ # no compiled extension — so it also installs next to Blender's interpreter
138
+ # without a build step. It reads the text LAYER; it does not do OCR, so a
139
+ # scanned PDF reports "no text layer" instead of returning an empty string
140
+ # that would read as an empty document.
141
+ "pypdf>=4.0",
142
+ ]
143
+ docx = [
144
+ # .docx rendering of a baked narrative (BK1, api.export_narrative_docx).
145
+ # DocX is the format for the reader who will never see the graph — LaTeX
146
+ # serves the apparatus and Jupyter the analysis — so it is a first-class
147
+ # output, but not every consumer publishes: a Blender addon and the GraphML
148
+ # chain must not carry a Word writer.
149
+ #
150
+ # The PyPI package is `python-docx`; the import is `docx`. There is an
151
+ # unrelated `docx` on PyPI, which is why the MissingDependency message names
152
+ # both. Without the extra, api.bake_narrative still works — the bake is
153
+ # independent of every renderer — and only export_narrative_docx raises.
154
+ "python-docx>=1.1",
155
+ ]
109
156
  dev = [
110
157
  "pytest>=7.0",
111
158
  "pytest-cov",
@@ -125,7 +172,7 @@ docs = [
125
172
  # without the dev/docs tooling. The dev/docs/test stacks stay separate
126
173
  # so CI-style installs don't pull editor/QA deps.
127
174
  full = [
128
- "s3dgraphy[rdf-embedded,visualization,sync]",
175
+ "s3dgraphy[rdf-embedded,visualization,sync,minio,geo]",
129
176
  ]
130
177
  all = [
131
178
  "s3dgraphy[full,dev,docs,postgres]",
@@ -148,6 +195,11 @@ s3dgraphy = [
148
195
  "mappings/*",
149
196
  "mappings/*.json",
150
197
  ]
198
+ # authorities snapshots (P1-D) are DATA files in a subpackage — ship them in the
199
+ # wheel so the offline resolver works when installed (e.g. bundled into Blender).
200
+ "s3dgraphy.authorities" = [
201
+ "snapshots/*",
202
+ ]
151
203
 
152
204
  [tool.black]
153
205
  line-length = 88
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://w3id.org/em/acquisition-descriptor/0",
4
+ "title": "AcquisitionDescriptor",
5
+ "description": "The versioned acquisition seam (design note §4): a stable JSON descriptor an acquisition front-end (OpenShelf, a museum API, the DosCo, a local FS scan) EMITS and s3Dgraphy CONSUMES. The canonical schema lives here in JSON_config; emitters depend only on the published schema, never on s3Dgraphy internals. Tier 0 (opaque source) = payload_graph ABSENT (no inherited genesis/interpretation). schema_version is the contract version.",
6
+ "type": "object",
7
+ "required": ["schema_version", "asset"],
8
+ "additionalProperties": true,
9
+ "properties": {
10
+ "schema_version": {
11
+ "type": "string",
12
+ "description": "Contract version. This schema is v0; the major must match the consumer's SCHEMA_VERSION."
13
+ },
14
+ "asset": {
15
+ "type": "object",
16
+ "description": "The digital object being acquired. Exactly one locator (bytes_ref | url | local_path) identifies it; the resource layer (R0–R2) resolves it.",
17
+ "properties": {
18
+ "ref": {"type": "string", "description": "Locator: a local path, a file://, s3:// or http(s) URL. (Generic single-field form of bytes_ref|url|local_path.)"},
19
+ "media_type": {"type": "string", "description": "MIME type, e.g. image/jpeg, model/gltf-binary."},
20
+ "name": {"type": "string", "description": "Optional human label for the asset (e.g. the source record title)."}
21
+ }
22
+ },
23
+ "source": {
24
+ "type": "object",
25
+ "description": "The catalog/repo the asset came from + its capability flags.",
26
+ "properties": {
27
+ "repo_id": {"type": "string"},
28
+ "capabilities": {
29
+ "type": "array",
30
+ "items": {"type": "string", "enum": ["genesis", "interpretation"]},
31
+ "description": "What the source can provide beyond flat metadata. Tier 0 = [] (opaque)."
32
+ },
33
+ "record_id": {"type": "string"},
34
+ "record_url": {"type": "string"}
35
+ }
36
+ },
37
+ "rights": {
38
+ "type": "object",
39
+ "description": "Literal-first rights (design §7): license + optional holder/url captured as provenance literals; ODRL/HDTO formalization deferred.",
40
+ "properties": {
41
+ "license": {"type": "string"},
42
+ "holder": {"type": "string"},
43
+ "url": {"type": "string"}
44
+ }
45
+ },
46
+ "acquisition": {
47
+ "type": "object",
48
+ "description": "The acquisition event itself (retrieval): when, by which tool, how. Modelled as a distinct DTC event (crmdig:D12_Data_Transfer_Event).",
49
+ "properties": {
50
+ "retrieved_at": {"type": "string", "description": "ISO-8601 timestamp of retrieval."},
51
+ "agent": {"type": "string", "description": "The acquiring tool as '<tool>@<version>'."},
52
+ "method": {"type": "string", "description": "Acquisition method — maps to the DTC 'acquisition' kind (download / ingest / local_import) when recognized."}
53
+ }
54
+ },
55
+ "attribution": {
56
+ "type": "object",
57
+ "description": "Present when the payload carries interpretation (Tier 2): who asserts the imported study. Absent in Tier 0.",
58
+ "properties": {
59
+ "study_id": {"type": "string"},
60
+ "author": {"type": "string"},
61
+ "of_record_ref": {"type": "string"}
62
+ }
63
+ },
64
+ "payload_graph": {
65
+ "type": "object",
66
+ "description": "Inherited sub-graph (Tier 1 genesis / Tier 2 interpretation). ABSENT in Tier 0. Node-type-agnostic; scope declares what it carries. Consumed by a later session — not by the Tier-0 hook.",
67
+ "properties": {
68
+ "scope": {"type": "string", "enum": ["genesis", "interpretation", "full_study"]},
69
+ "subgraph": {"description": "Inline nodes+edges (UUID-keyed) — materialize."},
70
+ "ref_url": {"type": "string", "description": "Lazy reference to the source graph — reference."},
71
+ "resources": {"type": "array", "description": "Transitive resources referenced by the payload."}
72
+ }
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "mapping_version": "0",
3
+ "source": "ercolano",
4
+ "tier": 0,
5
+ "_comment": "Per-source acquisition mapping (design decision E.D. 2026-07-30): translate a raw ERCOLANO record into an AcquisitionDescriptor, the way the xlsx-import mappings translate spreadsheet rows. Ercolano is a Tier-0 OPAQUE repo (flat metadata, no genesis/interpretation) → source.capabilities = [] and no payload_graph. Add a sibling <repo>.json for each future source; the generic loader (s3dgraphy.acquisition.mapping.apply_mapping) applies any of them. 'descriptor_defaults' are the constants for this source; 'field_map' maps a dotted descriptor path <- a key in the raw record (record value wins when present).",
6
+ "descriptor_defaults": {
7
+ "schema_version": "0",
8
+ "source": {"repo_id": "ercolano", "capabilities": []},
9
+ "acquisition": {"agent": "openshelf@0", "method": "download"},
10
+ "rights": {"license": "unknown"}
11
+ },
12
+ "field_map": {
13
+ "asset.ref": "url",
14
+ "asset.media_type": "media_type",
15
+ "asset.name": "title",
16
+ "source.record_id": "record_id",
17
+ "source.record_url": "record_url",
18
+ "rights.license": "license",
19
+ "rights.holder": "rights_holder",
20
+ "rights.url": "rights_url",
21
+ "acquisition.retrieved_at": "retrieved_at",
22
+ "acquisition.method": "method"
23
+ }
24
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "mapping_version": "0",
3
+ "source": "fs",
4
+ "tier": 0,
5
+ "_comment": "Per-source acquisition mapping for the LOCAL FILE SYSTEM (project-folder search) — the local analog of a remote Tier-0 repo (design §3: 'same shape, source = the disk'). Opaque Tier 0 → source.capabilities = [] and no payload_graph. Build the raw record with s3dgraphy.acquisition.fs_record(path) (filename/path/size/ext/media_type/record_id/record_url), then apply_mapping('fs', record). Mirrors ercolano.json; the generic loader applies either. The UI reflects exactly these mapping fields (name/media_type/size/…) per E.D.",
6
+ "descriptor_defaults": {
7
+ "schema_version": "0",
8
+ "source": {"repo_id": "filesystem", "capabilities": []},
9
+ "acquisition": {"agent": "emtools-shelf@0", "method": "local_import"},
10
+ "rights": {"license": "unknown"}
11
+ },
12
+ "field_map": {
13
+ "asset.ref": "path",
14
+ "asset.name": "filename",
15
+ "asset.media_type": "media_type",
16
+ "asset.size": "size",
17
+ "source.record_id": "record_id",
18
+ "source.record_url": "record_url"
19
+ }
20
+ }
@@ -447,9 +447,9 @@ em:hasVisualReference
447
447
  a owl:ObjectProperty ;
448
448
  rdfs:label "has visual reference"@en ;
449
449
  rdfs:subPropertyOf crm:P138i_has_representation ;
450
- rdfs:domain em:Paradata ;
450
+ rdfs:domain em:Qualia ;
451
451
  rdfs:range crm:E36_Visual_Item ;
452
- rdfs:comment "The paradata node (property / extractor / combiner) is visually illustrated or anchored by a visual document (plate, photograph, annotated image). Distinct from em: extraction sourcing (P67/J7): a visual reference shows, an extraction source justifies. The RDF exporter co-types the target document as E36_Visual_Item. Maps to: connections_datamodel edge 'has_visual_reference'."@en .
452
+ rdfs:comment "A property (em:Qualia, an asserted quale) is visually illustrated or anchored by a VISUAL RESOURCE — the resource-layer image node (a LinkNode, E73 Information Object), not a source document. Revised 2026-08-05 (BUGFIX-CONN2): source narrowed to em:Qualia (was em:Paradata; only a property is illustrated), target moved from an E31 Document to the resource-layer image. The RDF exporter co-types the target LinkNode as E36_Visual_Item, which is range-consistent because E36 is a subclass of E73 (the LinkNode's base class). Distinct from em: extraction sourcing (P67/J7): a visual reference shows, an extraction source justifies. Maps to: connections_datamodel edge 'has_visual_reference' (source PropertyNode, target LinkNode)."@en .
453
453
 
454
454
  em:survivesInEpoch
455
455
  a owl:ObjectProperty ;
@@ -1008,6 +1008,13 @@
1008
1008
  "subcategories": {
1009
1009
  "administrative": {
1010
1010
  "name": "Administrative Qualia",
1011
+ "description": "TODO E.D. — proposal 1, to confirm or replace: Legal, inventory and curatorial record of the element",
1012
+ "_description_proposals": [
1013
+ "Legal, inventory and curatorial record of the element",
1014
+ "Legal status, inventory identity and curatorial history of the element. The record a holding institution keeps, as distinct from ownership, which is the chain of who has held it.",
1015
+ "Legal and inventory record keeping"
1016
+ ],
1017
+ "_description_todo": "This subcategory shipped with no description, so its tooltip was empty in the EMStudio vocabulary picker (the only one of 17). The three proposals above match the register of the sibling subcategories — short noun phrase; the longer one mirrors `ownership`, which already defines itself AGAINST this one ('distinct from administrative qualia which cover legal/inventory aspects'). Pick one, move it into `description`, and delete these two keys.",
1011
1018
  "qualia": [
1012
1019
  {
1013
1020
  "id": "inventory_number",