s3dgraphy 1.6.0.dev9__tar.gz → 1.6.0.dev11__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.dev9/src/s3dgraphy.egg-info → s3dgraphy-1.6.0.dev11}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/pyproject.toml +1 -1
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em.ttl +40 -3
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_qualia_types.json +99 -9
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_visual_rules.json +88 -35
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json +404 -100
- s3dgraphy-1.6.0.dev11/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +1512 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/__init__.py +1 -1
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/classification.py +14 -0
- s3dgraphy-1.6.0.dev11/src/s3dgraphy/exporter/emjson_exporter.py +188 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/graphml_exporter.py +160 -9
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/group_node_generator.py +79 -9
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/node_generator.py +81 -1
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/json_exporter.py +5 -5
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/rdf_exporter.py +164 -7
- s3dgraphy-1.6.0.dev11/src/s3dgraphy/importer/emjson_importer.py +156 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/import_graphml.py +35 -15
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/pyarchinit_importer.py +431 -4
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/xlsx_importer.py +9 -1
- s3dgraphy-1.6.0.dev11/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +102 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/stratigraphic_node.py +14 -2
- s3dgraphy-1.6.0.dev11/src/s3dgraphy/tools/__init__.py +1 -0
- s3dgraphy-1.6.0.dev11/src/s3dgraphy/tools/sync_node_datamodel.py +131 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/transforms/materialize_continuity.py +14 -13
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11/src/s3dgraphy.egg-info}/PKG-INFO +1 -1
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy.egg-info/SOURCES.txt +8 -1
- s3dgraphy-1.6.0.dev11/tests/test_emjson_roundtrip.py +110 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/tests/test_lossless_roundtrip.py +229 -0
- s3dgraphy-1.6.0.dev11/tests/test_node_datamodel_registry.py +17 -0
- s3dgraphy-1.6.0.dev11/tests/test_pyarchinit_tier2.py +370 -0
- s3dgraphy-1.6.0.dev9/src/s3dgraphy/JSON_config/s3Dgraphy_node_datamodel.json +0 -1142
- s3dgraphy-1.6.0.dev9/src/s3dgraphy/mappings/pyarchinit/pyarchinit_us_mapping.json +0 -77
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/LICENSE +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/MANIFEST.in +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/README.md +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/setup.cfg +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_document_types.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_extractor_types.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_palette_icons.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_qualia_types_additions.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/hdto_extension.ttl +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/new_qualia_template.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/outdated_s3dgraphy.ttl +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/outdated_s3dgraphy_nomapping.ttl +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/s3Dgraphy_connections_datamodel.json.v155.bak +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/RSF.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/RSF.svg +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/SF.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/TSU.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/US.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/USD.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/USVn.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/USVs.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/VSF.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/combiner.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/continuity.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/document.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/extractor.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/property.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/serSU.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/serUSD.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/2D/serUSV.png +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/RSF.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/SF.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/TSU.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/US.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/USD.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/USVn.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/USVs.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/VSF.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/combiner.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/continuity.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/document.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/extractor.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/property.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/serSU.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/serUSD.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/src/3D/serUSV.glb +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/data/StratiMiner_Extraction_Prompt.md +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/diagnostics.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/edges/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/edges/connections_loader.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/edges/edge.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/canvas_generator.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/edge_generator.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/epoch_generator.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/graphml_patcher.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/node_registry.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/palette_resources.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/paradata_generator.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/paradata_image_generator.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/paradata_node_generators.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/table_node_generator.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/graphml/utils.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/exporter/unified_xlsx_exporter.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/graph.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/base_importer.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/mapped_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/qualia_importer.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/importer/unified_xlsx_importer.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/indices.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/emdb/generic_specialfind_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/emdb/site_properties_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/emdb/usm_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/generic/excel_to_graphml_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/registry.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/template_emdb_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/mappings/template_pyarchinit_mapping.json +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/merge/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/merge/graph_merger.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/multigraph/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/multigraph/multigraph.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/author_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/base_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/combiner_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/document_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/embargo_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/epoch_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/extractor_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/geo_position_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/graph_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/group_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/hdt_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/license_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/link_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/paradata_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/property_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/representation_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/nodes/semantic_shape_node.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/resolvers/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/resolvers/builtin_rules.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/resolvers/property_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/_db_handle.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/_legacy_paradata_svgs.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/_workspace.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/conflict_resolver.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/edge_registry.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/graph_ingestor.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/graph_projector.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/graphml_writer.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/group_projector.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/group_store.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/ingest_result.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/paradata_store.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/pyarchinit_pg_importer.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/rapporti.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/uuid7.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/vocab_provider_core.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/vocab_types.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/yed_classifier.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/yed_detector.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/yed_group_walker.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/yed_import_pipeline.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/yed_rapporti_policy.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/sync/yed_table_parser.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/templates/em_data_template.xlsx +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/templates/em_palette_template.graphml +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/temporal/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/temporal/inference_engine.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/transforms/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/transforms/aux_tracking.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/transforms/compact.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/utils/__init__.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/utils/utils.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/utils/visual_layout.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy.egg-info/dependency_links.txt +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy.egg-info/requires.txt +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy.egg-info/top_level.txt +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/tests/test_composite_node_name.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/tests/test_filtered_import.py +0 -0
- {s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/tests/test_pg_importer.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.dev11
|
|
4
4
|
Summary: 3D Stratigraphic Graph Management Library for archaeological and heritage applications
|
|
5
5
|
Author-email: Emanuel Demetrescu <emanuel.demetrescu@cnr.it>
|
|
6
6
|
Maintainer-email: Emanuel Demetrescu <emanuel.demetrescu@cnr.it>
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "s3dgraphy"
|
|
7
|
-
version = "1.6.0.
|
|
7
|
+
version = "1.6.0.dev11"
|
|
8
8
|
description = "3D Stratigraphic Graph Management Library for archaeological and heritage applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -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.dev9 → s3dgraphy-1.6.0.dev11}/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.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
|
{
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
{
|
|
422
422
|
"id": "elevation",
|
|
423
423
|
"name": "Elevation",
|
|
424
|
-
"description": "Height above sea level",
|
|
424
|
+
"description": "Height above sea level (absolute / MASL). pyArchInit us_table.quota_abs maps here — it is the absolute single-point elevation.",
|
|
425
425
|
"mappings": {
|
|
426
426
|
"getty_aat": "300447457",
|
|
427
427
|
"cidoc_crm": "E54_Dimension"
|
|
@@ -430,6 +430,90 @@
|
|
|
430
430
|
"units": ["m", "ft"],
|
|
431
431
|
"expected_extractors": ["gps_survey", "total_station_survey", "leveling"]
|
|
432
432
|
},
|
|
433
|
+
{
|
|
434
|
+
"id": "elevation_relative",
|
|
435
|
+
"name": "Relative Elevation",
|
|
436
|
+
"description": "Elevation measured relative to a local site datum (not sea level). pyArchInit us_table.quota_relativa. Distinct from 'elevation' (absolute MASL).",
|
|
437
|
+
"mappings": {
|
|
438
|
+
"getty_aat": "300447457",
|
|
439
|
+
"cidoc_crm": "E54_Dimension"
|
|
440
|
+
},
|
|
441
|
+
"data_type": "float",
|
|
442
|
+
"units": ["m", "cm"],
|
|
443
|
+
"expected_extractors": ["total_station_survey", "leveling"]
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"id": "elevation_min_absolute",
|
|
447
|
+
"name": "Minimum Absolute Elevation",
|
|
448
|
+
"description": "Lowest absolute elevation (height above sea level) of the element's vertical extent. pyArchInit us_table.quota_min_abs.",
|
|
449
|
+
"mappings": {
|
|
450
|
+
"getty_aat": "300447457",
|
|
451
|
+
"cidoc_crm": "E54_Dimension"
|
|
452
|
+
},
|
|
453
|
+
"data_type": "float",
|
|
454
|
+
"units": ["m"],
|
|
455
|
+
"expected_extractors": ["gps_survey", "total_station_survey", "leveling"]
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"id": "elevation_max_absolute",
|
|
459
|
+
"name": "Maximum Absolute Elevation",
|
|
460
|
+
"description": "Highest absolute elevation (height above sea level) of the element's vertical extent. pyArchInit us_table.quota_max_abs.",
|
|
461
|
+
"mappings": {
|
|
462
|
+
"getty_aat": "300447457",
|
|
463
|
+
"cidoc_crm": "E54_Dimension"
|
|
464
|
+
},
|
|
465
|
+
"data_type": "float",
|
|
466
|
+
"units": ["m"],
|
|
467
|
+
"expected_extractors": ["gps_survey", "total_station_survey", "leveling"]
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"id": "elevation_min_relative",
|
|
471
|
+
"name": "Minimum Relative Elevation",
|
|
472
|
+
"description": "Lowest elevation relative to the local site datum. pyArchInit us_table.quota_min_rel.",
|
|
473
|
+
"mappings": {
|
|
474
|
+
"getty_aat": "300447457",
|
|
475
|
+
"cidoc_crm": "E54_Dimension"
|
|
476
|
+
},
|
|
477
|
+
"data_type": "float",
|
|
478
|
+
"units": ["m", "cm"],
|
|
479
|
+
"expected_extractors": ["total_station_survey", "leveling"]
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"id": "elevation_max_relative",
|
|
483
|
+
"name": "Maximum Relative Elevation",
|
|
484
|
+
"description": "Highest elevation relative to the local site datum. pyArchInit us_table.quota_max_rel.",
|
|
485
|
+
"mappings": {
|
|
486
|
+
"getty_aat": "300447457",
|
|
487
|
+
"cidoc_crm": "E54_Dimension"
|
|
488
|
+
},
|
|
489
|
+
"data_type": "float",
|
|
490
|
+
"units": ["m", "cm"],
|
|
491
|
+
"expected_extractors": ["total_station_survey", "leveling"]
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"id": "elevation_min_usm",
|
|
495
|
+
"name": "Minimum Elevation (USM)",
|
|
496
|
+
"description": "Lowest recorded elevation of a masonry unit (USM). pyArchInit us_table.quota_min_usm.",
|
|
497
|
+
"mappings": {
|
|
498
|
+
"getty_aat": "300447457",
|
|
499
|
+
"cidoc_crm": "E54_Dimension"
|
|
500
|
+
},
|
|
501
|
+
"data_type": "float",
|
|
502
|
+
"units": ["m", "cm"],
|
|
503
|
+
"expected_extractors": ["total_station_survey", "leveling"]
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"id": "elevation_max_usm",
|
|
507
|
+
"name": "Maximum Elevation (USM)",
|
|
508
|
+
"description": "Highest recorded elevation of a masonry unit (USM). pyArchInit us_table.quota_max_usm.",
|
|
509
|
+
"mappings": {
|
|
510
|
+
"getty_aat": "300447457",
|
|
511
|
+
"cidoc_crm": "E54_Dimension"
|
|
512
|
+
},
|
|
513
|
+
"data_type": "float",
|
|
514
|
+
"units": ["m", "cm"],
|
|
515
|
+
"expected_extractors": ["total_station_survey", "leveling"]
|
|
516
|
+
},
|
|
433
517
|
{
|
|
434
518
|
"id": "arrangement",
|
|
435
519
|
"name": "Arrangement",
|
|
@@ -487,7 +571,9 @@
|
|
|
487
571
|
"cidoc_crm": "E52_Time-Span"
|
|
488
572
|
},
|
|
489
573
|
"data_type": "date",
|
|
490
|
-
"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)."
|
|
491
577
|
},
|
|
492
578
|
{
|
|
493
579
|
"id": "absolute_time_end",
|
|
@@ -497,7 +583,9 @@
|
|
|
497
583
|
"cidoc_crm": "E52_Time-Span"
|
|
498
584
|
},
|
|
499
585
|
"data_type": "date",
|
|
500
|
-
"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)."
|
|
501
589
|
},
|
|
502
590
|
{
|
|
503
591
|
"id": "dating_method",
|
|
@@ -517,7 +605,9 @@
|
|
|
517
605
|
"historical_sources",
|
|
518
606
|
"stylistic_analysis"
|
|
519
607
|
],
|
|
520
|
-
"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."
|
|
521
611
|
},
|
|
522
612
|
{
|
|
523
613
|
"id": "duration",
|
|
@@ -1067,9 +1157,9 @@
|
|
|
1067
1157
|
{
|
|
1068
1158
|
"id": "confidence_level",
|
|
1069
1159
|
"name": "Confidence Level",
|
|
1070
|
-
"description": "Numerical confidence in the assertion (0-100%). The EM-canonical scalar for paradata-supported claims.",
|
|
1160
|
+
"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.",
|
|
1071
1161
|
"mappings": {
|
|
1072
|
-
"cidoc_crm": "
|
|
1162
|
+
"cidoc_crm": "crminf:I6_Belief_Value"
|
|
1073
1163
|
},
|
|
1074
1164
|
"data_type": "percentage",
|
|
1075
1165
|
"range": [0, 100],
|
{s3dgraphy-1.6.0.dev9 → s3dgraphy-1.6.0.dev11}/src/s3dgraphy/JSON_config/em_visual_rules.json
RENAMED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"formal_language": "EM",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"_changelog": {
|
|
5
|
+
"1.6.1": "Fix border_color to the correct sRGB display hex against the EM 1.3 standard colour table. ROOT CAUSE: border_color was generated by writing the LINEAR material.color straight to hex (0.328 -> 0x54 -> #540909) instead of converting linear->sRGB (0.328 -> 0.608 -> 0x9B -> #9B3333). material.color stays LINEAR (Blender convention); border_color is the sRGB display value = the EM 1.3 standard Hex column. Corrected borders: US/serSU/TSU #540909->#9B3333, SF #AF8208->#D8BD30, VSF #70581E->#B19F61, USVs/serUSVs #0546CC->#248FE7, USVn/serUSVn #083107->#31792D, USN #8C8C8C->#C4C4C4 (sRGB of its 0.55 grey). US/USVs/USVn/SF/VSF now match the EM 1.3 table exactly; TSU (US-red material) and USN follow the same rule. Also reverted USVs/USVn/serUSVs/serUSVn material.color, which an earlier dev8 pass had wrongly overwritten with sRGB values, back to the canonical LINEAR values (USVs/serUSVs 0.018,0.275,0.799; USVn/serUSVn 0.031,0.191,0.026). fill_color unchanged (US/SF white, USVs/USVn black per the 2D icons). Then completed full coherence (EM 1.5 table for USD + 'RSF is red like US'): recomputed the last linear-as-hex materials to true LINEAR so sRGB(material)==border_color for EVERY type (and Blender 3D now matches the 2D display) — RSF material (0.608,0.2,0.2)->(0.328,0.033,0.033)=US red (border #9B3333); USD/serUSD material (0.847,0.392,0)->(0.687,0.127,0)=sRGB^-1(#D86400) (border #D86400 unchanged). Net rule for the whole file: material.color = LINEAR, border_color = sRGB(material) = the EM standard Hex.",
|
|
6
|
+
"1.6.0": "Version realigned to track the EM language version (EM 1.6); supersedes the 1.5.x line. Added canonical group-container styles for ActivityNodeGroup, ParadataNodeGroup and TimeBranchNodeGroup (mirroring the existing LocationNodeGroup pattern): neutral grey container (fill #F5F5F5, dashed #000000 border, roundrectangle) distinguished by the group title-tab colour in `label_background` — Activity #CCFFFF, Paradata #FFCC99, TimeBranch #99CC00 (green). Sourced from the point-of-truth palette template (templates/em_palette_template.graphml, nodes Att.[xx] / US[xxx]_PD / TB.0), aligning em_visual_rules with the GraphML palette. Previously ParadataNodeGroup and TimeBranchNodeGroup both resolved through the shared grey 'GRAPH' style and could not be told apart; ActivityNodeGroup rendered via the legacy purple-ellipse 'ANG'. Legacy 'ANG' and 'GRAPH' styles retained unchanged for back-compat with other consumers.",
|
|
5
7
|
"1.5.3": "Fix USD / serUSD material colour: RGB was (0.549, 0.103, 0.0) = #8C1A00 (red), should be #D86400 (orange) to match the canonical USD documentary colour used in the GraphML palette template, node_registry defaults and document_variant_styles.observable. USD border_color also corrected from #8C1A00 to #D86400 (serUSD border was already correct).",
|
|
6
8
|
"1.5.2": "Added RSF (Reused Special Find / spolia) node style — octagon, red border (#9B3333), white fill. Sibling of SF/VSF, distinguished by border colour. Originating DP: DP-26.",
|
|
7
9
|
"1.5.1": "Added LocationNodeGroup node style (dashed roundrectangle, kind-based border colour) and is_in_location edge style with primary_modifier override.",
|
|
@@ -20,10 +22,11 @@
|
|
|
20
22
|
"a": 1.0
|
|
21
23
|
}
|
|
22
24
|
},
|
|
23
|
-
"border_color": "#
|
|
25
|
+
"border_color": "#9B3333",
|
|
24
26
|
"fill_color": "#F0F0F0",
|
|
25
27
|
"border_style": "solid",
|
|
26
|
-
"shape": "rectangle"
|
|
28
|
+
"shape": "rectangle",
|
|
29
|
+
"border_width": 4
|
|
27
30
|
},
|
|
28
31
|
"label_position": "over"
|
|
29
32
|
},
|
|
@@ -40,10 +43,11 @@
|
|
|
40
43
|
"a": 1.0
|
|
41
44
|
}
|
|
42
45
|
},
|
|
43
|
-
"border_color": "#
|
|
46
|
+
"border_color": "#31792D",
|
|
44
47
|
"fill_color": "#000000",
|
|
45
48
|
"border_style": "solid",
|
|
46
|
-
"shape": "hexagon"
|
|
49
|
+
"shape": "hexagon",
|
|
50
|
+
"border_width": 4
|
|
47
51
|
},
|
|
48
52
|
"label_position": "over"
|
|
49
53
|
},
|
|
@@ -60,10 +64,11 @@
|
|
|
60
64
|
"a": 1.0
|
|
61
65
|
}
|
|
62
66
|
},
|
|
63
|
-
"border_color": "#
|
|
64
|
-
"fill_color": "#
|
|
67
|
+
"border_color": "#248FE7",
|
|
68
|
+
"fill_color": "#000000",
|
|
65
69
|
"border_style": "solid",
|
|
66
|
-
"shape": "parallelogram"
|
|
70
|
+
"shape": "parallelogram",
|
|
71
|
+
"border_width": 4
|
|
67
72
|
},
|
|
68
73
|
"label_position": "over"
|
|
69
74
|
},
|
|
@@ -80,10 +85,11 @@
|
|
|
80
85
|
"a": 1.0
|
|
81
86
|
}
|
|
82
87
|
},
|
|
83
|
-
"border_color": "#
|
|
88
|
+
"border_color": "#B19F61",
|
|
84
89
|
"fill_color": "#CCCCCC",
|
|
85
90
|
"border_style": "solid",
|
|
86
|
-
"shape": "octagon"
|
|
91
|
+
"shape": "octagon",
|
|
92
|
+
"border_width": 4
|
|
87
93
|
},
|
|
88
94
|
"label_position": "over"
|
|
89
95
|
},
|
|
@@ -100,10 +106,11 @@
|
|
|
100
106
|
"a": 1.0
|
|
101
107
|
}
|
|
102
108
|
},
|
|
103
|
-
"border_color": "#
|
|
109
|
+
"border_color": "#D8BD30",
|
|
104
110
|
"fill_color": "#CCCCCC",
|
|
105
111
|
"border_style": "solid",
|
|
106
|
-
"shape": "octagon"
|
|
112
|
+
"shape": "octagon",
|
|
113
|
+
"border_width": 4
|
|
107
114
|
},
|
|
108
115
|
"label_position": "over"
|
|
109
116
|
},
|
|
@@ -114,16 +121,17 @@
|
|
|
114
121
|
"style": {
|
|
115
122
|
"material": {
|
|
116
123
|
"color": {
|
|
117
|
-
"r": 0.
|
|
118
|
-
"g": 0.
|
|
119
|
-
"b": 0.
|
|
124
|
+
"r": 0.328,
|
|
125
|
+
"g": 0.033,
|
|
126
|
+
"b": 0.033,
|
|
120
127
|
"a": 1.0
|
|
121
128
|
}
|
|
122
129
|
},
|
|
123
130
|
"border_color": "#9B3333",
|
|
124
131
|
"fill_color": "#FFFFFF",
|
|
125
132
|
"border_style": "solid",
|
|
126
|
-
"shape": "octagon"
|
|
133
|
+
"shape": "octagon",
|
|
134
|
+
"border_width": 4
|
|
127
135
|
},
|
|
128
136
|
"label_position": "over"
|
|
129
137
|
},
|
|
@@ -134,8 +142,8 @@
|
|
|
134
142
|
"style": {
|
|
135
143
|
"material": {
|
|
136
144
|
"color": {
|
|
137
|
-
"r": 0.
|
|
138
|
-
"g": 0.
|
|
145
|
+
"r": 0.687,
|
|
146
|
+
"g": 0.127,
|
|
139
147
|
"b": 0.0,
|
|
140
148
|
"a": 1.0
|
|
141
149
|
}
|
|
@@ -143,7 +151,8 @@
|
|
|
143
151
|
"border_color": "#D86400",
|
|
144
152
|
"fill_color": "#F5F5F5",
|
|
145
153
|
"border_style": "solid",
|
|
146
|
-
"shape": "rounded_rectangle"
|
|
154
|
+
"shape": "rounded_rectangle",
|
|
155
|
+
"border_width": 4
|
|
147
156
|
},
|
|
148
157
|
"label_position": "over"
|
|
149
158
|
},
|
|
@@ -160,10 +169,11 @@
|
|
|
160
169
|
"a": 1.0
|
|
161
170
|
}
|
|
162
171
|
},
|
|
163
|
-
"border_color": "#
|
|
172
|
+
"border_color": "#9B3333",
|
|
164
173
|
"fill_color": "#EFEFEF",
|
|
165
174
|
"border_style": "solid",
|
|
166
|
-
"shape": "ellipse"
|
|
175
|
+
"shape": "ellipse",
|
|
176
|
+
"border_width": 4
|
|
167
177
|
},
|
|
168
178
|
"label_position": "over"
|
|
169
179
|
},
|
|
@@ -174,8 +184,8 @@
|
|
|
174
184
|
"style": {
|
|
175
185
|
"material": {
|
|
176
186
|
"color": {
|
|
177
|
-
"r": 0.
|
|
178
|
-
"g": 0.
|
|
187
|
+
"r": 0.687,
|
|
188
|
+
"g": 0.127,
|
|
179
189
|
"b": 0.0,
|
|
180
190
|
"a": 1.0
|
|
181
191
|
}
|
|
@@ -183,7 +193,8 @@
|
|
|
183
193
|
"border_color": "#D86400",
|
|
184
194
|
"fill_color": "#FFFFFF",
|
|
185
195
|
"border_style": "solid",
|
|
186
|
-
"shape": "ellipse"
|
|
196
|
+
"shape": "ellipse",
|
|
197
|
+
"border_width": 4
|
|
187
198
|
},
|
|
188
199
|
"label_position": "over"
|
|
189
200
|
},
|
|
@@ -200,10 +211,11 @@
|
|
|
200
211
|
"a": 1.0
|
|
201
212
|
}
|
|
202
213
|
},
|
|
203
|
-
"border_color": "#
|
|
214
|
+
"border_color": "#31792D",
|
|
204
215
|
"fill_color": "#000000",
|
|
205
216
|
"border_style": "solid",
|
|
206
|
-
"shape": "ellipse"
|
|
217
|
+
"shape": "ellipse",
|
|
218
|
+
"border_width": 4
|
|
207
219
|
},
|
|
208
220
|
"label_position": "over"
|
|
209
221
|
},
|
|
@@ -220,10 +232,11 @@
|
|
|
220
232
|
"a": 1.0
|
|
221
233
|
}
|
|
222
234
|
},
|
|
223
|
-
"border_color": "#
|
|
235
|
+
"border_color": "#248FE7",
|
|
224
236
|
"fill_color": "#000000",
|
|
225
237
|
"border_style": "solid",
|
|
226
|
-
"shape": "ellipse"
|
|
238
|
+
"shape": "ellipse",
|
|
239
|
+
"border_width": 4
|
|
227
240
|
},
|
|
228
241
|
"label_position": "over"
|
|
229
242
|
},
|
|
@@ -240,10 +253,11 @@
|
|
|
240
253
|
"a": 1.0
|
|
241
254
|
}
|
|
242
255
|
},
|
|
243
|
-
"border_color": "#
|
|
256
|
+
"border_color": "#9B3333",
|
|
244
257
|
"fill_color": "#DDDDDD",
|
|
245
258
|
"border_style": "dotted",
|
|
246
|
-
"shape": "rectangle"
|
|
259
|
+
"shape": "rectangle",
|
|
260
|
+
"border_width": 4
|
|
247
261
|
},
|
|
248
262
|
"label_position": "over"
|
|
249
263
|
},
|
|
@@ -263,7 +277,8 @@
|
|
|
263
277
|
"border_color": "#000000",
|
|
264
278
|
"fill_color": "#FFFFFF",
|
|
265
279
|
"border_style": "solid",
|
|
266
|
-
"shape": "diamond"
|
|
280
|
+
"shape": "diamond",
|
|
281
|
+
"border_width": 4
|
|
267
282
|
},
|
|
268
283
|
"label_position": "center"
|
|
269
284
|
},
|
|
@@ -283,7 +298,8 @@
|
|
|
283
298
|
"border_color": "#000000",
|
|
284
299
|
"fill_color": "#FFFFFF",
|
|
285
300
|
"border_style": "dashed",
|
|
286
|
-
"shape": "triangle"
|
|
301
|
+
"shape": "triangle",
|
|
302
|
+
"border_width": 4
|
|
287
303
|
},
|
|
288
304
|
"label_position": "over"
|
|
289
305
|
},
|
|
@@ -662,13 +678,50 @@
|
|
|
662
678
|
"a": 1.0
|
|
663
679
|
}
|
|
664
680
|
},
|
|
665
|
-
"border_color": "#
|
|
681
|
+
"border_color": "#C4C4C4",
|
|
666
682
|
"fill_color": "#F0F0F0",
|
|
667
683
|
"border_style": "dashed",
|
|
668
|
-
"shape": "rectangle"
|
|
684
|
+
"shape": "rectangle",
|
|
685
|
+
"border_width": 4
|
|
669
686
|
},
|
|
670
687
|
"label_position": "over"
|
|
671
688
|
},
|
|
689
|
+
"ActivityNodeGroup": {
|
|
690
|
+
"_comment": "yEd group-folder rendering for an activity (logical grouping of stratigraphic actions). Canonical EM palette (point of truth = templates/em_palette_template.graphml, node 'Att.[xx]'): neutral grey container, dashed black border, distinguished by the CYAN group title-tab (label_background). Supersedes the legacy 'ANG' purple-ellipse style for group-container rendering; ANG kept for back-compat with other consumers.",
|
|
691
|
+
"style": {
|
|
692
|
+
"shape": "roundrectangle",
|
|
693
|
+
"fill_color": "#F5F5F5",
|
|
694
|
+
"border_color": "#000000",
|
|
695
|
+
"border_style": "dashed",
|
|
696
|
+
"border_width": 1.0,
|
|
697
|
+
"label_background": "#CCFFFF",
|
|
698
|
+
"label_position": "top"
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
"ParadataNodeGroup": {
|
|
702
|
+
"_comment": "yEd group-folder rendering for a paradata node group (holds all paradata of a stratigraphic unit). Canonical EM palette (point of truth = em_palette_template.graphml, node 'US[xxx]_PD'): neutral grey container, dashed black border, distinguished by the PEACH group title-tab (label_background). Supersedes routing through the shared 'GRAPH' grey style; GRAPH kept for the graph-metadata container.",
|
|
703
|
+
"style": {
|
|
704
|
+
"shape": "roundrectangle",
|
|
705
|
+
"fill_color": "#F5F5F5",
|
|
706
|
+
"border_color": "#000000",
|
|
707
|
+
"border_style": "dashed",
|
|
708
|
+
"border_width": 1.0,
|
|
709
|
+
"label_background": "#FFCC99",
|
|
710
|
+
"label_position": "top"
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
"TimeBranchNodeGroup": {
|
|
714
|
+
"_comment": "yEd group-folder rendering for a time branch (alternative reconstructive hypotheses; two TB can be linked by contrasts_with). Canonical EM palette (point of truth = em_palette_template.graphml, node 'TB.0'): neutral grey container, dashed black border, distinguished by the GREEN group title-tab (label_background). Distinct from ParadataNodeGroup, which the legacy shared 'GRAPH' alias could not express.",
|
|
715
|
+
"style": {
|
|
716
|
+
"shape": "roundrectangle",
|
|
717
|
+
"fill_color": "#F5F5F5",
|
|
718
|
+
"border_color": "#000000",
|
|
719
|
+
"border_style": "dashed",
|
|
720
|
+
"border_width": 1.0,
|
|
721
|
+
"label_background": "#99CC00",
|
|
722
|
+
"label_position": "top"
|
|
723
|
+
}
|
|
724
|
+
},
|
|
672
725
|
"LocationNodeGroup": {
|
|
673
726
|
"_comment": "yEd group-folder rendering for spatial / locational membership. Dashed round-rectangle to read clearly as a *group container* and to stay distinct from the solid-rectangle stratigraphic units. Border colour varies by 'kind' (toponym / study / functional). When several is_in_location memberships exist on the same node, only the one with is_primary=true is drawn as a folder; the others are emitted as labels/badges (yEd cannot stack overlapping group folders). See em_data and the Location concept page in the manual.",
|
|
674
727
|
"style": {
|
|
@@ -939,4 +992,4 @@
|
|
|
939
992
|
"label": "Included in Timebranch"
|
|
940
993
|
}
|
|
941
994
|
}
|
|
942
|
-
}
|
|
995
|
+
}
|