validate_semantics

validate_semantics(
    dictionary,
    require_iris=False,
    entity_defaults=None,
    vocab_priority=None,
)

Validate semantics with graceful gap reporting.

Ensures structural requirements, adds a required column if missing, runs validate_dictionary(), and reports missing term_iri for measurement columns. In default mode validate_dictionary() warns (instead of raising) when semantic fields are missing, so the caller can continue.

Parameters

Name Type Description Default
dictionary pd.DataFrame Dictionary tibble/data frame required
require_iris bool If True, require IRIs in all semantic fields False
entity_defaults pd.DataFrame Data frame with table_prefix and entity_iri (not applied automatically here but reserved for future use) None
vocab_priority List[str] Character vector of vocab sources (reserved for future use) None

Returns

Name Type Description
Dict[str, pd.DataFrame] Dictionary with elements: - dict: normalized dictionary with required column - issues: DataFrame of structural issues (empty if none) - missing_terms: DataFrame of measurement rows missing term_iri - missing_semantics: DataFrame of measurement rows missing any semantic field (core + optional)

Examples

>>> import pandas as pd
>>> from metasalmonpy import validate_semantics
>>> dict_df = pd.read_csv("column_dictionary.csv")
>>> result = validate_semantics(dict_df, require_iris=False)
>>> print(result['issues'])  # Structural problems
>>> print(result['missing_terms'])  # Measurements needing term_iri
>>> # Suggest terms for missing measurements
>>> if not result['missing_terms'].empty:
...     print("Proposed terms:")
...     print(result['missing_terms'][['term_label', 'term_definition']])
Back to top