s3dgraphy 1.6.0.dev10__tar.gz → 1.6.0.dev12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/MANIFEST.in +1 -0
- {s3dgraphy-1.6.0.dev10/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev12}/PKG-INFO +6 -2
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/pyproject.toml +28 -3
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/acquisition_descriptor.schema.json +75 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/acquisition_mappings/ercolano.json +24 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/acquisition_mappings/fs.json +20 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em.ttl +40 -3
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_qualia_types.json +21 -8
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_visual_rules.json +193 -153
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/hdto_extension.ttl +57 -1
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/node_registry.generated.json +266 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +633 -100
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +1515 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/src/2D/author.png +0 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/src/2D/author_ai.png +0 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/src/2D/embargo.png +0 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/src/2D/license.png +0 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/JSON_config/src/2D/narrative.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/__init__.py +1 -1
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/acquisition/__init__.py +32 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/acquisition/acquire.py +133 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/acquisition/descriptor.py +105 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/acquisition/mapping.py +109 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/api.py +1456 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/__init__.py +29 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/resolver.py +190 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/snapshots/LICENSE +22 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/snapshots/chronontology.jsonld +23 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/snapshots/getty_aat.jsonld +51 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/snapshots/getty_tgn.jsonld +25 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/snapshots/periodo.jsonld +29 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/authorities/snapshots/provenance.json +41 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/classification.py +14 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/dtc/__init__.py +34 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/dtc/residency.py +193 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/edges/__init__.py +47 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/edges/connection_resolver.py +536 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/exporter/emjson_exporter.py +226 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +161 -10
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +2 -3
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/group_node_generator.py +79 -9
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/node_generator.py +81 -1
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/json_exporter.py +5 -5
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/exporter/latex_exporter.py +379 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/rdf_exporter.py +368 -12
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/graph.py +169 -34
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/importer/emjson_importer.py +227 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/import_graphml.py +348 -70
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/xlsx_importer.py +9 -1
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/narrative/__init__.py +36 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/narrative/generation.py +380 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/narrative/registry.py +125 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/narrative/site_story.py +285 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/__init__.py +43 -2
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/document_node.py +75 -28
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/dtc_acquisition_node.py +31 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/dtc_node.py +66 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/dtc_process_node.py +21 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/geo_position_node.py +67 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/group_node.py +244 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/heritage_entity_node.py +58 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/narrative_node.py +515 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/project_node.py +49 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/representation_node.py +26 -2
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/stratigraphic_node.py +14 -2
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/nodes/study_node.py +50 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/resources/__init__.py +69 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/resources/fs_backend.py +285 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/resources/minio_backend.py +254 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/resources/resolver.py +155 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/shelf/__init__.py +62 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/shelf/core.py +569 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/templates/em_palette_template.graphml +21 -12
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/tools/__init__.py +1 -0
- s3dgraphy-1.6.0.dev12/src/s3dgraphy/tools/sync_node_datamodel.py +145 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/transforms/__init__.py +2 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/transforms/aux_tracking.py +43 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/transforms/materialize_continuity.py +14 -13
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/utils/utils.py +102 -19
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12/src/s3dgraphy.egg-info}/PKG-INFO +6 -2
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy.egg-info/SOURCES.txt +82 -1
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy.egg-info/requires.txt +7 -1
- s3dgraphy-1.6.0.dev12/tests/test_acquisition.py +157 -0
- s3dgraphy-1.6.0.dev12/tests/test_acquisition_fs.py +62 -0
- s3dgraphy-1.6.0.dev12/tests/test_api_surface.py +76 -0
- s3dgraphy-1.6.0.dev12/tests/test_authority_projection.py +99 -0
- s3dgraphy-1.6.0.dev12/tests/test_authority_resolver.py +81 -0
- s3dgraphy-1.6.0.dev12/tests/test_canonical_document_rename.py +209 -0
- s3dgraphy-1.6.0.dev12/tests/test_connection_resolver.py +339 -0
- s3dgraphy-1.6.0.dev12/tests/test_convert_command.py +138 -0
- s3dgraphy-1.6.0.dev12/tests/test_deterministic_ids.py +156 -0
- s3dgraphy-1.6.0.dev12/tests/test_dtc_projection.py +144 -0
- s3dgraphy-1.6.0.dev12/tests/test_dtc_residency.py +178 -0
- s3dgraphy-1.6.0.dev12/tests/test_emjson_roundtrip.py +110 -0
- s3dgraphy-1.6.0.dev12/tests/test_emjson_schema_version.py +154 -0
- s3dgraphy-1.6.0.dev12/tests/test_explicit_node_type_marker.py +129 -0
- s3dgraphy-1.6.0.dev12/tests/test_fs_backend.py +245 -0
- s3dgraphy-1.6.0.dev12/tests/test_functional_units.py +228 -0
- s3dgraphy-1.6.0.dev12/tests/test_georeference_scene.py +262 -0
- s3dgraphy-1.6.0.dev12/tests/test_hdto_projection.py +130 -0
- s3dgraphy-1.6.0.dev12/tests/test_importer_edge_hygiene.py +288 -0
- s3dgraphy-1.6.0.dev12/tests/test_latex_exporter.py +284 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/tests/test_lossless_roundtrip.py +229 -0
- s3dgraphy-1.6.0.dev12/tests/test_material_color.py +145 -0
- s3dgraphy-1.6.0.dev12/tests/test_minio_backend.py +220 -0
- s3dgraphy-1.6.0.dev12/tests/test_narrative_authorship.py +299 -0
- s3dgraphy-1.6.0.dev12/tests/test_narrative_generation.py +401 -0
- s3dgraphy-1.6.0.dev12/tests/test_narrative_node.py +324 -0
- s3dgraphy-1.6.0.dev12/tests/test_narrative_scaffolder.py +317 -0
- s3dgraphy-1.6.0.dev12/tests/test_node_datamodel_registry.py +18 -0
- s3dgraphy-1.6.0.dev12/tests/test_recompute_warnings.py +354 -0
- s3dgraphy-1.6.0.dev12/tests/test_reproject.py +169 -0
- s3dgraphy-1.6.0.dev12/tests/test_resource_layer.py +160 -0
- s3dgraphy-1.6.0.dev12/tests/test_shelf.py +130 -0
- s3dgraphy-1.6.0.dev12/tests/test_shelf_facets.py +303 -0
- s3dgraphy-1.6.0.dev12/tests/test_shelf_hatting.py +104 -0
- s3dgraphy-1.6.0.dev12/tests/test_ttl_roundtrip.py +77 -0
- s3dgraphy-1.6.0.dev10/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -1142
- s3dgraphy-1.6.0.dev10/src/s3dgraphy/edges/__init__.py +0 -24
- s3dgraphy-1.6.0.dev10/src/s3dgraphy/nodes/geo_position_node.py +0 -44
- s3dgraphy-1.6.0.dev10/src/s3dgraphy/nodes/group_node.py +0 -127
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/README.md +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/base_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/pyarchinit_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/link_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/tests/test_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/tests/test_pyarchinit_tier2.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: s3dgraphy
|
|
3
|
-
Version: 1.6.0.
|
|
3
|
+
Version: 1.6.0.dev12
|
|
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,10 @@ 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"
|
|
50
54
|
Provides-Extra: dev
|
|
51
55
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
52
56
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
@@ -61,7 +65,7 @@ Requires-Dist: sphinx>=5.0; extra == "docs"
|
|
|
61
65
|
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
62
66
|
Requires-Dist: myst-parser; extra == "docs"
|
|
63
67
|
Provides-Extra: full
|
|
64
|
-
Requires-Dist: s3dgraphy[rdf-embedded,sync,visualization]; extra == "full"
|
|
68
|
+
Requires-Dist: s3dgraphy[geo,minio,rdf-embedded,sync,visualization]; extra == "full"
|
|
65
69
|
Provides-Extra: all
|
|
66
70
|
Requires-Dist: s3dgraphy[dev,docs,full,postgres]; extra == "all"
|
|
67
71
|
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.
|
|
7
|
+
version = "1.6.0.dev12"
|
|
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
|
-
#
|
|
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,25 @@ 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
|
+
]
|
|
109
129
|
dev = [
|
|
110
130
|
"pytest>=7.0",
|
|
111
131
|
"pytest-cov",
|
|
@@ -125,7 +145,7 @@ docs = [
|
|
|
125
145
|
# without the dev/docs tooling. The dev/docs/test stacks stay separate
|
|
126
146
|
# so CI-style installs don't pull editor/QA deps.
|
|
127
147
|
full = [
|
|
128
|
-
"s3dgraphy[rdf-embedded,visualization,sync]",
|
|
148
|
+
"s3dgraphy[rdf-embedded,visualization,sync,minio,geo]",
|
|
129
149
|
]
|
|
130
150
|
all = [
|
|
131
151
|
"s3dgraphy[full,dev,docs,postgres]",
|
|
@@ -148,6 +168,11 @@ s3dgraphy = [
|
|
|
148
168
|
"mappings/*",
|
|
149
169
|
"mappings/*.json",
|
|
150
170
|
]
|
|
171
|
+
# authorities snapshots (P1-D) are DATA files in a subpackage — ship them in the
|
|
172
|
+
# wheel so the offline resolver works when installed (e.g. bundled into Blender).
|
|
173
|
+
"s3dgraphy.authorities" = [
|
|
174
|
+
"snapshots/*",
|
|
175
|
+
]
|
|
151
176
|
|
|
152
177
|
[tool.black]
|
|
153
178
|
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
|
+
}
|
|
@@ -199,8 +199,8 @@ em:SeriesOfNonStructuralVirtualSU
|
|
|
199
199
|
em:StratigraphicEvent
|
|
200
200
|
a owl:Class ;
|
|
201
201
|
rdfs:label "Stratigraphic Event (SE)"@en ;
|
|
202
|
-
rdfs:subClassOf
|
|
203
|
-
rdfs:comment "An event that creates, modifies, or destroys a stratigraphic unit (e.g. an earthquake causing a plaster collapse, an act of demolition).
|
|
202
|
+
rdfs:subClassOf crmarchaeo:A5_Stratigraphic_Modification ;
|
|
203
|
+
rdfs:comment "An event that creates, modifies, or destroys a stratigraphic unit (e.g. an earthquake causing a plaster collapse, an act of demolition). Re-anchored 2026-07-11 from generic crm:E5_Event to crmarchaeo:A5_Stratigraphic_Modification: formation is A4 (subclass of A5), modification is A5, destruction is A5-as-disturbance (AP8) plus A4 genesis of the resulting A3 interface; E5 remains reachable transitively via A5 < S18 < E5. Cf. Guillem et al. 2024 (SWODCH). May be enriched by a 3D simulation (em:RepresentationModel) of the event itself. Maps to: Python StratigraphicEventNode (node_type='SE')."@en .
|
|
204
204
|
|
|
205
205
|
em:TransformationSU
|
|
206
206
|
a owl:Class ;
|
|
@@ -438,5 +438,42 @@ em:physicallyEquals
|
|
|
438
438
|
|
|
439
439
|
|
|
440
440
|
# ============================================================================
|
|
441
|
-
#
|
|
441
|
+
# v1.6.1 additions (2026-07-10) — serialisation-completeness pass
|
|
442
|
+
# (WP3 coverage analysis, sections 10 / B.1 / B.2). New edge subproperties;
|
|
443
|
+
# no class changes.
|
|
444
|
+
# ============================================================================
|
|
445
|
+
|
|
446
|
+
em:hasVisualReference
|
|
447
|
+
a owl:ObjectProperty ;
|
|
448
|
+
rdfs:label "has visual reference"@en ;
|
|
449
|
+
rdfs:subPropertyOf crm:P138i_has_representation ;
|
|
450
|
+
rdfs:domain em:Paradata ;
|
|
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 .
|
|
453
|
+
|
|
454
|
+
em:survivesInEpoch
|
|
455
|
+
a owl:ObjectProperty ;
|
|
456
|
+
rdfs:subPropertyOf crm:P132_spatiotemporally_overlaps_with ;
|
|
457
|
+
rdfs:label "survives in epoch"@en ;
|
|
458
|
+
rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
|
|
459
|
+
rdfs:range crm:E4_Period ;
|
|
460
|
+
rdfs:comment "The unit's spacetime volume (via P196_defines) overlaps the epoch's: survival through (part of) an epoch is overlap, not containment. Epoch attribution is an interpretive act; its justification travels in the epoch's and edge's paradata chain. Maps to: connections_datamodel edge 'survive_in_epoch'."@en .
|
|
461
|
+
|
|
462
|
+
em:firstAttestedInEpoch
|
|
463
|
+
a owl:ObjectProperty ;
|
|
464
|
+
rdfs:subPropertyOf crm:P10_falls_within ;
|
|
465
|
+
rdfs:label "first attested in epoch"@en ;
|
|
466
|
+
rdfs:domain crmarchaeo:A8_Stratigraphic_Unit ;
|
|
467
|
+
rdfs:range crm:E4_Period ;
|
|
468
|
+
rdfs:comment "Documented shortcut: the unit was brought into existence (P92i, genesis event / SE node) during the epoch (event P10_falls_within epoch; crmarchaeo:AP25_occurs_during where an SE node is present). Declared subPropertyOf P10 on the unit's defining spacetime volume (P196). Maps to: connections_datamodel edge 'has_first_epoch'."@en .
|
|
469
|
+
|
|
470
|
+
em:hasAuthor
|
|
471
|
+
a owl:ObjectProperty ;
|
|
472
|
+
rdfs:subPropertyOf prov:wasAttributedTo ;
|
|
473
|
+
rdfs:label "has author"@en ;
|
|
474
|
+
rdfs:range em:Author ;
|
|
475
|
+
rdfs:comment "Domain-neutral authorship attribution (any graph entity to a human or AI author). Replaces the earlier P94_has_created reading (invalid domain/range for physical units) and L10_had_input (digital machine events, not authorship). Maps to: connections_datamodel edge 'has_author'."@en .
|
|
476
|
+
|
|
477
|
+
# ============================================================================
|
|
478
|
+
# End of em.ttl v1.6.1
|
|
442
479
|
# ============================================================================
|
{s3dgraphy-1.6.0.dev10 → s3dgraphy-1.6.0.dev12}/src/s3dgraphy/JSON_config/em_qualia_types.json
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
|
-
"version": "
|
|
4
|
-
"last_updated": "2026-
|
|
3
|
+
"version": "1.6.0",
|
|
4
|
+
"last_updated": "2026-07-15",
|
|
5
5
|
"maintainers": ["Emanuel Demetrescu"],
|
|
6
6
|
"license": "CC-BY-4.0",
|
|
7
|
-
"changelog": "v4.1: expanded spatial elevation qualia for pyArchInit us_table quote (all E54_Dimension): elevation_relative, elevation_min_absolute, elevation_max_absolute, elevation_min_relative, elevation_max_relative, elevation_min_usm, elevation_max_usm (the generic 'elevation' = absolute MASL, used by quota_abs). Each pyArchInit quota column maps to its own qualia id so they don't collide on the single-PropertyNode-per-property_name rule. v4.0: verified all v3.0 CIDOC-CRM mappings (correct). Expanded with: volume, area, circumference in dimensional; color, texture, finish, patina, hardness, porosity in material; damage_type, fragility, completeness in state; tool_marks, joining_technique in technical; bounding_box, footprint_area in spatial; duration, terminus_post_quem, terminus_ante_quem, relative_chronology in temporal; ceremonial_function, ritual_function, defensive_function, domestic_function, symbolic_function in telic; school, workshop, period_attribution in stylistic. NEW subcategories: iconographic + semantic under cultural_interpretive (iconographic_subject, narrative_content, iconographic_program, aesthetic_value, religious_significance, monumental_status, attribution). Added provenance_history, exhibition_history, publication_history under administrative; NEW ownership subcategory (current_custodian, ownership_chain). NEW CATEGORY epistemic — meta-qualia central to EM paradata model (confidence_level, certainty_level, uncertainty_factors, methodology_used, validation_method, source_quality, primary_contributor, review_status, last_modified)."
|
|
7
|
+
"changelog": "v1.6.0: version realigned to the EM language version (EM 1.6) — supersedes the standalone 4.x line (last was 4.2), so all EM JSON config files now share the 1.6.x scheme. Added optional `rationale` + `example` fields to qualia entries (a plain-language why + a concrete case), shown by the EMStudio vocabulary picker when creating a PropertyNode. Seeded for the temporal qualia (absolute_time_start / absolute_time_end / dating_method); to be filled in for the rest incrementally. Prior (4.x) history: v4.2 added rationale/example scaffolding; v4.1: expanded spatial elevation qualia for pyArchInit us_table quote (all E54_Dimension): elevation_relative, elevation_min_absolute, elevation_max_absolute, elevation_min_relative, elevation_max_relative, elevation_min_usm, elevation_max_usm (the generic 'elevation' = absolute MASL, used by quota_abs). Each pyArchInit quota column maps to its own qualia id so they don't collide on the single-PropertyNode-per-property_name rule. v4.0: verified all v3.0 CIDOC-CRM mappings (correct). Expanded with: volume, area, circumference in dimensional; color, texture, finish, patina, hardness, porosity in material; damage_type, fragility, completeness in state; tool_marks, joining_technique in technical; bounding_box, footprint_area in spatial; duration, terminus_post_quem, terminus_ante_quem, relative_chronology in temporal; ceremonial_function, ritual_function, defensive_function, domestic_function, symbolic_function in telic; school, workshop, period_attribution in stylistic. NEW subcategories: iconographic + semantic under cultural_interpretive (iconographic_subject, narrative_content, iconographic_program, aesthetic_value, religious_significance, monumental_status, attribution). Added provenance_history, exhibition_history, publication_history under administrative; NEW ownership subcategory (current_custodian, ownership_chain). NEW CATEGORY epistemic — meta-qualia central to EM paradata model (confidence_level, certainty_level, uncertainty_factors, methodology_used, validation_method, source_quality, primary_contributor, review_status, last_modified)."
|
|
8
8
|
},
|
|
9
9
|
"qualia_categories": [
|
|
10
10
|
{
|
|
@@ -571,7 +571,9 @@
|
|
|
571
571
|
"cidoc_crm": "E52_Time-Span"
|
|
572
572
|
},
|
|
573
573
|
"data_type": "date",
|
|
574
|
-
"format": "YYYY-MM-DD"
|
|
574
|
+
"format": "YYYY-MM-DD",
|
|
575
|
+
"rationale": "The earliest calendar date at which the element's time-span begins (the begin-of-the-begin). Anchors an epoch or unit on the absolute timeline; pair it with Absolute Time — End to bound the span. Negative years = BCE.",
|
|
576
|
+
"example": "-27 — start of the Augustan phase of the sanctuary (27 BCE)."
|
|
575
577
|
},
|
|
576
578
|
{
|
|
577
579
|
"id": "absolute_time_end",
|
|
@@ -581,7 +583,9 @@
|
|
|
581
583
|
"cidoc_crm": "E52_Time-Span"
|
|
582
584
|
},
|
|
583
585
|
"data_type": "date",
|
|
584
|
-
"format": "YYYY-MM-DD"
|
|
586
|
+
"format": "YYYY-MM-DD",
|
|
587
|
+
"rationale": "The latest calendar date at which the element's time-span ends (the end-of-the-end). Together with the start it delimits the absolute chronology of an epoch or unit. Negative years = BCE.",
|
|
588
|
+
"example": "476 — end of the Late Antique phase (fall of the Western Roman Empire)."
|
|
585
589
|
},
|
|
586
590
|
{
|
|
587
591
|
"id": "dating_method",
|
|
@@ -601,7 +605,9 @@
|
|
|
601
605
|
"historical_sources",
|
|
602
606
|
"stylistic_analysis"
|
|
603
607
|
],
|
|
604
|
-
"expected_extractors": ["dating_analysis", "laboratory_analysis"]
|
|
608
|
+
"expected_extractors": ["dating_analysis", "laboratory_analysis"],
|
|
609
|
+
"rationale": "How the chronology was established — records the reliability and paradata behind a date so the reasoning can be judged.",
|
|
610
|
+
"example": "c14 for a hearth dated by radiocarbon; stratigraphy for a wall dated by its position in the sequence."
|
|
605
611
|
},
|
|
606
612
|
{
|
|
607
613
|
"id": "duration",
|
|
@@ -1002,6 +1008,13 @@
|
|
|
1002
1008
|
"subcategories": {
|
|
1003
1009
|
"administrative": {
|
|
1004
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.",
|
|
1005
1018
|
"qualia": [
|
|
1006
1019
|
{
|
|
1007
1020
|
"id": "inventory_number",
|
|
@@ -1151,9 +1164,9 @@
|
|
|
1151
1164
|
{
|
|
1152
1165
|
"id": "confidence_level",
|
|
1153
1166
|
"name": "Confidence Level",
|
|
1154
|
-
"description": "Numerical confidence in the assertion (0-100%). The EM-canonical scalar for paradata-supported claims.",
|
|
1167
|
+
"description": "Numerical confidence in the assertion (0-100%). The EM-canonical scalar for paradata-supported claims. CRM mapping changed 2026-07-10: was E54_Dimension; a confidence is the value a belief is held with, i.e. crminf:I6_Belief_Value (see WP3 coverage analysis G5 / Appendix C). The RDF exporter's qualia-precedence rule types the PropertyNode accordingly.",
|
|
1155
1168
|
"mappings": {
|
|
1156
|
-
"cidoc_crm": "
|
|
1169
|
+
"cidoc_crm": "crminf:I6_Belief_Value"
|
|
1157
1170
|
},
|
|
1158
1171
|
"data_type": "percentage",
|
|
1159
1172
|
"range": [0, 100],
|