Skip to content

Metadata and validation

Metadata filtering

ThunderDots separates Dublin Core metadata from extension metadata.

resource_params = {
    "metadata_dublincore": ["identifier", "title", "creator", "date", "coverage"],
    "metadata_extensions": ["dct:coverage", "dct:extend"],
}

None keeps all metadata. An empty list [] keeps none.

Temporal metadata

DotsNotice exposes temporal helpers derived from fields such as date and coverage.

notice = td.notices()[0]
print(notice.date_start)
print(notice.date_end)
print(notice.temporal_index)

Automatic validation

td = ThunderDots(
    endpoint_dts=ENDPOINT_DTS,
    collection_params={"collection_id": COLLECTION_ID},
    resource_params={"fragment_mode": "document"},
    validate=True,
)

td.fetch()
print(td.results()["validation"])

Manual validation

from thunderdots.validation import validate_notice, validate_many

output_report = validate_notice(td.results(), profile="output")
resource_report = validate_many(
    td.results().get("resource_results", []),
    profile="resource_result",
)

print(output_report.to_dict())
print(resource_report.summary())

Validation checks the JSON structure. It does not guarantee the scholarly correctness of the content.