# Vercy AI instruction - YAML 1.2 (JSON-compatible) { "vercy": "1.0-draft", "publication": { "status": "research-draft", "adjudicationStatus": "reviewable-draft", "publishableCanonical": false, "generatedAt": "2026-08-24T21:11:54Z", "synthesisSha256": "fb689c9ea2b3a7fafd71e67706935e29b3b514a6f4c8b6b292a84f24a99bef1e", "providers": [ "Claude", "Grok" ] }, "metaModel": { "id": "WM-DAT-001", "registryId": "vr.wm-dat-001", "name": "Dataset", "version": "0.3.0-research.1", "previousVersions": [], "entryKind": "entity", "family": "World Models", "category": "Information and virtual systems", "industry": [ "Cross-industry" ], "domain": [ "INF.DAT.SET" ], "tags": [ "dataset", "inf.dat.set" ], "status": "research draft" }, "canonicalUrl": "https://ver.cy/models/wm-dat-001-dataset/", "sourceUrl": "https://github.com/ver-cy/world-models/tree/feat/mega-model-registry/research/runs/wm-dat-001", "model": { "registry_id": "vr.wm-dat-001", "model_id": "WM-DAT-001", "name": "Dataset", "entry_kind": "entity", "purpose": "Describe a dataset as a catalogued, identifiable data asset so that an agent can register it, understand its scope and structure, serve it through distributions and services, judge its quality and fitness, and govern its rights, versions and retirement independently of storage format or interface.", "scope_statement": "WM-DAT-001 covers the asset-level semantics of a dataset: identity and designation, catalogue registration, classification, scope and coverage, declared structure, distributions and access services, rights and accountability, provenance, versioning and retirement, quality and fitness evidence, and profile-level interoperability. It treats DCAT 3, DCAT-AP, DCAT-US, schema.org/Dataset, DataCite, Data Package, RO-Crate, Croissant, DQV and PROV-O as alignments, not as the model's own semantics. It stops at the boundary of the data content itself: the meaning of individual variables, the full derivation graph, the full quality assessment apparatus and the commercial offering wrapped around the data belong to sibling models.", "in_scope": [ "Dataset identity, persistent identifiers and designation (title, description, language)", "Catalogue record and registration state, distinct from the dataset it describes", "Thematic classification, keywords and controlled-vocabulary terms", "Scope and coverage: observation unit, granularity, temporal and spatial extent", "Declared schema reference, data dictionary pointer and dataset series membership", "Distributions: format, media type, byte size, checksum, packaging profile", "Access services, endpoints, protocols and access conditions including embargo", "Licence, rights statement, use restrictions and machine-readable policy", "Holder, publisher, creator, contact point and steward accountability", "Personal and sensitive data controls at asset level", "Source lineage, production method and processing summary", "Version identity, change record, release cadence and status", "Deprecation, withdrawal, tombstoning, retention and deletion", "Quality measurements, fitness-for-use statements and known limitations", "ML training readiness and dataset documentation for AI use", "Application profile conformance, validation reports, harvesting and citation" ], "out_of_scope": [ "Field-level semantics, datatypes, code lists and contract enforcement (WM-DAT-004 schema / data contract)", "The full lineage graph across processing steps and systems (WM-DAT-006 lineage)", "The quality rule engine, metric definitions and assessment runs (WM-DAT-007 data quality)", "The commercial or consumer-facing offering, SLA and pricing (WM-DAT-008 data product)", "Organization and agent master data for holders, publishers and operators (organization model)", "Identifier scheme governance and allocation rules (identifier / naming model)", "Statistical production semantics such as estimation, weighting and disclosure methodology (official statistics model)", "Model training runs and evaluation results that consume the dataset (WM-AI-006)", "Study design, protocol and ethics approval of the producing research activity (WM-ACT-036)", "Physical storage, indexing and query engines; file systems and databases as such" ], "boundary_notes": [ { "neighbor": "WM-DAT-004 Schema / data contract", "distinction": "This model records only that a dataset declares conformance to a schema or contract, mirroring dcterms:conformsTo and dcat:Distribution/dcterms:conformsTo. The schema's internal structure, field semantics and enforcement live in WM-DAT-004; duplicating them here would create two masters for one contract.", "source_refs": [ "SRC-001", "SRC-004", "SRC-007" ] }, { "neighbor": "WM-DAT-006 Lineage", "distinction": "The dataset carries an asset-level derivation summary (prov:wasDerivedFrom, dcterms:source, schema.org isBasedOn) sufficient for catalogue use. The full activity-entity-agent graph, including intermediate entities and qualified derivations, is composed in from WM-DAT-006.", "source_refs": [ "SRC-003", "SRC-001", "SRC-011" ] }, { "neighbor": "WM-DAT-007 Data quality", "distinction": "DQV separates the measurement (attached to the dataset) from the metric and dimension definitions. This model holds the attached measurement, certificate or annotation; metric and dimension definitions and the assessment machinery are owned by WM-DAT-007.", "source_refs": [ "SRC-002", "SRC-014" ] }, { "neighbor": "WM-DAT-008 Data product", "distinction": "A data product is an offering with consumers, terms and service levels; a dataset is the catalogued asset. DCAT's DataService is the serving surface referenced here, but product packaging, pricing and consumer contracts stay in WM-DAT-008.", "source_refs": [ "SRC-001", "SRC-004" ] }, { "neighbor": "Catalogue / register (dcat:Catalog and dcat:CatalogRecord)", "distinction": "DCAT 3 distinguishes the resource from the catalogue record about it. This model keeps the registration facet as a finding on the dataset entry rather than modelling the catalogue itself as an entity; a catalogue with its own governance is a separate registry model.", "source_refs": [ "SRC-001", "SRC-016" ] }, { "neighbor": "WM-AI-006 Training run", "distinction": "Training-time selection, splits used and evaluation outcomes belong to the run. The dataset holds only durable ML-readiness documentation such as Croissant RecordSets and RAI statements that remain true independent of any run.", "source_refs": [ "SRC-005", "SRC-018" ] }, { "neighbor": "Organization model", "distinction": "Holder, publisher, creator and contact point are references to agents governed elsewhere; only the role assignment and accountability statement is local to the dataset.", "source_refs": [ "SRC-004", "SRC-006" ] } ] }, "sources": [ { "id": "SRC-001", "title": "Data Catalog Vocabulary (DCAT) - Version 3", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/vocab-dcat-3/", "version_or_date": "W3C Recommendation, 22 August 2024", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Normative backbone for Catalog, CatalogRecord, Dataset, Distribution, DataService and DatasetSeries, plus checksum, versioning (dcat:version, previousVersion, hasCurrentVersion, versionNotes) and inSeries." }, { "id": "SRC-002", "title": "Data Quality Vocabulary (DQV)", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/vocab-dqv/", "version_or_date": "W3C Working Group Note, 15 December 2016", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Defines QualityMeasurement, Metric, Dimension, Category, QualityAnnotation, QualityCertificate, UserQualityFeedback and QualityPolicy, and their attachment to DCAT datasets and distributions. Note: a WG Note, not a Recommendation." }, { "id": "SRC-003", "title": "PROV-O: The PROV Ontology", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/prov-o/", "version_or_date": "W3C Recommendation, 30 April 2013", "source_type": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Entity/Activity/Agent, wasGeneratedBy, wasDerivedFrom, wasAttributedTo, used, generatedAtTime, startedAtTime/endedAtTime and the qualified Derivation/Revision pattern used for asset-level lineage and for event-versus-observation time." }, { "id": "SRC-004", "title": "DCAT Application Profile for data portals in Europe (DCAT-AP) 3.0.0", "organization": "European Commission - SEMIC / Publications Office", "url": "https://semiceu.github.io/DCAT-AP/releases/3.0.0/", "version_or_date": "SEMIC Recommendation 3.0.0, 14 June 2024", "source_type": "schema", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Mandatory/recommended/optional obligations per class, mandated controlled vocabularies (EU data themes, file types, frequency, languages, access rights PUBLIC/RESTRICTED/NON_PUBLIC, ADMS status) and SHACL-based validation of profile conformance." }, { "id": "SRC-005", "title": "Croissant Format Specification 1.0", "organization": "MLCommons", "url": "https://docs.mlcommons.org/croissant/docs/croissant-spec.html", "version_or_date": "Version 1.0, 1 March 2024", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "ML-facing dataset description: FileObject, FileSet, RecordSet, Field, DataType, source/extract/transform, SHA-256 on file objects, required conformsTo and SPDX licence guidance, plus the Croissant RAI extension for lifecycle, labelling, uses and limitations." }, { "id": "SRC-006", "title": "DataCite Metadata Schema 4.6", "organization": "DataCite e.V.", "url": "https://datacite-metadata-schema.readthedocs.io/en/4.6/", "version_or_date": "Version 4.6, 2024", "source_type": "schema", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Persistent-identifier-centred metadata: Identifier, Creator, Title, Publisher, PublicationYear, ResourceType, Dates/dateTypes, RelatedIdentifier with relationType, Version, Rights, GeoLocation, FundingReference and RelatedItem." }, { "id": "SRC-007", "title": "Data Package standard (v2)", "organization": "Frictionless Data / Open Knowledge Foundation", "url": "https://datapackage.org/standard/data-package/", "version_or_date": "Data Package 2.0, page updated 5 May 2026", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Container-level descriptor semantics: required resources array, recommended name/id/licenses/profile, version, created, sources, contributors, and resource-level path/data, encoding, mediatype, bytes and hash." }, { "id": "SRC-008", "title": "DCAT-US Schema (Project Open Data metadata schema)", "organization": "U.S. General Services Administration - resources.data.gov", "url": "https://resources.data.gov/resources/dcat-us/", "version_or_date": "DCAT-US v1.1 (6 November 2014); v3.0 published as latest on the same site", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "US federal profile requiring title, description, keyword, modified, publisher, contactPoint, identifier, accessLevel, bureauCode, programCode and distribution; evidence that access level and organisational codes are jurisdiction-specific extensions, not universal." }, { "id": "SRC-009", "title": "RO-Crate 1.2 Specification", "organization": "Research Object / RO-Crate community (w3id.org/ro/crate)", "url": "https://www.researchobject.org/ro-crate/specification/1.2/", "version_or_date": "Recommendation, 4 June 2025 (DOI 10.5281/zenodo.13751027)", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Packaging pattern: ro-crate-metadata.json descriptor, Root Data Entity with conformsTo/identifier/datePublished/license/author, data versus contextual entities, provenance and web-based or detached crates." }, { "id": "SRC-010", "title": "FAIR Principles", "organization": "GO FAIR International Support and Coordination Office", "url": "https://www.go-fair.org/fair-principles/", "version_or_date": "Principles as published in Wilkinson et al., Scientific Data, 2016", "source_type": "scientific", "primary_source": false, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "F1 globally unique persistent identifier, F3 metadata state the data identifier, A1 retrievable by identifier over a standard protocol, A2 metadata remain accessible when data are gone, I3 qualified references, R1.1 clear usage licence, R1.2 detailed provenance, R1.3 community standards." }, { "id": "SRC-011", "title": "schema.org type: Dataset", "organization": "Schema.org Community Group (W3C)", "url": "https://schema.org/Dataset", "version_or_date": "Schema.org v30.0, released 2026-03-19", "source_type": "ontology", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Web-discovery projection with distribution, includedInDataCatalog, variableMeasured, measurementTechnique, temporalCoverage, spatialCoverage, isBasedOn, version, sdPublisher/sdDatePublished, and an explicit equivalence to dcat:Dataset." }, { "id": "SRC-012", "title": "RFC 3339: Date and Time on the Internet: Timestamps", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc3339", "version_or_date": "Proposed Standard, July 2002", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Normative timestamp profile: full-date and full-time with seconds, mandatory time-offset (Z or numeric), leap-second handling, and the explicit rejection of unqualified local time." }, { "id": "SRC-013", "title": "Commission Implementing Regulation (EU) 2023/138 laying down a list of specific high-value datasets and the arrangements for their publication and re-use", "organization": "European Union - EUR-Lex (Official Journal)", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX%3A32023R0138", "version_or_date": "Adopted 21 December 2022; OJ L 19, 20.1.2023; applicable from 9 June 2024", "source_type": "legislation", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Binding arrangements for designated public-sector datasets: free of charge, machine-readable format, API and bulk download, open licence, and metadata description over six thematic categories under Directive (EU) 2019/1024. Full text retrieval timed out; title, date and obligations confirmed from the EUR-Lex-indexed OJ record." }, { "id": "SRC-014", "title": "European quality standards / Quality Assurance Framework of the European Statistical System", "organization": "Eurostat - European Commission", "url": "https://ec.europa.eu/eurostat/web/quality/european-quality-standards", "version_or_date": "ESS QAF v1.2; European Statistics Code of Practice; Regulation (EC) 223/2009", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Named output quality dimensions - relevance, accuracy and reliability, timeliness and punctuality, coherence and comparability, accessibility and clarity - used as an authoritative dimension vocabulary alternative to paywalled ISO/IEC 25012." }, { "id": "SRC-015", "title": "ODRL Information Model 2.2", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/odrl-model/", "version_or_date": "W3C Recommendation, 15 February 2018", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Machine-readable rights: Policy (Set/Offer/Agreement), Permission, Prohibition, Duty, Asset, Party, Action, Constraint and the hasPolicy attachment used for use restrictions beyond a licence URL." }, { "id": "SRC-016", "title": "The Open Archives Initiative Protocol for Metadata Harvesting, Version 2.0", "organization": "Open Archives Initiative", "url": "https://www.openarchives.org/OAI/openarchivesprotocol.html", "version_or_date": "Version 2.0, 14 June 2002 (with later editorial updates)", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Federation semantics: item/record/identifier/datestamp/set/metadataPrefix, selective harvesting by from/until datestamps, declared deleted-record support (no/persistent/transient) and mandatory oai_dc." }, { "id": "SRC-017", "title": "Tombstone Pages (DataCite Support)", "organization": "DataCite e.V.", "url": "https://support.datacite.org/docs/tombstone-pages", "version_or_date": "Updated 7 August 2026", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Withdrawal practice: a DataCite DOI cannot be deleted; unavailable content gets a tombstone with full citation, machine-readable DOI and a statement of unavailability, with the DOI moved to the Registered state." }, { "id": "SRC-018", "title": "Article 10: Data and Data Governance, Regulation (EU) 2024/1689 (AI Act)", "organization": "EU Artificial Intelligence Act explorer (Future of Life Institute)", "url": "https://artificialintelligenceact.eu/article/10/", "version_or_date": "Regulation (EU) 2024/1689; Article 10; high-risk obligations applying from 2 August 2026", "source_type": "secondary", "primary_source": false, "authority_tier": 3, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Requirements on training, validation and testing data sets: documented design choices, collection origin, preparation operations, assumptions, suitability, bias examination and mitigation, gaps, and relevance/representativeness/error-freeness/completeness. Secondary rendering of the OJ text; verify against EUR-Lex before claiming compliance." }, { "id": "SRC-019", "title": "DDI-Codebook (DDI-C)", "organization": "DDI Alliance", "url": "https://ddialliance.org/ddi-codebook", "version_or_date": "Version 2.6, released 2026-04-15", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Study-level documentation of content, meaning, provenance and access for a single dataset, including universe/unit of analysis, sampling, collection period and mode, plus variable-level sources, derivation and access restrictions." }, { "id": "SRC-020", "title": "Data Catalog Vocabulary (DCAT) - Version 3", "organization": "World Wide Web Consortium", "url": "https://www.w3.org/TR/2024/REC-vocab-dcat-3-20240822/", "version_or_date": "W3C Recommendation 22 August 2024", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Published by the W3C Dataset Exchange Working Group. Core vocabulary for Dataset, Distribution, DataService, Catalog, CatalogRecord and DatasetSeries, plus version properties, checksum and coverage terms used throughout this model." }, { "id": "SRC-021", "title": "Data on the Web Best Practices: Data Quality Vocabulary", "organization": "World Wide Web Consortium", "url": "https://www.w3.org/TR/2016/NOTE-vocab-dqv-20161215/", "version_or_date": "W3C Working Group Note 15 December 2016", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Published by the W3C Data on the Web Best Practices Working Group. Supplies quality measurement, metric, dimension, certificate and feedback terms attached to catalogued datasets and distributions." }, { "id": "SRC-022", "title": "DataCite Metadata Schema Documentation for the Publication and Citation of Research Data and Other Research Outputs", "organization": "DataCite e.V.", "url": "https://datacite-metadata-schema.readthedocs.io/en/4.7/", "version_or_date": "Version 4.7, released 3 March 2026 (DOI 10.14454/qdd3-ps68)", "source_type": "schema", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Maintained by the DataCite Metadata Working Group. Mandatory citation properties, DOI identity, alternate identifiers, date types including Withdrawn, relation types and GeoLocation." }, { "id": "SRC-023", "title": "PROV-O: The PROV Ontology", "organization": "World Wide Web Consortium", "url": "https://www.w3.org/TR/2013/REC-prov-o-20130430/", "version_or_date": "W3C Recommendation 30 April 2013", "source_type": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Published by the W3C Provenance Working Group. Generation, derivation, attribution, revision and invalidation terms reused by DCAT and by the lineage sibling model." }, { "id": "SRC-024", "title": "ISO 19115-1:2014 Geographic information — Metadata — Part 1: Fundamentals", "organization": "International Organization for Standardization", "url": "https://www.iso.org/standard/53798.html", "version_or_date": "ISO 19115-1:2014", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Published by ISO/TC 211. Geographic metadata fundamentals: scope codes, extent, constraint and lineage packages aligned here without duplication." }, { "id": "SRC-025", "title": "ISO 19115-1 Metadata Best Practice Guide", "organization": "Intergovernmental Committee on Surveying and Mapping (Australia / New Zealand)", "url": "https://icsm-au.github.io/metadata-working-group/", "version_or_date": "Guidance compiled for ISO 19115-1:2014 including Amd.1:2018; page dated 2021-09-18", "source_type": "secondary", "primary_source": false, "authority_tier": 3, "accessed_at": "2026-08-24T00:00:00Z", "relevance": "Compiled by the ICSM Metadata Working Group. Public best-practice guidance used to align ISO 19115-1 constraint, lineage and extent practice where the ISO text is paywalled." } ], "structure": { "bundles": [ { "id": "identity-and-registration", "name": "Identity and registration", "description": "What this dataset is, how it is named and identified, how its catalogue entry is registered and how it is classified for discovery.", "rationale": "DCAT 3 separates the resource from the CatalogRecord that registers it, and FAIR F1/F3 require a globally unique persistent identifier that metadata explicitly bind to the data. Identity and registration must therefore be settled before any other statement about the asset can be trusted.", "source_refs": [ "SRC-001", "SRC-010", "SRC-006" ], "layers": [ { "id": "designation-and-identity", "name": "Designation and identity", "description": "Identifiers, titles, descriptions and languages that make the dataset referable and comprehensible.", "source_refs": [ "SRC-001", "SRC-006", "SRC-010" ], "findings": [ { "id": "dataset-identity-and-designation", "name": "Dataset identity and designation", "description": "The identifier set and human designation of the dataset: the authoritative internal identifier held by the master system, any governed persistent identifier such as a DOI or resolvable IRI, alternate identifiers, and multilingual title/description that name the asset for humans.", "source_refs": [ "SRC-001", "SRC-006", "SRC-010", "SRC-004" ], "questions": [ { "id": "q-identity-authoritative", "text": "Which system is the master for this dataset's identifier, and what is the identifier it assigns?", "kind": "identity", "answer_data": [ "Master system reference", "Master-system dataset identifier", "Identifier scheme reference" ] }, { "id": "q-identity-persistent", "text": "Does a governed persistent identifier (DOI, Handle, ARK, resolvable IRI) exist, who registered it, and what does it resolve to?", "kind": "authority", "answer_data": [ "Persistent identifier value", "Registration agency", "Resolution target URL", "Registration timestamp" ] }, { "id": "q-identity-abstract-vs-version", "text": "Does the identifier denote the abstract dataset or one specific version of it?", "kind": "definition", "answer_data": [ "Identifier granularity code (abstract | version | distribution)", "Concept-identifier reference" ] }, { "id": "q-identity-alternates", "text": "Which alternate or legacy identifiers must be kept resolvable to avoid breaking existing references?", "kind": "interoperability", "answer_data": [ "Alternate identifier list", "Scheme per alternate identifier", "Deprecation status per identifier" ] }, { "id": "q-identity-designation", "text": "What title, description and language variants are authoritative for this dataset?", "kind": "definition", "answer_data": [ "Title per language tag", "Description per language tag", "Primary language code" ] } ], "data_elements": [ { "id": "de-master-dataset-id", "name": "Master-system dataset identifier", "description": "Identifier assigned by the system of record that owns the dataset entry.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-008" ] }, { "id": "de-persistent-id", "name": "Persistent identifier", "description": "Governed global identifier such as a DOI or resolvable IRI, with its scheme.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006", "SRC-010" ] }, { "id": "de-title-multilingual", "name": "Title (language-tagged)", "description": "Human-readable name, repeatable per language.", "value_kind": "text", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "de-description", "name": "Description", "description": "Free-text account of the dataset, repeatable per language.", "value_kind": "text", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-004", "SRC-005" ] } ], "artifacts": [ { "id": "dataset-metadata-record", "name": "Dataset metadata record", "description": "The canonical descriptive record for the dataset, serialisable as DCAT/DCAT-AP RDF, DataCite XML/JSON, schema.org JSON-LD or Croissant JSON-LD without changing its semantics.", "media_or_form": [ "structured metadata record", "RDF graph", "JSON-LD document", "XML document" ], "serial": false, "identity_strategy": "Keyed by the master-system dataset identifier; carries the persistent identifier as an alternate key.", "source_refs": [ "SRC-001", "SRC-006", "SRC-011", "SRC-005" ] } ], "inline_only_rationale": null } ] }, { "id": "registration-and-classification", "name": "Registration and classification", "description": "The catalogue record that lists the dataset and the controlled terms that make it findable.", "source_refs": [ "SRC-001", "SRC-004", "SRC-016" ], "findings": [ { "id": "catalogue-record-and-listing", "name": "Catalogue record and listing state", "description": "The registration facet: which catalogue lists the dataset, when the record was created and modified, the record's own state (draft, listed, hidden, deleted) and the fact that record metadata changes independently of the dataset.", "source_refs": [ "SRC-001", "SRC-016", "SRC-011", "SRC-004" ], "questions": [ { "id": "q-record-catalogue", "text": "In which catalogue or register is this dataset listed, and under what record identifier?", "kind": "identity", "answer_data": [ "Catalogue reference", "Catalogue record identifier", "Listing URL" ] }, { "id": "q-record-state", "text": "What is the current listing state of the record, and who may change it?", "kind": "state", "answer_data": [ "Record state code", "State changed timestamp", "Authorised role" ] }, { "id": "q-record-vs-dataset-time", "text": "How do record creation and modification times differ from the dataset's own issued and modified times?", "kind": "temporal", "answer_data": [ "Record created timestamp", "Record modified timestamp", "Dataset issued timestamp", "Dataset modified timestamp" ] }, { "id": "q-record-multiple-listings", "text": "Is the same dataset listed in more than one catalogue, and which listing is authoritative?", "kind": "relationship", "answer_data": [ "Listing reference list", "Authoritative listing flag", "Duplicate-of reference" ] } ], "data_elements": [ { "id": "de-catalogue-ref", "name": "Catalogue reference", "description": "Reference to the catalogue or register holding the listing.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-001", "SRC-011" ] }, { "id": "de-record-state", "name": "Record listing state", "description": "Registration state of the catalogue record, distinct from the dataset lifecycle state.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-016" ] }, { "id": "de-record-timestamps", "name": "Record created and modified timestamps", "description": "RFC 3339 timestamps for the record itself, used for selective harvesting.", "value_kind": "timestamp", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-016", "SRC-012" ] } ], "artifacts": [ { "id": "catalogue-record", "name": "Catalogue record", "description": "The registration object about the dataset (dcat:CatalogRecord), separable from the dataset metadata record and independently timestamped for harvest.", "media_or_form": [ "registration record", "harvestable metadata record" ], "serial": false, "identity_strategy": "Catalogue-scoped record identifier plus the referenced dataset identifier.", "source_refs": [ "SRC-001", "SRC-016" ] } ], "inline_only_rationale": null }, { "id": "thematic-classification", "name": "Thematic classification and keywords", "description": "Controlled-vocabulary themes, keywords, resource type and any mandated classification codes that place the dataset in a discovery taxonomy.", "source_refs": [ "SRC-004", "SRC-006", "SRC-013", "SRC-008" ], "questions": [ { "id": "q-class-themes", "text": "Which controlled vocabularies are mandatory for themes in the governing profile, and which terms apply?", "kind": "classification", "answer_data": [ "Theme vocabulary URI", "Theme term URIs", "Profile reference" ] }, { "id": "q-class-resource-type", "text": "What general resource type best describes this asset, and does the target profile constrain the allowed values?", "kind": "classification", "answer_data": [ "Resource type code", "Type vocabulary reference" ] }, { "id": "q-class-keywords", "text": "Which free-text keywords are maintained, in which languages, and who curates them?", "kind": "quality", "answer_data": [ "Keyword list per language", "Curation owner", "Last curated timestamp" ] }, { "id": "q-class-regulated", "text": "Is the dataset designated under a regulatory category such as an EU high-value dataset thematic category?", "kind": "requirement", "answer_data": [ "Regulatory designation code", "Legal instrument reference", "Designation effective date" ] } ], "data_elements": [ { "id": "de-theme-terms", "name": "Theme terms", "description": "URIs from a mandated theme vocabulary.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "de-keywords", "name": "Keywords", "description": "Language-tagged free-text tags for discovery.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-004", "SRC-008" ] }, { "id": "de-regulatory-designation", "name": "Regulatory designation", "description": "Category assigned by a legal instrument, e.g. an HVD thematic category.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013" ] } ], "artifacts": [ { "id": "classification-term-set", "name": "Classification term set", "description": "The resolved set of vocabulary terms bound to the dataset, each with vocabulary URI and version so drift in the source vocabulary is detectable.", "media_or_form": [ "term binding set", "controlled vocabulary mapping" ], "serial": false, "identity_strategy": "Dataset identifier plus vocabulary URI plus term URI.", "source_refs": [ "SRC-004", "SRC-013" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "scope-and-structure", "name": "Scope and structure", "description": "What the dataset covers - population, time, space - and what shape it has, including its schema declaration and its membership in a series.", "rationale": "Coverage and declared structure are the properties a consumer needs before deciding relevance; DCAT and DCAT-AP carry temporal, spatial and resolution properties, DDI carries universe and unit of analysis, and Croissant and Data Package carry record structure.", "source_refs": [ "SRC-001", "SRC-004", "SRC-019", "SRC-005", "SRC-007" ], "layers": [ { "id": "coverage", "name": "Coverage", "description": "The observational, temporal and spatial extent and granularity of the data.", "source_refs": [ "SRC-001", "SRC-004", "SRC-019", "SRC-011" ], "findings": [ { "id": "observation-unit-and-granularity", "name": "Observation unit and granularity", "description": "The population or universe covered, the unit of observation or analysis, the variables measured, and the resolution at which records are expressed.", "source_refs": [ "SRC-019", "SRC-011", "SRC-004", "SRC-014" ], "questions": [ { "id": "q-unit-universe", "text": "What population or universe does the dataset claim to cover, and is coverage a census, a sample or opportunistic?", "kind": "definition", "answer_data": [ "Universe statement", "Coverage mode code", "Sampling procedure reference" ] }, { "id": "q-unit-of-observation", "text": "What is the unit of observation of one record, and does it differ from the unit of analysis?", "kind": "composition", "answer_data": [ "Unit of observation term", "Unit of analysis term", "Record count" ] }, { "id": "q-unit-variables", "text": "Which variables are measured, and by what measurement technique?", "kind": "measurement", "answer_data": [ "Variable name list", "Measurement technique statement", "Unit of measure per variable" ] }, { "id": "q-unit-resolution", "text": "What spatial and temporal resolution do the records carry, and what is the smallest reportable granularity?", "kind": "constraint", "answer_data": [ "Spatial resolution value", "Temporal resolution duration", "Minimum reportable granularity" ] } ], "data_elements": [ { "id": "de-universe", "name": "Universe statement", "description": "Description of the population the data is intended to represent.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-019" ] }, { "id": "de-unit-of-observation", "name": "Unit of observation", "description": "The entity type that one record describes.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-019" ] }, { "id": "de-temporal-resolution", "name": "Temporal resolution", "description": "Minimum time period resolvable in the data.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "de-record-count", "name": "Record count", "description": "Number of records or observations at a stated point in time.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-019" ] } ], "artifacts": [ { "id": "coverage-statement", "name": "Coverage statement", "description": "A structured statement of universe, unit, variables and resolution, suitable for publication as a codebook section or as Croissant RecordSet documentation.", "media_or_form": [ "codebook section", "structured coverage record" ], "serial": false, "identity_strategy": "Dataset identifier plus version identifier, since coverage changes between versions.", "source_refs": [ "SRC-019", "SRC-005" ] } ], "inline_only_rationale": null }, { "id": "temporal-coverage-and-currency", "name": "Temporal coverage and currency", "description": "The period the data describes, the reference date of the content, and the currency of the asset expressed through issued, modified and next-expected-update times.", "source_refs": [ "SRC-001", "SRC-004", "SRC-012", "SRC-006" ], "questions": [ { "id": "q-temporal-extent", "text": "What start and end instants does the data content cover, and is the interval open-ended?", "kind": "temporal", "answer_data": [ "Coverage start timestamp", "Coverage end timestamp", "Open-ended flag" ] }, { "id": "q-temporal-reference", "text": "What is the reference date of the content, as distinct from the date the metadata was recorded?", "kind": "provenance", "answer_data": [ "Content reference date", "Metadata record timestamp", "Ingestion timestamp" ] }, { "id": "q-temporal-currency", "text": "When was the dataset last updated and when is the next update expected?", "kind": "state", "answer_data": [ "Last modified timestamp", "Next expected update timestamp", "Currency status code" ] }, { "id": "q-temporal-timezone", "text": "Which time zone or offset applies to the timestamps inside the data, and is it recorded explicitly?", "kind": "constraint", "answer_data": [ "Offset or time-zone identifier", "Explicit-offset compliance flag" ] } ], "data_elements": [ { "id": "de-coverage-interval", "name": "Temporal coverage interval", "description": "Start and end of the period described by the data, as RFC 3339 timestamps or dates.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-012" ] }, { "id": "de-issued-modified", "name": "Issued and modified timestamps", "description": "Release and last-change times of the dataset itself.", "value_kind": "timestamp", "cardinality": "0..n", "required": true, "source_refs": [ "SRC-004", "SRC-012" ] }, { "id": "de-next-update", "name": "Next expected update", "description": "Planned next release instant, where a cadence is declared.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] } ], "artifacts": [ { "id": "temporal-coverage-record", "name": "Temporal coverage record", "description": "Machine-readable interval and currency block covering content period, issue, modification and expected update.", "media_or_form": [ "interval record", "metadata fragment" ], "serial": false, "identity_strategy": "Dataset version identifier plus interval bounds.", "source_refs": [ "SRC-001", "SRC-012" ] } ], "inline_only_rationale": null }, { "id": "spatial-coverage-and-reference-system", "name": "Spatial coverage and reference system", "description": "Geographic extent, named places, coordinate reference system and spatial resolution, applicable when the data has a location dimension.", "source_refs": [ "SRC-001", "SRC-004", "SRC-006", "SRC-013" ], "questions": [ { "id": "q-spatial-extent", "text": "What geographic extent does the dataset cover, expressed as named places, codes or a bounding geometry?", "kind": "spatial", "answer_data": [ "Place term URIs", "Bounding geometry", "Geometry encoding" ] }, { "id": "q-spatial-crs", "text": "Which coordinate reference system do the coordinates use, and is it stated by registry identifier?", "kind": "interoperability", "answer_data": [ "CRS registry identifier", "CRS registry reference", "Axis order statement" ] }, { "id": "q-spatial-resolution", "text": "What is the spatial resolution or smallest geographic unit released, and does disclosure control coarsen it?", "kind": "constraint", "answer_data": [ "Spatial resolution in metres", "Smallest geographic unit", "Coarsening rule reference" ] }, { "id": "q-spatial-applicability", "text": "If the dataset has no spatial dimension, is that recorded explicitly rather than left empty?", "kind": "exception", "answer_data": [ "Not-applicable flag", "Justification note" ] } ], "data_elements": [ { "id": "de-spatial-extent", "name": "Spatial extent", "description": "Named place references or bounding geometry for the covered area.", "value_kind": "geometry", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "de-crs-identifier", "name": "Coordinate reference system identifier", "description": "Registry identifier of the CRS used by coordinates in the data.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-spatial-resolution", "name": "Spatial resolution", "description": "Resolution in metres or as an equivalent unit statement.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] } ], "artifacts": [ { "id": "spatial-extent-record", "name": "Spatial extent record", "description": "Geometry or place-code block with an explicit CRS reference, publishable in a geospatial metadata profile.", "media_or_form": [ "geometry record", "geospatial metadata fragment" ], "serial": false, "identity_strategy": "Dataset version identifier plus geometry hash or place-code set.", "source_refs": [ "SRC-001", "SRC-004" ] } ], "inline_only_rationale": null } ] }, { "id": "structure-and-membership", "name": "Structure and membership", "description": "The declared schema the data claims to follow and the dataset's place in a series or aggregate.", "source_refs": [ "SRC-001", "SRC-007", "SRC-005", "SRC-004" ], "findings": [ { "id": "declared-schema-reference", "name": "Declared schema reference", "description": "The reference from the dataset to the schema, data dictionary or data contract it conforms to, with the version of that schema and whether conformance is asserted or verified.", "source_refs": [ "SRC-001", "SRC-007", "SRC-005", "SRC-019" ], "questions": [ { "id": "q-schema-reference", "text": "Which schema, profile or data contract does the dataset declare conformance to, and at which version?", "kind": "composition", "answer_data": [ "Schema reference", "Schema version", "Declaration scope (dataset | distribution)" ] }, { "id": "q-schema-verified", "text": "Is conformance asserted by the publisher or verified by a validator, and where is the evidence?", "kind": "evidence", "answer_data": [ "Conformance status code", "Validation report reference", "Validated timestamp" ] }, { "id": "q-schema-dictionary", "text": "Where is the field-level data dictionary published, and does it cover code lists and missing-value conventions?", "kind": "interoperability", "answer_data": [ "Data dictionary URL", "Code list references", "Missing value convention" ] }, { "id": "q-schema-drift", "text": "How is divergence between the declared schema and the served data detected and reported?", "kind": "validation", "answer_data": [ "Drift check method", "Last drift check timestamp", "Open drift findings" ] } ], "data_elements": [ { "id": "de-conforms-to", "name": "Conforms-to reference", "description": "Reference to the schema or standard the data claims to follow.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-005" ] }, { "id": "de-schema-version", "name": "Declared schema version", "description": "Version string of the referenced schema at time of declaration.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "de-conformance-status", "name": "Conformance status", "description": "Whether conformance is asserted, verified or failing.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] } ], "artifacts": [ { "id": "schema-declaration", "name": "Schema declaration", "description": "The binding between the dataset (or a distribution) and an external schema artefact, holding the reference, version and conformance status only.", "media_or_form": [ "declaration record", "metadata fragment" ], "serial": false, "identity_strategy": "Dataset version identifier plus schema reference plus schema version.", "source_refs": [ "SRC-001", "SRC-007" ] } ], "inline_only_rationale": null }, { "id": "series-and-membership", "name": "Series and aggregate membership", "description": "Whether the dataset is an edition or slice of a continuing series, part of a larger aggregate, or a standalone asset, and the ordering relations among members.", "source_refs": [ "SRC-001", "SRC-004", "SRC-006" ], "questions": [ { "id": "q-series-membership", "text": "Is this dataset a member of a dataset series, and what identifies the series?", "kind": "relationship", "answer_data": [ "Series reference", "Series identifier", "Membership role" ] }, { "id": "q-series-ordering", "text": "Which member precedes and follows this one, and on what ordering property?", "kind": "composition", "answer_data": [ "Previous member reference", "Next member reference", "Ordering property" ] }, { "id": "q-series-vs-version", "text": "Is a new release a new series member or a new version of the same dataset, and which rule decides?", "kind": "decision", "answer_data": [ "Release policy rule", "Decision outcome code", "Rule owner" ] }, { "id": "q-series-parts", "text": "Does the dataset aggregate identifiable parts or subsets that are themselves catalogued?", "kind": "composition", "answer_data": [ "Part references", "Part granularity", "Aggregation rule" ] } ], "data_elements": [ { "id": "de-in-series", "name": "Series membership reference", "description": "Reference to the dataset series this dataset belongs to.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-member-order", "name": "Member ordering key", "description": "Ordering value, usually the coverage period start, used to sequence members.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-part-refs", "name": "Part references", "description": "References to catalogued subsets or components.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [ { "id": "series-membership-record", "name": "Series membership record", "description": "Edge record binding a dataset to a series with ordering and role, kept separate so the series can be governed by its own holder.", "media_or_form": [ "edge record", "relationship record" ], "serial": true, "identity_strategy": "Series identifier plus member dataset identifier; ordering key carried as an attribute, never as the identifier.", "source_refs": [ "SRC-001", "SRC-004" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "representation-and-access", "name": "Representation and access", "description": "How the dataset is materialised as distributions and served through endpoints, and under what access conditions.", "rationale": "DCAT separates the abstract dataset from Distributions and DataServices; FAIR A1 requires retrieval by identifier over a standardised protocol; EU high-value dataset rules make API and bulk download availability a legal obligation for designated data.", "source_refs": [ "SRC-001", "SRC-010", "SRC-013", "SRC-004" ], "layers": [ { "id": "distributions", "name": "Distributions and packaging", "description": "Concrete serialisations of the dataset with format, size, fixity and packaging conventions.", "source_refs": [ "SRC-001", "SRC-007", "SRC-009", "SRC-005" ], "findings": [ { "id": "distribution-manifest-and-fixity", "name": "Distribution manifest and fixity", "description": "Each accessible form of the dataset - its media type and format, byte size, download and access URLs, compression or packaging profile, and the checksum that lets a consumer verify the bytes received.", "source_refs": [ "SRC-001", "SRC-007", "SRC-005", "SRC-009" ], "questions": [ { "id": "q-dist-forms", "text": "Which distributions exist for this dataset, and what media type and format does each use?", "kind": "composition", "answer_data": [ "Distribution identifier list", "Media type per distribution", "Format term per distribution" ] }, { "id": "q-dist-fixity", "text": "What checksum algorithm and value is published for each distribution, and when was fixity last verified?", "kind": "validation", "answer_data": [ "Checksum algorithm", "Checksum value", "Fixity verified timestamp" ] }, { "id": "q-dist-packaging", "text": "Is the distribution packaged in a container profile such as a data package or research object crate, and where is its descriptor?", "kind": "interoperability", "answer_data": [ "Packaging profile reference", "Descriptor filename", "Descriptor URL" ] }, { "id": "q-dist-equivalence", "text": "Are the distributions semantically equivalent renderings of the same content, or do some carry reduced or transformed content?", "kind": "constraint", "answer_data": [ "Equivalence flag", "Reduction description", "Authoritative distribution reference" ] }, { "id": "q-dist-size", "text": "What byte size and record volume should a consumer plan for, and how volatile is that size?", "kind": "measurement", "answer_data": [ "Byte size", "Record count", "Size measured timestamp" ] } ], "data_elements": [ { "id": "de-media-type", "name": "Media type", "description": "IANA media type of the distribution.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "de-byte-size", "name": "Byte size", "description": "Size of the distribution in bytes at a stated time.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-007" ] }, { "id": "de-checksum", "name": "Checksum", "description": "Algorithm and digest value for byte-level integrity verification.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-005" ] }, { "id": "de-download-url", "name": "Download URL", "description": "Direct retrieval URL for the distribution's bytes.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-packaging-profile", "name": "Packaging profile", "description": "Container convention the distribution follows, with its descriptor location.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-009" ] } ], "artifacts": [ { "id": "distribution", "name": "Distribution", "description": "An accessible form of the dataset: file, archive, package or dump, described by a manifest entry with format, size, fixity and access URLs.", "media_or_form": [ "file", "archive", "package descriptor", "binary payload" ], "serial": true, "identity_strategy": "Dataset version identifier plus distribution identifier assigned by the master system; checksum used for content-equality checks, never as the primary key.", "source_refs": [ "SRC-001", "SRC-007", "SRC-009" ] } ], "inline_only_rationale": null } ] }, { "id": "access-channels", "name": "Access channels and conditions", "description": "Services that serve the data and the conditions under which access is granted.", "source_refs": [ "SRC-001", "SRC-004", "SRC-013", "SRC-010" ], "findings": [ { "id": "access-service-and-protocol", "name": "Access service and protocol", "description": "Endpoints that serve the dataset - APIs, query services, streams or bulk download points - with their protocol, declared conformance class, documentation and operational limits.", "source_refs": [ "SRC-001", "SRC-004", "SRC-013", "SRC-010" ], "questions": [ { "id": "q-svc-endpoints", "text": "Which services serve this dataset, and what is the endpoint URL and description of each?", "kind": "composition", "answer_data": [ "Service reference list", "Endpoint URL", "Endpoint description URL" ] }, { "id": "q-svc-protocol", "text": "What protocol or API standard does each endpoint implement, and which conformance classes does it declare?", "kind": "interoperability", "answer_data": [ "Protocol identifier", "Conformance class list", "Specification reference" ] }, { "id": "q-svc-limits", "text": "What rate limits, pagination, quota or payload limits apply to programmatic access?", "kind": "constraint", "answer_data": [ "Rate limit value", "Page size limit", "Quota policy reference" ] }, { "id": "q-svc-bulk", "text": "Is a bulk download path available alongside the API, as required for designated public-sector datasets?", "kind": "requirement", "answer_data": [ "Bulk download URL", "Obligation reference", "Availability status" ] } ], "data_elements": [ { "id": "de-endpoint-url", "name": "Endpoint URL", "description": "Root URL of the service serving the dataset.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "de-protocol", "name": "Protocol or API standard", "description": "Identifier of the protocol the endpoint implements.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-service-limits", "name": "Service limits", "description": "Declared operational limits such as rate, quota and page size.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013" ] } ], "artifacts": [ { "id": "access-service-descriptor", "name": "Access service descriptor", "description": "Machine-readable description of the serving endpoint, including protocol, conformance and documentation links; the API definition document itself is referenced, not owned here.", "media_or_form": [ "service description record", "API definition reference" ], "serial": true, "identity_strategy": "Service identifier from the master system plus endpoint URL as an alternate key.", "source_refs": [ "SRC-001", "SRC-004" ] } ], "inline_only_rationale": null }, { "id": "access-conditions-and-embargo", "name": "Access conditions and embargo", "description": "The access level of the asset, authentication and authorisation requirements, request and approval processes for restricted data, and time-bound embargoes.", "source_refs": [ "SRC-004", "SRC-008", "SRC-010", "SRC-019" ], "questions": [ { "id": "q-access-level", "text": "What is the declared access level of this dataset, using the governing profile's vocabulary?", "kind": "access", "answer_data": [ "Access rights code", "Vocabulary reference", "Justification note" ] }, { "id": "q-access-auth", "text": "What authentication and authorisation does each channel require, and who can approve a grant?", "kind": "security", "answer_data": [ "Authentication method", "Authorisation role", "Approver reference" ] }, { "id": "q-access-request", "text": "If access is restricted, what is the request process, expected decision time and appeal route?", "kind": "process", "answer_data": [ "Request procedure reference", "Decision service level", "Appeal route" ] }, { "id": "q-access-embargo", "text": "Is an embargo in force, when does it lift, and what becomes available at that moment?", "kind": "temporal", "answer_data": [ "Embargo end timestamp", "Post-embargo access level", "Embargo reason code" ] }, { "id": "q-access-metadata-visibility", "text": "When the data itself is restricted, does descriptive metadata remain publicly visible?", "kind": "exception", "answer_data": [ "Metadata visibility flag", "Suppressed field list", "Policy reference" ] } ], "data_elements": [ { "id": "de-access-rights", "name": "Access rights code", "description": "Coded access level such as public, restricted or non-public.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-008" ] }, { "id": "de-auth-requirement", "name": "Authentication requirement", "description": "Method required to authenticate before access is granted.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "de-embargo-end", "name": "Embargo end", "description": "Instant at which restricted status is scheduled to lapse.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010", "SRC-019" ] } ], "artifacts": [ { "id": "access-condition-statement", "name": "Access condition statement", "description": "Human- and machine-readable statement of access level, conditions and request route, publishable on a landing page even when the data is closed.", "media_or_form": [ "policy statement", "landing page section", "metadata fragment" ], "serial": false, "identity_strategy": "Dataset identifier plus condition statement identifier and effective-from timestamp as an attribute.", "source_refs": [ "SRC-004", "SRC-010" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "rights-and-accountability", "name": "Rights and accountability", "description": "Who is accountable for the dataset, under what licence and restrictions it may be used, and what protections apply to personal or sensitive content.", "rationale": "FAIR R1.1 requires a clear usage licence and R1.2 detailed provenance; DCAT-AP mandates publisher and licence vocabularies; ODRL provides machine-readable permissions, prohibitions and duties beyond a single licence URL; AI Act Article 10 adds documented governance duties for training data.", "source_refs": [ "SRC-010", "SRC-004", "SRC-015", "SRC-018" ], "layers": [ { "id": "rights-and-licensing", "name": "Rights and licensing", "description": "Licence, rights holder and machine-readable use restrictions.", "source_refs": [ "SRC-004", "SRC-015", "SRC-005", "SRC-013" ], "findings": [ { "id": "licence-and-rights-statement", "name": "Licence and rights statement", "description": "The licence under which each distribution is offered, expressed by a governed licence identifier, together with the rights holder, attribution requirement and any separate rights statement for metadata versus data.", "source_refs": [ "SRC-004", "SRC-005", "SRC-006", "SRC-013" ], "questions": [ { "id": "q-lic-identifier", "text": "Which licence applies to each distribution, identified by a governed licence identifier rather than free text?", "kind": "authority", "answer_data": [ "Licence identifier", "Licence list reference", "Licence URL" ] }, { "id": "q-lic-holder", "text": "Who holds the rights being licensed, and on what basis do they hold them?", "kind": "ownership", "answer_data": [ "Rights holder reference", "Basis of rights statement", "Effective from timestamp" ] }, { "id": "q-lic-attribution", "text": "What attribution text or citation must a re-user reproduce?", "kind": "requirement", "answer_data": [ "Attribution statement", "Required citation string" ] }, { "id": "q-lic-metadata-vs-data", "text": "Does the metadata carry a different licence from the data itself?", "kind": "constraint", "answer_data": [ "Metadata licence identifier", "Data licence identifier", "Divergence note" ] }, { "id": "q-lic-obligation", "text": "Does a legal obligation constrain the licence choice, such as an open licence mandate for designated datasets?", "kind": "requirement", "answer_data": [ "Legal instrument reference", "Mandated licence family", "Compliance status" ] } ], "data_elements": [ { "id": "de-licence-id", "name": "Licence identifier", "description": "Governed identifier of the licence, e.g. an SPDX identifier or an authority-list URI.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-005" ] }, { "id": "de-rights-holder", "name": "Rights holder", "description": "Reference to the agent holding the rights being licensed.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "de-attribution", "name": "Attribution statement", "description": "Text a re-user must reproduce to satisfy the licence.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [ { "id": "licence-binding", "name": "Licence binding", "description": "Record binding a distribution or the dataset to a licence identifier, rights holder and attribution text, with its own effective period so licence changes are auditable.", "media_or_form": [ "rights record", "metadata fragment" ], "serial": true, "identity_strategy": "Distribution or dataset identifier plus licence identifier plus a monotonic binding sequence number.", "source_refs": [ "SRC-004", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "use-restrictions-and-policy", "name": "Use restrictions and machine-readable policy", "description": "Permissions, prohibitions and duties that a licence alone does not express: third-party rights, contractual limits, purpose limitations, redistribution and text-and-data-mining conditions.", "source_refs": [ "SRC-015", "SRC-018", "SRC-004" ], "questions": [ { "id": "q-use-permissions", "text": "Which actions are permitted, prohibited or subject to a duty, and for which assignee parties?", "kind": "constraint", "answer_data": [ "Permitted action list", "Prohibited action list", "Duty list", "Party reference" ] }, { "id": "q-use-third-party", "text": "Do third-party rights encumber part of the content, and which part?", "kind": "ownership", "answer_data": [ "Encumbered component reference", "Right holder reference", "Restriction description" ] }, { "id": "q-use-purpose", "text": "Are there purpose limitations, such as research-only use or a prohibition on training models?", "kind": "privacy", "answer_data": [ "Purpose limitation code", "Scope of limitation", "Source of limitation" ] }, { "id": "q-use-machine-readable", "text": "Is the policy expressed in a machine-readable form an agent can evaluate before use?", "kind": "interoperability", "answer_data": [ "Policy document reference", "Policy language identifier", "Evaluation result" ] } ], "data_elements": [ { "id": "de-policy-ref", "name": "Policy reference", "description": "Reference to a machine-readable policy governing use of the asset.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-015" ] }, { "id": "de-prohibited-actions", "name": "Prohibited actions", "description": "Actions the policy forbids on the asset.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-015" ] }, { "id": "de-purpose-limitation", "name": "Purpose limitation", "description": "Declared limitation on the purposes for which the data may be used.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-018" ] } ], "artifacts": [ { "id": "use-policy", "name": "Use policy", "description": "Machine-readable policy set attaching permissions, prohibitions, duties and constraints to the dataset as an asset.", "media_or_form": [ "policy document", "rule set" ], "serial": true, "identity_strategy": "Policy identifier from the issuing authority plus asset reference; versioned rather than overwritten.", "source_refs": [ "SRC-015" ] } ], "inline_only_rationale": null } ] }, { "id": "accountability-and-protection", "name": "Accountability and protection", "description": "Named roles accountable for the asset and the controls applied to personal or otherwise sensitive content.", "source_refs": [ "SRC-004", "SRC-008", "SRC-018", "SRC-019" ], "findings": [ { "id": "holder-and-role-assignment", "name": "Holder, publisher and contact roles", "description": "The accountable data holder, the publisher that lists the dataset, creators or contributors, and the contact point through which questions and access requests are handled.", "source_refs": [ "SRC-004", "SRC-008", "SRC-006", "SRC-011" ], "questions": [ { "id": "q-role-holder", "text": "Which party is accountable for the content and service level of this dataset?", "kind": "ownership", "answer_data": [ "Holder reference", "Accountability statement", "Effective from timestamp" ] }, { "id": "q-role-distinction", "text": "How do the holder, publisher, creator and catalogue operator differ for this asset, and are any the same party?", "kind": "relationship", "answer_data": [ "Role to party mapping", "Same-party flags", "Role vocabulary reference" ] }, { "id": "q-role-contact", "text": "What contact point is published, and is it a durable role address rather than an individual?", "kind": "access", "answer_data": [ "Contact channel", "Role-address flag", "Response service level" ] }, { "id": "q-role-steward", "text": "Who is the operational steward responsible for updates, quality checks and metadata upkeep?", "kind": "authority", "answer_data": [ "Steward reference", "Delegated duties", "Escalation route" ] } ], "data_elements": [ { "id": "de-holder-ref", "name": "Holder reference", "description": "Reference to the accountable party for the asset.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-008" ] }, { "id": "de-publisher-ref", "name": "Publisher reference", "description": "Reference to the party making the dataset available.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-006" ] }, { "id": "de-contact-point", "name": "Contact point", "description": "Published contact channel for the dataset.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-008" ] } ], "artifacts": [ { "id": "role-assignment-record", "name": "Role assignment record", "description": "Edge record binding a party reference to a role on the dataset with an effective period, so accountability history survives party changes.", "media_or_form": [ "edge record", "governance record" ], "serial": true, "identity_strategy": "Dataset identifier plus role code plus party identifier plus assignment sequence.", "source_refs": [ "SRC-004", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "personal-and-sensitive-data-controls", "name": "Personal and sensitive data controls", "description": "Whether the dataset contains personal, confidential or otherwise sensitive content, what legal basis and protective measures apply, and what disclosure control has been performed.", "source_refs": [ "SRC-018", "SRC-014", "SRC-019", "SRC-004" ], "questions": [ { "id": "q-pd-presence", "text": "Does the dataset contain personal or otherwise sensitive data, and which components carry it?", "kind": "privacy", "answer_data": [ "Sensitivity classification", "Affected component references", "Assessment timestamp" ] }, { "id": "q-pd-basis", "text": "On what legal basis or consent is the sensitive content processed and published?", "kind": "authority", "answer_data": [ "Legal basis code", "Consent record reference", "Jurisdiction" ] }, { "id": "q-pd-controls", "text": "What de-identification or statistical disclosure control has been applied, and with what residual risk?", "kind": "process", "answer_data": [ "Control method", "Applied timestamp", "Residual risk assessment" ] }, { "id": "q-pd-linkage", "text": "Could this dataset be combined with others to re-identify individuals, and is that risk documented?", "kind": "security", "answer_data": [ "Linkage risk statement", "Known linkable datasets", "Mitigation measure" ] }, { "id": "q-pd-special-category", "text": "If special-category data is retained solely for bias detection, are the required safeguards documented?", "kind": "requirement", "answer_data": [ "Safeguard list", "Necessity justification", "Deletion commitment" ] } ], "data_elements": [ { "id": "de-sensitivity-class", "name": "Sensitivity classification", "description": "Coded classification of the sensitivity of the dataset content.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-018", "SRC-004" ] }, { "id": "de-deident-method", "name": "De-identification method", "description": "Method applied to reduce identifiability, with the time it was applied.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-018", "SRC-014" ] }, { "id": "de-legal-basis", "name": "Legal basis", "description": "Cited basis on which sensitive content is processed and released.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] } ], "artifacts": [ { "id": "sensitivity-assessment", "name": "Sensitivity assessment", "description": "Dated assessment recording sensitivity classification, applied controls, residual risk and reviewer, retained even after the dataset is withdrawn.", "media_or_form": [ "assessment record", "governance document" ], "serial": true, "identity_strategy": "Dataset version identifier plus assessment identifier; supersession recorded by reference to the prior assessment.", "source_refs": [ "SRC-018", "SRC-014" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "lifecycle-and-provenance", "name": "Lifecycle and provenance", "description": "Where the dataset came from, how it changes over time, and how it is retired, preserved or deleted.", "rationale": "PROV-O supplies the derivation and attribution model, DCAT 3 the version chain, OAI-PMH the deleted-record semantics for federated consumers, DataCite the tombstone practice, and FAIR A2 the requirement that metadata outlive the data.", "source_refs": [ "SRC-003", "SRC-001", "SRC-016", "SRC-017", "SRC-010" ], "layers": [ { "id": "provenance", "name": "Provenance", "description": "Origin, derivation and production method at asset level.", "source_refs": [ "SRC-003", "SRC-011", "SRC-019", "SRC-018" ], "findings": [ { "id": "source-and-derivation", "name": "Source and derivation", "description": "The upstream datasets, systems or collection activities this dataset was derived from, the agent responsible, and the generation event that produced this version.", "source_refs": [ "SRC-003", "SRC-011", "SRC-006", "SRC-010" ], "questions": [ { "id": "q-prov-sources", "text": "Which upstream datasets or sources was this dataset derived from, and at which of their versions?", "kind": "provenance", "answer_data": [ "Source dataset references", "Source version identifiers", "Derivation type" ] }, { "id": "q-prov-activity", "text": "Which activity generated this version, when did it start and end, and which agent was responsible?", "kind": "event", "answer_data": [ "Generating activity reference", "Activity start timestamp", "Activity end timestamp", "Responsible agent reference" ] }, { "id": "q-prov-attribution", "text": "To whom is the dataset attributed, as distinct from who published it?", "kind": "ownership", "answer_data": [ "Attributed agent reference", "Attribution role", "Publisher reference" ] }, { "id": "q-prov-depth", "text": "How far back does asset-level lineage go here before the question is delegated to the lineage model?", "kind": "composition", "answer_data": [ "Lineage depth policy", "Delegation boundary reference", "Lineage graph reference" ] } ], "data_elements": [ { "id": "de-derived-from", "name": "Derived-from reference", "description": "Reference to an upstream dataset or entity this dataset was derived from.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "de-generated-by", "name": "Generated-by activity reference", "description": "Reference to the activity that produced this dataset version.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "de-generated-at", "name": "Generated-at time", "description": "Instant at which this version came into existence, distinct from when it was catalogued.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] } ], "artifacts": [ { "id": "provenance-record", "name": "Provenance record", "description": "Asset-level provenance bundle linking this dataset version to sources, generating activity and responsible agents, exportable as a PROV graph.", "media_or_form": [ "provenance graph", "provenance record" ], "serial": true, "identity_strategy": "Dataset version identifier plus provenance bundle identifier assigned by the recording system.", "source_refs": [ "SRC-003", "SRC-010" ] } ], "inline_only_rationale": null }, { "id": "production-method", "name": "Production method and processing", "description": "How the data was collected or computed: collection mode, instruments, sampling procedure, processing and cleaning steps, and the assumptions those steps embed.", "source_refs": [ "SRC-019", "SRC-018", "SRC-005", "SRC-014" ], "questions": [ { "id": "q-method-collection", "text": "By what mode and instrument was the data collected or generated?", "kind": "process", "answer_data": [ "Collection mode code", "Instrument reference", "Collection period" ] }, { "id": "q-method-preparation", "text": "Which preparation operations - cleaning, joining, labelling, aggregation - were applied, and in what order?", "kind": "process", "answer_data": [ "Operation sequence", "Operation parameters", "Executing system reference" ] }, { "id": "q-method-assumptions", "text": "What assumptions or design choices does the production method embed that a re-user must know?", "kind": "evidence", "answer_data": [ "Assumption statements", "Design choice rationale", "Documented-by reference" ] }, { "id": "q-method-reproducible", "text": "Can the production be re-executed, and what would be needed to reproduce this exact output?", "kind": "validation", "answer_data": [ "Reproducibility status", "Required inputs list", "Code or workflow reference" ] } ], "data_elements": [ { "id": "de-collection-mode", "name": "Collection mode", "description": "Coded mode by which the underlying observations were obtained.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-019" ] }, { "id": "de-processing-steps", "name": "Processing steps", "description": "Ordered summary of preparation operations applied to produce this version.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-005", "SRC-018" ] }, { "id": "de-method-assumptions", "name": "Method assumptions", "description": "Stated assumptions embedded by the production method.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-018" ] } ], "artifacts": [ { "id": "method-documentation", "name": "Method documentation", "description": "Methodology description covering collection, sampling and processing, published alongside the dataset as a codebook or datasheet section.", "media_or_form": [ "methodology document", "codebook section" ], "serial": false, "identity_strategy": "Dataset version identifier plus document identifier; superseded documents retained by reference.", "source_refs": [ "SRC-019", "SRC-018" ] } ], "inline_only_rationale": null } ] }, { "id": "versioning-and-release", "name": "Versioning and release", "description": "Version identity, change records and the cadence and status of releases.", "source_refs": [ "SRC-001", "SRC-006", "SRC-004", "SRC-013" ], "findings": [ { "id": "version-identity-and-change", "name": "Version identity and change record", "description": "How versions are identified and chained, what changed between them, whether a change is breaking, and which version is current.", "source_refs": [ "SRC-001", "SRC-006", "SRC-007", "SRC-009" ], "questions": [ { "id": "q-ver-scheme", "text": "What versioning scheme is used, and does a new version get a new persistent identifier?", "kind": "identity", "answer_data": [ "Version scheme code", "Version string", "New-identifier policy" ] }, { "id": "q-ver-chain", "text": "Which version precedes this one, which supersedes it, and which is currently authoritative?", "kind": "relationship", "answer_data": [ "Previous version reference", "Next version reference", "Current version reference" ] }, { "id": "q-ver-changes", "text": "What changed relative to the previous version, and is the change breaking for consumers?", "kind": "lifecycle", "answer_data": [ "Change summary", "Breaking change flag", "Affected component list" ] }, { "id": "q-ver-trigger", "text": "Which event triggers a new version rather than an in-place correction?", "kind": "decision", "answer_data": [ "Versioning rule", "Trigger event type", "Rule owner" ] } ], "data_elements": [ { "id": "de-version-string", "name": "Version string", "description": "Version label of this dataset edition.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-006" ] }, { "id": "de-previous-version", "name": "Previous version reference", "description": "Reference to the immediately preceding version.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-version-notes", "name": "Version notes", "description": "Description of the changes introduced by this version.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "de-breaking-flag", "name": "Breaking change flag", "description": "Whether the change requires consumer action.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "change-log-entry", "name": "Change log entry", "description": "Per-version entry recording what changed, when it was released and whether it breaks consumers; the change log is the append-only series of these entries.", "media_or_form": [ "change log entry", "release note" ], "serial": true, "identity_strategy": "Dataset identifier plus version identifier plus monotonic entry sequence; dates are attributes, never the key.", "source_refs": [ "SRC-001", "SRC-007" ] } ], "inline_only_rationale": null }, { "id": "release-cadence-and-status", "name": "Release cadence and status", "description": "The declared update frequency, planned release calendar, punctuality against that plan, and the maturity or availability status of the asset.", "source_refs": [ "SRC-004", "SRC-014", "SRC-013", "SRC-001" ], "questions": [ { "id": "q-cadence-frequency", "text": "What update frequency is declared, using which controlled vocabulary?", "kind": "temporal", "answer_data": [ "Frequency code", "Vocabulary reference", "Declared from timestamp" ] }, { "id": "q-cadence-punctuality", "text": "How does actual release timing compare with the announced calendar?", "kind": "measurement", "answer_data": [ "Planned release timestamps", "Actual release timestamps", "Punctuality delta" ] }, { "id": "q-cadence-status", "text": "What is the current status of the asset - draft, in development, stable, deprecated - and who sets it?", "kind": "state", "answer_data": [ "Status code", "Status set timestamp", "Authorising role" ] }, { "id": "q-cadence-realtime", "text": "Is any part served in real time or near real time, and what latency is guaranteed?", "kind": "requirement", "answer_data": [ "Real-time flag", "Latency target", "Obligation reference" ] } ], "data_elements": [ { "id": "de-accrual-frequency", "name": "Accrual frequency", "description": "Coded frequency at which the dataset is updated.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "de-status-code", "name": "Status code", "description": "Maturity or availability status of the dataset or distribution.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "de-release-calendar-entry", "name": "Planned release instant", "description": "Announced instant of a future release.", "value_kind": "timestamp", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014" ] } ], "artifacts": [ { "id": "release-calendar", "name": "Release calendar", "description": "Published schedule of planned releases with announced and actual instants, enabling punctuality measurement.", "media_or_form": [ "schedule record", "calendar publication" ], "serial": true, "identity_strategy": "Dataset identifier plus calendar entry identifier; announced instant stored as an attribute of the entry.", "source_refs": [ "SRC-014", "SRC-004" ] } ], "inline_only_rationale": null } ] }, { "id": "retirement-and-retention", "name": "Retirement and retention", "description": "Deprecation, withdrawal, tombstoning, retention scheduling and deletion.", "source_refs": [ "SRC-017", "SRC-016", "SRC-010", "SRC-018" ], "findings": [ { "id": "deprecation-and-withdrawal", "name": "Deprecation and withdrawal", "description": "How a dataset is marked superseded or removed from service, what replaces it, what consumers are told, and what remains resolvable after removal.", "source_refs": [ "SRC-017", "SRC-016", "SRC-010", "SRC-001" ], "questions": [ { "id": "q-dep-state", "text": "Is the dataset deprecated or withdrawn, when did that take effect and on whose decision?", "kind": "lifecycle", "answer_data": [ "Retirement state code", "Effective timestamp", "Deciding authority" ] }, { "id": "q-dep-successor", "text": "What supersedes the withdrawn dataset, and how are consumers redirected?", "kind": "relationship", "answer_data": [ "Successor reference", "Redirect target", "Migration guidance" ] }, { "id": "q-dep-tombstone", "text": "What does the tombstone record state, and does it keep the citation and identifier resolvable?", "kind": "evidence", "answer_data": [ "Tombstone URL", "Unavailability statement", "Retained citation string" ] }, { "id": "q-dep-harvesters", "text": "How is removal signalled to downstream catalogues that previously harvested this record?", "kind": "interoperability", "answer_data": [ "Deleted-record support level", "Deletion datestamp", "Notified consumers" ] } ], "data_elements": [ { "id": "de-retirement-state", "name": "Retirement state", "description": "Coded retirement state such as active, deprecated or withdrawn.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-017" ] }, { "id": "de-successor-ref", "name": "Successor reference", "description": "Reference to the dataset that replaces this one.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "de-tombstone-url", "name": "Tombstone URL", "description": "Location of the page stating why the asset is unavailable.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-017" ] } ], "artifacts": [ { "id": "tombstone-record", "name": "Tombstone record", "description": "Persisting record containing the full citation, the identifier in human- and machine-readable form and a statement of unavailability; it survives deletion of the payload.", "media_or_form": [ "tombstone page", "persistent metadata record" ], "serial": false, "identity_strategy": "Persistent identifier of the withdrawn dataset, retained and never reassigned.", "source_refs": [ "SRC-017", "SRC-010" ] } ], "inline_only_rationale": null }, { "id": "retention-and-deletion", "name": "Retention, preservation and deletion", "description": "The retention rule governing how long the dataset and its distributions are kept, the preservation commitment, and how deletion is executed and evidenced without destroying the descriptive record.", "source_refs": [ "SRC-010", "SRC-017", "SRC-018", "SRC-019" ], "questions": [ { "id": "q-ret-rule", "text": "Which retention rule applies, what is the retention period and what triggers its start?", "kind": "retention", "answer_data": [ "Retention rule reference", "Retention period", "Trigger event type" ] }, { "id": "q-ret-preservation", "text": "What preservation commitment has the holder made, and for which distributions?", "kind": "requirement", "answer_data": [ "Preservation commitment statement", "Covered distributions", "Committing party" ] }, { "id": "q-ret-deletion", "text": "When data is deleted, what is deleted, what metadata is retained, and where is the deletion evidenced?", "kind": "process", "answer_data": [ "Deletion scope", "Retained metadata set", "Deletion evidence reference", "Deletion timestamp" ] }, { "id": "q-ret-conflict", "text": "How are conflicts resolved between an erasure obligation and an archival or legal-hold obligation?", "kind": "exception", "answer_data": [ "Conflicting obligations", "Resolution decision", "Approving authority" ] } ], "data_elements": [ { "id": "de-retention-rule", "name": "Retention rule reference", "description": "Reference to the governing retention schedule or policy.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] }, { "id": "de-retention-until", "name": "Retain-until instant", "description": "Computed instant until which the asset must be kept.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012", "SRC-018" ] }, { "id": "de-legal-hold", "name": "Legal hold flag", "description": "Whether deletion is suspended by a hold.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] } ], "artifacts": [ { "id": "retention-schedule-entry", "name": "Retention schedule entry", "description": "Binding of the dataset to a retention rule with computed retain-until instant, hold status and executed-deletion evidence.", "media_or_form": [ "schedule record", "disposal evidence record" ], "serial": true, "identity_strategy": "Dataset identifier plus retention rule identifier plus entry sequence.", "source_refs": [ "SRC-018", "SRC-010" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "quality-and-fitness", "name": "Quality and fitness", "description": "Measured quality attached to the asset and the judgement of whether it is fit for a stated purpose, including AI training use.", "rationale": "DQV attaches measurements, annotations and certificates to DCAT datasets while keeping metric definitions separate; the ESS quality framework supplies an authoritative dimension vocabulary; AI Act Article 10 and the Croissant RAI extension make documented limitations a requirement for training data rather than a courtesy.", "source_refs": [ "SRC-002", "SRC-014", "SRC-018", "SRC-005" ], "layers": [ { "id": "quality-measurement", "name": "Quality measurement", "description": "Measured quality results attached to the dataset or its distributions.", "source_refs": [ "SRC-002", "SRC-014" ], "findings": [ { "id": "quality-measurements", "name": "Quality measurements", "description": "Individual measurements of a quality metric computed on this dataset or distribution, each with its value, metric reference, dimension, method and measurement time, plus certificates or user feedback where they exist.", "source_refs": [ "SRC-002", "SRC-014", "SRC-003" ], "questions": [ { "id": "q-qual-metric", "text": "Which metric was computed, in which quality dimension, and what value resulted?", "kind": "measurement", "answer_data": [ "Metric reference", "Dimension reference", "Measured value", "Expected data type" ] }, { "id": "q-qual-target", "text": "What exactly was measured - the whole dataset, one distribution, or a subset?", "kind": "composition", "answer_data": [ "Computed-on reference", "Subset definition", "Sample size" ] }, { "id": "q-qual-when", "text": "When was the measurement computed, and against which dataset version?", "kind": "temporal", "answer_data": [ "Measured timestamp", "Dataset version reference", "Method reference" ] }, { "id": "q-qual-threshold", "text": "What threshold makes the result acceptable, and who set it?", "kind": "constraint", "answer_data": [ "Threshold value", "Pass or fail outcome", "Threshold owner" ] }, { "id": "q-qual-feedback", "text": "Do certificates or user feedback annotations exist alongside computed measurements?", "kind": "evidence", "answer_data": [ "Certificate references", "Feedback annotation references", "Issuing party" ] } ], "data_elements": [ { "id": "de-metric-ref", "name": "Metric reference", "description": "Reference to the metric definition governed by the quality model.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "de-measured-value", "name": "Measured value", "description": "Result of computing the metric on the target.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "de-measured-at", "name": "Measured-at timestamp", "description": "Instant at which the measurement was computed.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-012" ] }, { "id": "de-quality-dimension", "name": "Quality dimension", "description": "Dimension the metric belongs to, e.g. accuracy, timeliness, coherence.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014", "SRC-002" ] } ], "artifacts": [ { "id": "quality-measurement-record", "name": "Quality measurement record", "description": "Immutable record of one metric computation against a stated target and version, retained as an evidence series.", "media_or_form": [ "measurement record", "observation record" ], "serial": true, "identity_strategy": "Target reference plus metric reference plus measurement sequence assigned by the measuring system; the measurement time is an attribute.", "source_refs": [ "SRC-002", "SRC-003" ] } ], "inline_only_rationale": null } ] }, { "id": "fitness-and-limitations", "name": "Fitness and limitations", "description": "Judgements about suitability for stated purposes and documented limitations, including AI-specific readiness.", "source_refs": [ "SRC-018", "SRC-005", "SRC-014", "SRC-010" ], "findings": [ { "id": "fitness-for-use", "name": "Fitness for use and known limitations", "description": "Statements of intended and discouraged uses, known caveats, coverage gaps, comparability breaks, and who made the fitness judgement for which purpose.", "source_refs": [ "SRC-014", "SRC-018", "SRC-005", "SRC-019" ], "questions": [ { "id": "q-fit-purpose", "text": "For which stated purpose has fitness been assessed, and what was the verdict?", "kind": "decision", "answer_data": [ "Purpose statement", "Fitness verdict", "Assessing party", "Assessment timestamp" ] }, { "id": "q-fit-limitations", "text": "What known limitations, caveats or coverage gaps must a re-user account for?", "kind": "quality", "answer_data": [ "Limitation statements", "Affected components", "Severity" ] }, { "id": "q-fit-discouraged", "text": "Which uses are explicitly discouraged or unsupported by the holder?", "kind": "constraint", "answer_data": [ "Discouraged use list", "Reason", "Source of statement" ] }, { "id": "q-fit-comparability", "text": "Are there breaks in series or definitional changes that prevent comparison across time or units?", "kind": "temporal", "answer_data": [ "Break points", "Definitional change description", "Comparability note" ] } ], "data_elements": [ { "id": "de-intended-use", "name": "Intended use statement", "description": "Purpose for which the holder considers the dataset suitable.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-018", "SRC-005" ] }, { "id": "de-limitation", "name": "Limitation statement", "description": "Documented caveat, gap or defect affecting reuse.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014", "SRC-018" ] }, { "id": "de-fitness-verdict", "name": "Fitness verdict", "description": "Coded outcome of a fitness assessment for a stated purpose.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014" ] } ], "artifacts": [ { "id": "fitness-assessment", "name": "Fitness assessment", "description": "Dated assessment binding a purpose to a verdict with supporting limitations and evidence references; commonly published as a datasheet or quality report section.", "media_or_form": [ "assessment record", "quality report", "datasheet section" ], "serial": true, "identity_strategy": "Dataset version identifier plus purpose identifier plus assessment sequence.", "source_refs": [ "SRC-014", "SRC-018" ] } ], "inline_only_rationale": null }, { "id": "ml-readiness", "name": "ML readiness and training use", "description": "The durable documentation an ML consumer needs: record structure and field typing, label provenance and annotation process, representativeness and bias examination, and any restriction on using the dataset to train models.", "source_refs": [ "SRC-005", "SRC-018", "SRC-015" ], "questions": [ { "id": "q-ml-structure", "text": "Is the dataset described in a machine-readable ML format that resolves files to record sets and typed fields?", "kind": "interoperability", "answer_data": [ "ML description document reference", "Format version", "Record set inventory" ] }, { "id": "q-ml-labels", "text": "How were labels or annotations produced, by whom, and with what agreement or review?", "kind": "provenance", "answer_data": [ "Annotation process description", "Annotator population", "Agreement measure" ] }, { "id": "q-ml-representativeness", "text": "What is documented about representativeness relative to the target population and about examined biases?", "kind": "evidence", "answer_data": [ "Representativeness statement", "Bias examination result", "Mitigation measures" ] }, { "id": "q-ml-permission", "text": "Is training a model on this dataset permitted, restricted or prohibited, and by which instrument?", "kind": "authority", "answer_data": [ "Training permission code", "Instrument reference", "Scope of permission" ] }, { "id": "q-ml-splits", "text": "Are canonical splits or benchmark subsets defined at asset level, or left to the consuming training run?", "kind": "composition", "answer_data": [ "Split definitions", "Split ownership", "Delegation note" ] } ], "data_elements": [ { "id": "de-ml-description-ref", "name": "ML description reference", "description": "Reference to a machine-readable ML dataset description document.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005" ] }, { "id": "de-annotation-process", "name": "Annotation process description", "description": "How labels were produced and reviewed.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-018" ] }, { "id": "de-bias-examination", "name": "Bias examination result", "description": "Outcome of examining the data for biases affecting people or outcomes.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-018" ] }, { "id": "de-training-permission", "name": "Training permission", "description": "Whether model training on the dataset is permitted.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015", "SRC-018" ] } ], "artifacts": [ { "id": "ml-dataset-description", "name": "ML dataset description", "description": "Machine-readable description resolving distributions to record sets, fields and types, with responsible-AI statements attached; loadable by ML frameworks without bespoke code.", "media_or_form": [ "structured ML description", "JSON-LD document" ], "serial": false, "identity_strategy": "Dataset version identifier plus description document identifier and declared conformsTo version.", "source_refs": [ "SRC-005" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "interoperability-and-exchange", "name": "Interoperability and exchange", "description": "How the dataset entry conforms to external profiles, is validated, is exchanged with other catalogues, and is cited and linked.", "rationale": "Real catalogues must satisfy jurisdictional profiles, prove conformance by validation, exchange records by harvest, and support citation with typed relations; each of these is specified by a distinct authority and none can be assumed from the others.", "source_refs": [ "SRC-004", "SRC-008", "SRC-016", "SRC-006" ], "layers": [ { "id": "profiles-and-validation", "name": "Profiles and validation", "description": "Declared application profiles and the validation evidence for them.", "source_refs": [ "SRC-004", "SRC-008", "SRC-011" ], "findings": [ { "id": "profile-conformance-and-validation", "name": "Application profile conformance and validation", "description": "Which application profiles the catalogue entry claims to satisfy, the obligations those profiles impose, the validation performed against them, and the mapping losses when projecting into each profile.", "source_refs": [ "SRC-004", "SRC-008", "SRC-011", "SRC-006" ], "questions": [ { "id": "q-prof-declared", "text": "Which application profiles does this entry declare conformance to, at which versions?", "kind": "interoperability", "answer_data": [ "Profile identifier list", "Profile version", "Declaration timestamp" ] }, { "id": "q-prof-obligations", "text": "Which properties are mandatory under each declared profile, and are all of them populated?", "kind": "requirement", "answer_data": [ "Mandatory property list", "Missing property list", "Compliance percentage" ] }, { "id": "q-prof-validation", "text": "What validation was run, against which rule set, and what were the violations?", "kind": "validation", "answer_data": [ "Validator identifier", "Rule set reference", "Violation list", "Validated timestamp" ] }, { "id": "q-prof-loss", "text": "What information is lost or coerced when projecting this entry into a given profile?", "kind": "constraint", "answer_data": [ "Lossy field list", "Coercion rule", "Reversibility flag" ] }, { "id": "q-prof-conflict", "text": "Where two declared profiles disagree on a property's obligation or vocabulary, which prevails?", "kind": "exception", "answer_data": [ "Conflicting profiles", "Conflicting property", "Precedence decision" ] } ], "data_elements": [ { "id": "de-profile-ref", "name": "Profile reference", "description": "Identifier and version of a declared application profile.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-004", "SRC-008" ] }, { "id": "de-validation-outcome", "name": "Validation outcome", "description": "Pass, warn or fail result of validating the entry against a profile rule set.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "de-violation-count", "name": "Violation count", "description": "Number of rule violations found in the latest validation run.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] } ], "artifacts": [ { "id": "validation-report", "name": "Validation report", "description": "Machine-readable report of a validation run against a named profile rule set, with per-rule outcomes and timestamps; retained as evidence for conformance claims.", "media_or_form": [ "validation report", "structured report document" ], "serial": true, "identity_strategy": "Entry identifier plus rule set identifier plus run sequence assigned by the validator.", "source_refs": [ "SRC-004", "SRC-008" ] } ], "inline_only_rationale": null } ] }, { "id": "exchange-and-linkage", "name": "Exchange and linkage", "description": "Harvesting between catalogues and typed links to other resources.", "source_refs": [ "SRC-016", "SRC-006", "SRC-010" ], "findings": [ { "id": "harvesting-and-federation", "name": "Harvesting and federation", "description": "How the entry is exchanged with other catalogues: source of truth, harvest datestamps and increments, deleted-record signalling, duplicate detection and the rules for locally overriding harvested values.", "source_refs": [ "SRC-016", "SRC-001", "SRC-004" ], "questions": [ { "id": "q-harv-origin", "text": "Was this entry authored locally or harvested, and from which source catalogue?", "kind": "provenance", "answer_data": [ "Origin code", "Source catalogue reference", "Source record identifier" ] }, { "id": "q-harv-increment", "text": "Which datestamp drives incremental harvesting, and at what granularity is it exposed?", "kind": "temporal", "answer_data": [ "Harvest datestamp", "Granularity", "Last successful harvest timestamp" ] }, { "id": "q-harv-deletions", "text": "What deleted-record support does the source declare, and how are removals propagated?", "kind": "lifecycle", "answer_data": [ "Deleted-record support level", "Deletion signal", "Propagation lag" ] }, { "id": "q-harv-override", "text": "May local edits override harvested values, and how is the divergence recorded and reconciled?", "kind": "decision", "answer_data": [ "Override policy", "Overridden field list", "Reconciliation rule" ] }, { "id": "q-harv-duplicates", "text": "How are duplicate entries for the same dataset across federated catalogues detected and merged?", "kind": "identity", "answer_data": [ "Matching keys", "Duplicate-of reference", "Merge decision" ] } ], "data_elements": [ { "id": "de-origin-code", "name": "Origin code", "description": "Whether the entry is locally authored, harvested or mirrored.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-016", "SRC-001" ] }, { "id": "de-source-record-id", "name": "Source record identifier", "description": "Identifier of the record in the source catalogue.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "de-harvest-datestamp", "name": "Harvest datestamp", "description": "Datestamp used for selective harvesting of this record.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016", "SRC-012" ] } ], "artifacts": [ { "id": "harvest-log-entry", "name": "Harvest log entry", "description": "Per-run record of what was fetched, changed, deleted or rejected during a harvest, supporting replay and divergence analysis.", "media_or_form": [ "log entry", "exchange record" ], "serial": true, "identity_strategy": "Source catalogue identifier plus harvest run sequence; run start time recorded as an attribute.", "source_refs": [ "SRC-016" ] } ], "inline_only_rationale": null }, { "id": "citation-and-related-identifiers", "name": "Citation and related identifiers", "description": "The citation form of the dataset and its typed relations to publications, software, source datasets, successors and other resources.", "source_refs": [ "SRC-006", "SRC-010", "SRC-011" ], "questions": [ { "id": "q-cite-form", "text": "What is the recommended citation for this dataset, and which version does it pin?", "kind": "requirement", "answer_data": [ "Citation string", "Pinned version reference", "Citation policy" ] }, { "id": "q-cite-relations", "text": "Which typed relations to other resources are asserted, using which relation-type vocabulary?", "kind": "relationship", "answer_data": [ "Related identifier list", "Relation type per link", "Vocabulary reference" ] }, { "id": "q-cite-qualified", "text": "Are related references qualified enough for a machine to know the direction and nature of each link?", "kind": "interoperability", "answer_data": [ "Qualification statement", "Direction", "Target resource type" ] }, { "id": "q-cite-credit", "text": "Who must be credited in the citation, and how are contributor roles distinguished from creators?", "kind": "ownership", "answer_data": [ "Creator list", "Contributor list with roles", "Credit policy" ] } ], "data_elements": [ { "id": "de-citation-string", "name": "Citation string", "description": "Recommended human-readable citation for the dataset.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "de-related-identifier", "name": "Related identifier", "description": "Identifier of a related resource with its relation type.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006", "SRC-010" ] }, { "id": "de-creator-list", "name": "Creator list", "description": "Ordered creators credited for the dataset.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [ { "id": "citation-block", "name": "Citation block", "description": "Structured citation and typed relation set exportable to a citation format or embedded in the metadata record; retained on tombstones after withdrawal.", "media_or_form": [ "citation record", "structured metadata fragment" ], "serial": false, "identity_strategy": "Dataset version identifier plus persistent identifier; relation entries keyed by related identifier plus relation type.", "source_refs": [ "SRC-006", "SRC-017" ] } ], "inline_only_rationale": null } ] } ] } ] }, "functions": [ { "id": "register-dataset", "name": "Register dataset", "description": "Create the dataset entry and its catalogue record, assigning the master-system identifier and, where applicable, requesting a persistent identifier.", "inputs": [ "Designation and description", "Holder reference", "Scope and coverage statement", "Target profile reference" ], "outputs": [ "Dataset entry with master identifier", "Catalogue record in draft state", "Persistent identifier request" ], "preconditions": [ "Holder is resolvable in the organization model", "Target application profile is declared", "No existing entry matches the identity keys" ], "effects": [ "Dataset identifier is allocated and reserved permanently", "Catalogue record created with RFC 3339 creation timestamp" ], "source_refs": [ "SRC-001", "SRC-006", "SRC-010" ] }, { "id": "publish-distribution", "name": "Publish distribution", "description": "Attach an accessible form of the dataset with format, size, access URLs and checksum, and expose it through the declared channels.", "inputs": [ "Dataset version reference", "Media type and format", "Access and download URLs", "Checksum algorithm and value" ], "outputs": [ "Distribution record", "Updated dataset modified timestamp" ], "preconditions": [ "Dataset entry exists and is not withdrawn", "Licence binding exists for the distribution", "Access conditions are declared" ], "effects": [ "Distribution becomes discoverable", "Fixity baseline is recorded for later verification" ], "source_refs": [ "SRC-001", "SRC-004", "SRC-007" ] }, { "id": "verify-fixity", "name": "Verify fixity", "description": "Recompute the checksum of a distribution and compare it with the published value.", "inputs": [ "Distribution reference", "Published checksum" ], "outputs": [ "Fixity verification result", "Verification timestamp" ], "preconditions": [ "Distribution is retrievable", "A checksum algorithm and value are published" ], "effects": [ "Mismatch raises an integrity incident and marks the distribution suspect" ], "source_refs": [ "SRC-001", "SRC-005" ] }, { "id": "issue-version", "name": "Issue version", "description": "Create a new dataset version, chain it to its predecessor and record what changed and whether the change is breaking.", "inputs": [ "Predecessor version reference", "Change summary", "Breaking change determination" ], "outputs": [ "New version entry", "Change log entry", "Updated current-version pointer" ], "preconditions": [ "Versioning rule determines that a new version rather than a correction is required", "Predecessor version is identified" ], "effects": [ "Predecessor is no longer current but stays resolvable", "Consumers of a pinned version are unaffected" ], "source_refs": [ "SRC-001", "SRC-006", "SRC-007" ] }, { "id": "record-quality-measurement", "name": "Record quality measurement", "description": "Attach a computed metric result to a stated target and version with its dimension, method and measurement time.", "inputs": [ "Target reference", "Metric reference", "Measured value", "Method reference" ], "outputs": [ "Quality measurement record", "Threshold pass or fail outcome" ], "preconditions": [ "Metric is defined in the governing quality model", "Target version is identified" ], "effects": [ "Measurement series is appended, never overwritten", "Failing thresholds can trigger a fitness re-assessment" ], "source_refs": [ "SRC-002", "SRC-014" ] }, { "id": "validate-against-profile", "name": "Validate against profile", "description": "Run the rule set of a declared application profile against the catalogue entry and record the violations.", "inputs": [ "Entry reference", "Profile identifier and version", "Rule set reference" ], "outputs": [ "Validation report", "Compliance status" ], "preconditions": [ "Profile version is resolvable", "Entry is serialisable into the profile's model" ], "effects": [ "Conformance claims become evidence-backed", "Failing entries can be blocked from publication or harvest" ], "source_refs": [ "SRC-004", "SRC-008" ] }, { "id": "evaluate-access-request", "name": "Evaluate access request", "description": "Decide a request for a restricted dataset against its access conditions and machine-readable policy.", "inputs": [ "Requester identity and purpose", "Dataset reference", "Access conditions and policy" ], "outputs": [ "Access decision", "Grant record or refusal reason" ], "preconditions": [ "Access level is declared", "Approver role is assigned", "Policy is resolvable" ], "effects": [ "Grant is time-bounded and auditable", "Refusals record the reason and appeal route" ], "source_refs": [ "SRC-004", "SRC-015", "SRC-008" ] }, { "id": "harvest-entry", "name": "Harvest entry", "description": "Fetch or refresh a catalogue entry from a source catalogue using selective harvesting and apply local override rules.", "inputs": [ "Source catalogue reference", "From and until datestamps", "Metadata format prefix" ], "outputs": [ "Created or updated entries", "Deleted-record signals", "Harvest log entry" ], "preconditions": [ "Source declares its deleted-record support level", "Local override policy is defined" ], "effects": [ "Local entries diverge only where policy allows", "Deletions propagate to downstream consumers" ], "source_refs": [ "SRC-016", "SRC-001" ] }, { "id": "withdraw-dataset", "name": "Withdraw dataset", "description": "Remove a dataset from service, publish a tombstone and notify downstream catalogues while keeping identifiers resolvable.", "inputs": [ "Dataset reference", "Withdrawal reason", "Successor reference where one exists" ], "outputs": [ "Retirement state change", "Tombstone record", "Deletion signal to harvesters" ], "preconditions": [ "Withdrawal is authorised by the holder", "Retention obligations have been checked" ], "effects": [ "Persistent identifier resolves to a tombstone rather than failing", "Descriptive metadata survives the payload" ], "source_refs": [ "SRC-017", "SRC-016", "SRC-010" ] }, { "id": "execute-retention-action", "name": "Execute retention action", "description": "Apply the retention rule at its trigger point: extend, archive or delete the payload, and record the evidence.", "inputs": [ "Retention schedule entry", "Legal hold status", "Approval reference" ], "outputs": [ "Retention action record", "Deletion or archival evidence" ], "preconditions": [ "Retain-until instant has passed", "No legal hold is in force", "Approver has authorised the action" ], "effects": [ "Payload is archived or destroyed as ruled", "Tombstone and citation metadata are retained" ], "source_refs": [ "SRC-018", "SRC-010", "SRC-017" ] }, { "id": "project-entry", "name": "Project entry to a target format", "description": "Render the neutral dataset entry into a target serialisation or profile, recording any lossy mapping.", "inputs": [ "Entry reference", "Target profile or vocabulary", "Projection rules" ], "outputs": [ "Projected representation", "Loss report" ], "preconditions": [ "Target profile is declared and versioned", "Canonicalisation rules are applied before projection" ], "effects": [ "Projection is reproducible and comparable across runs", "Lost fields are disclosed rather than silently dropped" ], "source_refs": [ "SRC-004", "SRC-011", "SRC-005" ] }, { "id": "bind-data-service", "name": "Bind data service", "description": "Attach a data service endpoint that serves the dataset and optionally backs a distribution.", "inputs": [ "dataset IRI", "endpoint URL", "API standard", "optional endpoint description" ], "outputs": [ "data service record", "optional distribution accessService link" ], "preconditions": [ "endpoint URL is an IRI", "service versus payload conformance targets are distinct" ], "effects": [ "service listed", "servesDataset and accessService links updated" ], "source_refs": [ "SRC-020", "SRC-004" ] }, { "id": "attach-to-series", "name": "Attach dataset to series", "description": "Add a separately published dataset to an explicit DatasetSeries and update first, previous and last navigation.", "inputs": [ "series IRI", "member dataset IRI", "series dimension" ], "outputs": [ "updated series membership" ], "preconditions": [ "series is typed DatasetSeries", "member is not being faked as an extra distribution of another member" ], "effects": [ "membership and navigation properties updated" ], "source_refs": [ "SRC-020", "SRC-004" ] }, { "id": "record-lineage-pointer", "name": "Record generation or derivation", "description": "Point the dataset at generating activities and source entities, composing WM-DAT-006 for the full graph.", "inputs": [ "generated dataset", "source entities", "activity", "agents" ], "outputs": [ "lineage pointer" ], "preconditions": [ "activity times use RFC 3339 with seconds and offset" ], "effects": [ "wasGeneratedBy and wasDerivedFrom asserted", "lineage sibling updated" ], "source_refs": [ "SRC-023", "SRC-020" ] }, { "id": "cite-dataset", "name": "Cite dataset", "description": "Build a citation from mandatory DataCite-style properties and the chosen persistent identifier.", "inputs": [ "creator", "title", "publisher", "publication year", "identifier" ], "outputs": [ "citation string", "optional relatedIdentifier links" ], "preconditions": [ "mandatory citation properties present or replaced with DataCite unknown codes" ], "effects": [ "isReferencedBy relations may be added on the dataset" ], "source_refs": [ "SRC-022" ] } ], "composition": [ { "target": "WM-DAT-004 (schema / data contract)", "relation": "REFERENCE", "purpose": "The dataset declares conformance to a schema or data contract; the schema's field semantics, datatypes and enforcement stay in WM-DAT-004 so there is one master for the contract.", "required": false, "source_refs": [ "SRC-001", "SRC-007", "SRC-005" ] }, { "target": "WM-DAT-006 (lineage)", "relation": "COMPOSE", "purpose": "Asset-level derivation here is a projection of the full lineage graph; WM-DAT-006 supplies activities, agents and qualified derivations beyond the immediate sources.", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] }, { "target": "WM-DAT-007 (data quality)", "relation": "COMPOSE", "purpose": "Quality measurements attach to the dataset while metric, dimension and threshold definitions and the assessment machinery are owned by WM-DAT-007, following the DQV split between measurement and metric.", "required": false, "source_refs": [ "SRC-002", "SRC-014" ] }, { "target": "WM-DAT-008 (data product)", "relation": "REFERENCE", "purpose": "Inbound: a data product catalog entry references one or more datasets. The offering, its consumers and its service levels are not modelled here.", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "target": "WM-AI-006 (training run)", "relation": "REFERENCE", "purpose": "Inbound: a training run references dataset versions it consumed. Split selection and evaluation results belong to the run; only durable ML-readiness documentation is held here.", "required": false, "source_refs": [ "SRC-005", "SRC-018" ] }, { "target": "WM-ACT-036 (research study)", "relation": "REFERENCE", "purpose": "Inbound: a study produces datasets. The registry records this as PRODUCES; expressed here as a reference because study design, protocol and ethics remain in the study model.", "required": false, "source_refs": [ "SRC-019", "SRC-006" ] }, { "target": "Organization / agent model (registry identifier to be confirmed)", "relation": "REFERENCE", "purpose": "Holder, publisher, creator, contributor and service operator are agent references; only the role assignment and its effective period are local.", "required": true, "source_refs": [ "SRC-004", "SRC-006" ] }, { "target": "Identifier and naming scheme model (registry identifier to be confirmed)", "relation": "REFERENCE", "purpose": "Persistent identifier schemes, allocation authority and resolution policy are governed externally; the dataset records only the identifier value and its scheme.", "required": false, "source_refs": [ "SRC-006", "SRC-010" ] }, { "target": "W3C DCAT 3", "relation": "ALIGN", "purpose": "Primary alignment for Dataset, Distribution, DataService, DatasetSeries and CatalogRecord, and for checksum and version chaining. Alignment, not conformance: profile obligations are validated per deployment.", "required": false, "source_refs": [ "SRC-001" ] }, { "target": "DCAT-AP 3.0.0 and DCAT-US", "relation": "ALIGN", "purpose": "Jurisdictional profiles that add mandatory properties and controlled vocabularies; recorded as declared profiles with validation evidence rather than as built-in obligations.", "required": false, "source_refs": [ "SRC-004", "SRC-008" ] }, { "target": "W3C DQV", "relation": "MIX-IN", "purpose": "Quality measurement facet applied to datasets and distributions, kept as a mix-in so quality can be absent without breaking the entry.", "required": false, "source_refs": [ "SRC-002" ] }, { "target": "W3C PROV-O", "relation": "MIX-IN", "purpose": "Provenance facet for derivation, attribution and generation time, including the distinction between generation and recording instants.", "required": false, "source_refs": [ "SRC-003" ] }, { "target": "MLCommons Croissant 1.0 (with RAI extension)", "relation": "EXTEND", "purpose": "Extends the catalogue entry with ML-loadable record set structure and responsible-AI documentation for training use.", "required": false, "source_refs": [ "SRC-005", "SRC-018" ] }, { "target": "DataCite Metadata Schema 4.6", "relation": "ALIGN", "purpose": "Citation, persistent identifier, typed related identifiers and tombstone practice for research and repository contexts.", "required": false, "source_refs": [ "SRC-006", "SRC-017" ] }, { "target": "Frictionless Data Package 2 and RO-Crate 1.2", "relation": "ALIGN", "purpose": "Packaging profiles for distributions, providing descriptor conventions, resource-level integrity and payload-plus-metadata containers.", "required": false, "source_refs": [ "SRC-007", "SRC-009" ] }, { "target": "OAI-PMH 2.0", "relation": "ALIGN", "purpose": "Exchange semantics for federated catalogues: selective harvesting by datestamp and declared deleted-record support.", "required": false, "source_refs": [ "SRC-016" ] }, { "target": "W3C ODRL 2.2", "relation": "MIX-IN", "purpose": "Machine-readable permissions, prohibitions and duties where a licence identifier alone cannot express the terms.", "required": false, "source_refs": [ "SRC-015" ] } ], "serviceLayers": { "dimension": { "owner_package_requirements": [ "A Dimension adopting WM-DAT-001 must name the accountable data holder role and the system of record that mints dataset identifiers before any entry is created.", "It must declare which application profiles are binding for its catalogue (for example DCAT-AP or DCAT-US) and pin their versions, because mandatory-property sets differ between them.", "It must bind the controlled vocabularies it uses for theme, format, frequency, access rights and licence, and record the vocabulary version so term drift is detectable.", "It must state its retention, tombstone and deleted-record policy, including whether harvesters are told about deletions persistently or transiently.", "It must declare whether quality metrics come from a shared metric registry (WM-DAT-007) or from local definitions, and record which." ], "namespace_guidance": "Use a stable namespace of the form .dataset with bundle-level segments (identity, scope, representation, rights, lifecycle, quality, interoperability). Local IDs stay lower-kebab-case and never encode dates, jurisdictions or storage technology; jurisdictional specifics belong in profile declarations, not in names.", "registry_links": [ "vr.wm-dat-001 is the registry entry for this model; nav path NAV.INF.DAT.SET", "Relations are maintained in planning/VERCY-MODEL-RELATIONS.csv, including the inbound PRODUCES edge from WM-ACT-036 which this model expresses as a reference", "Profile and vocabulary registries used by a Dimension must be listed with URI and version alongside the model registration" ] }, "canon_and_patch": { "canonicalization_rules": [ "Canonical form is the format-neutral entry: identifiers, typed values and references, with no serialisation artefacts. JSON, YAML, Markdown, RDF, Git and MongoDB are projections.", "Timestamps are canonicalised to RFC 3339 with seconds and an explicit offset; UTC is written as Z and local offsets are preserved rather than normalised away when the offset carries meaning.", "Reference values are canonicalised to the identifier plus scheme, never to a display label; controlled-vocabulary values are canonicalised to term URI plus vocabulary version.", "Collections that carry no inherent order (keywords, themes, distributions) are sorted by identifier before hashing so that equality checks are stable." ], "patch_rules": [ "Patches target one finding at a time and cite the source_refs that justify the change; a patch that adds structure without a source is rejected.", "Corrections that do not change data content update the entry in place; changes to content, coverage or structure require a new dataset version and a change log entry.", "Withdrawal is a state transition plus a tombstone, never a delete of the entry; identifiers are never reassigned.", "Harvested fields may only be patched locally where the override policy allows, and each override records the overridden source value." ], "compatibility_rules": [ "Adding an optional data element or a new finding is backward compatible; making an element required, narrowing a vocabulary or removing an element is breaking and requires a major model version.", "Profile declarations may be added or removed without breaking the entry; failing a newly declared profile is a validation finding, not a model break.", "Consumers must tolerate unknown optional elements and must not infer absence of a fact from absence of an element unless a not-applicable flag is present.", "A projection may omit elements only if it publishes a loss report; silent narrowing is non-conformant." ] }, "artifact_rules": { "identity_priority": [ "Authoritative master-system identifier: the identifier assigned by the system of record that owns the dataset entry always takes precedence.", "Governed global identifier or IRI: a DOI, Handle, ARK or other registered persistent identifier or resolvable IRI, used when no master-system identifier exists or as the public alternate key.", "UUID or ULID assigned by the adopting Dimension: used only when neither of the above exists, and recorded as locally minted.", "Checksums, titles, URLs and version strings are attributes, never primary identifiers; a date or period is never an identifier." ], "timestamp_rule": "All timestamps use RFC 3339 with seconds and an explicit offset (Z for UTC or a numeric offset such as +02:00); unqualified local time is not accepted. Event time and observation or ingestion time are recorded separately whenever they can differ: dataset generation time and coverage period are event times, while catalogue record creation, harvest datestamp, measurement time and validation run time are observation or ingestion times. Where only one is known, the entry states which one it is rather than conflating them.", "serial_naming_rule": "Serial artefacts (distributions, change log entries, quality measurements, validation reports, harvest log entries, role assignments, licence bindings, retention entries) are named by parent identifier plus a monotonic sequence assigned by the recording system - for example //measurement/000123. Sequence numbers never encode dates, and gaps are permitted but never reused.", "integrity_rule": "Every distribution carries a checksum with a named algorithm; fixity is re-verified on a declared schedule and on every re-publication, and a mismatch marks the distribution suspect rather than silently replacing the published value. Evidence artefacts (measurements, validation reports, assessments, tombstones) are append-only: they are superseded by reference, never edited in place." }, "policies": [ "A dataset entry is publishable only when it has an identifier, a holder, an access rights code and at least one distribution or a documented reason why none exists.", "Conformance to an external standard is claimed only with a stored validation report; a declared profile without evidence is recorded as a claim, not as conformance.", "Descriptive metadata outlives the payload: withdrawal or deletion of data never deletes the identifier, citation or tombstone record.", "Restricted datasets remain discoverable at metadata level by default; suppression of metadata requires a named exception with an approver and an expiry.", "Quality measurements and fitness assessments are always bound to a specific dataset version; unversioned quality claims are rejected.", "The data holder is accountable for content and service levels; catalogue operators list and harvest but do not become holders by copying metadata.", "Absence of a licence is not a grant; open reuse requires an explicit licence or rights statement on the dataset or distribution.", "Multiple distributions of one dataset are not automatically a dataset series; DatasetSeries must be typed explicitly.", "Quality statements are assessments by named agents, not intrinsic properties of bytes; conflicting assessments may coexist and are composed from WM-DAT-007.", "Persistent identifiers of cited datasets are not recycled; legal erasure suppresses bytes and may tombstone metadata but does not mint the same identifier for a new work.", "Schema, lineage and quality internals are referenced or composed from sibling models rather than copied.", "Event time and catalogue observation or ingestion time are stored separately whenever they differ.", "Access defaults to the declared accessRights; public licences are explicit exceptions to a deny-for-non-public default in internal registers." ], "crud": { "read": [ "Public read of descriptive metadata is the default for entries with a public access rights code.", "Reading a distribution's payload is governed by the access conditions of that distribution, which may be stricter than the entry's.", "Evidence artefacts (validation reports, measurements, sensitivity assessments) are readable by the holder and stewards; publication of them is a holder decision.", "Every read of restricted payload is attributable to an identified requester." ], "create": [ "Only the holder or a delegated steward may create a dataset entry; catalogue operators may create catalogue records but not datasets.", "Creation allocates the master-system identifier and records the creation instant as observation time.", "Harvested entries are created with an origin code identifying the source catalogue and record." ], "update": [ "In-place update is permitted for descriptive and registration fields; content-affecting change requires a new version.", "Updates record who changed what and when, and preserve the prior value for harvested fields that were overridden locally.", "Status and access-level changes require the authorising role named in the entry." ], "delete": [ "Dataset entries are not deleted; they are deprecated or withdrawn with a tombstone.", "Payload deletion is permitted only through an approved retention action with recorded evidence and no active legal hold.", "Deletion signals must be propagated to catalogues known to have harvested the record, using the source's declared deleted-record support level." ] }, "roles": [ { "name": "Data holder", "responsibilities": [ "Accountable for content, access decisions, licence choice and service level", "Approves withdrawal, deletion and access-level changes", "Owns fitness-for-use statements and documented limitations" ] }, { "name": "Data steward", "responsibilities": [ "Maintains descriptive metadata, classification and coverage statements", "Runs profile validation and resolves violations", "Monitors release cadence, punctuality and schema drift" ] }, { "name": "Catalogue operator", "responsibilities": [ "Operates the register, its records and its harvesting endpoints", "Enforces profile obligations and duplicate detection across federated sources", "Publishes tombstones and propagates deletion signals" ] }, { "name": "Quality assessor", "responsibilities": [ "Computes and records quality measurements against defined metrics", "Issues quality certificates and records user feedback annotations", "Escalates threshold failures to the holder and steward" ] }, { "name": "Privacy and compliance reviewer", "responsibilities": [ "Classifies sensitivity and reviews de-identification and disclosure control", "Verifies legal basis, retention rules and erasure or hold conflicts", "Reviews training-use permissions and bias documentation for AI reuse" ] }, { "name": "Consuming agent", "responsibilities": [ "Resolves identifiers, verifies fixity and pins the version it consumed", "Evaluates access conditions and machine-readable policy before use", "Reports defects and reacts to deprecation and breaking-change signals" ] } ], "access": { "default_rule": "Descriptive metadata is readable by default; payload access follows the declared access rights code, and any narrowing of metadata visibility requires an explicit, expiring exception.", "scopes": [ "bundle", "layer", "finding", "artifact" ], "exceptions": [ "Sensitivity assessments, residual-risk statements and linkage-risk analyses are holder-and-reviewer scoped even when the dataset is public, because publishing them can enable re-identification.", "Endpoint credentials, quota keys and internal service limits within the access-service finding are never exposed in public projections.", "Embargoed datasets expose the entry and the embargo end instant but not the distributions until the embargo lapses.", "Harvest log entries and local override records are operator-scoped; only the resulting values are public.", "Where a jurisdiction forbids publishing an entry at all, a suppression exception is recorded with authority, reason and review date rather than deleting the entry.", "Explicit public licence or public accessRights on the dataset or distribution.", "Bilateral data-sharing agreement or API access contract naming the requesting agent and purpose.", "Embargo expiry that flips accessRights from restricted to public at the available date.", "Statutory open-data mandates recorded as applicable legislation.", "Legal erasure, court order or security classification that suppresses even metadata that would otherwise be public." ], "audit_requirements": [ "Every access decision on restricted payload records requester, purpose, decision, approver and RFC 3339 decision time.", "Every state transition (status, access level, retirement) records actor, prior value, new value and time.", "Every deletion or retention action records approval reference and evidence location and is retained after the payload is gone.", "Harvest runs and local overrides are logged so divergence from the source catalogue is reconstructable.", "Log identifier minting, status changes, harvest ingest, access decisions, checksum verification failures, withdrawal and erasure with event time and observation time.", "Retain audit records of access grants and denials at artifact scope for restricted distributions.", "Record the agent, role and policy version used for each exception." ] }, "agents_bootstrap": { "filename": "AGENTS.md", "required_fields": [ "Name", "Type", "Specification URL", "Storage type URL", "Interface URL", "Processes URL", "Registry ID", "Declared application profiles and versions", "Identifier authority and scheme", "Timestamp rule reference" ], "read_order": [ "AGENTS.md - resolve Name, Type and the four URLs before touching any data", "Specification URL - the format-neutral model: bundles, layers, findings, data elements and artifact rules", "Storage type URL - how the entry is projected into the concrete store (document database, Git tree, RDF store); projections never redefine semantics", "Interface URL - the access interface and its authentication, quotas and error semantics", "Processes URL - CRUD, versioning, validation, harvest, withdrawal and retention procedures", "Declared profile documents - validate before publishing or harvesting" ] } }, "coverage": { "claim": "Covers the asset-level operating surface of a catalogued dataset — identity and registration, classification, coverage, declared structure, distributions and access services, rights and accountability, provenance, versioning and retirement, quality and fitness, and profile interoperability — grounded in DCAT 3, DCAT-AP 3.0.0, DCAT-US, DataCite, Data Package, RO-Crate, Croissant, DQV, PROV-O, OAI-PMH, ODRL, RFC 3339 and named EU legal and statistical sources, plus four operations imported from the Grok result. It claims no conformance to any cited standard, retains security and preservation-packaging as declared gaps, excludes field-level semantics, full lineage graphs, metric definitions and product packaging, and is not complete for domain-specific dataset types or for any jurisdiction beyond those named.", "confidence": "medium", "checklist": [ { "dimension": "identity", "status": "covered", "notes": "Master-system identifier first, then governed persistent identifier, then locally minted UUID/ULID; abstract-versus-version granularity and alternate identifiers are explicit questions. Grounded in DCAT 3, DataCite 4.6 and FAIR F1/F3." }, { "dimension": "lifecycle", "status": "covered", "notes": "Registration state, maturity status, version chaining, deprecation, withdrawal with tombstone and retention actions are separate findings with distinct authorities (DCAT 3, DataCite tombstone guidance, OAI-PMH deleted records)." }, { "dimension": "relationships", "status": "covered", "notes": "Series membership, part aggregation, derivation, version chains, successor links, service-serves-dataset and typed related identifiers, each with a relation-type vocabulary question." }, { "dimension": "temporal", "status": "covered", "notes": "Coverage interval, issued/modified, next expected update, generation time, measurement time, harvest datestamp and embargo end are distinguished; RFC 3339 with seconds and explicit offset is mandated, with event time separated from observation/ingestion time." }, { "dimension": "provenance", "status": "covered", "notes": "PROV-O-based derivation and attribution plus production method; depth is bounded by an explicit delegation question to WM-DAT-006 rather than duplicating the lineage graph." }, { "dimension": "ownership", "status": "covered", "notes": "Holder, publisher, creator, steward, catalogue operator and rights holder are distinguished, with role assignment records carrying effective periods." }, { "dimension": "validation", "status": "covered", "notes": "Profile validation reports, schema-conformance status, schema drift detection and fixity verification are distinct, evidence-producing surfaces; conformance claims require stored reports." }, { "dimension": "access", "status": "covered", "notes": "Access rights codes, authentication, request and appeal process, embargo, service limits and metadata visibility under restriction; four access scopes and five named exceptions in the service layer." }, { "dimension": "retention and deletion", "status": "covered", "notes": "Retention rule, retain-until instant, legal hold, deletion scope and evidence, plus the erasure-versus-archival conflict question; tombstone and citation survive payload deletion per FAIR A2 and DataCite practice." }, { "dimension": "interoperability", "status": "covered", "notes": "Declared profiles with versions, mandatory-property gaps, projection loss reports, profile conflict precedence, harvesting increments and duplicate merging." }, { "dimension": "classification", "status": "covered", "notes": "Theme vocabularies, resource type, keywords and regulatory designations, with vocabulary version recorded so term drift is detectable." }, { "dimension": "quality and evidence", "status": "covered", "notes": "DQV-shaped measurements bound to a version, thresholds, certificates and user feedback, plus fitness verdicts and documented limitations; metric definitions delegated to WM-DAT-007." }, { "dimension": "privacy and sensitive data", "status": "covered", "notes": "Sensitivity classification, legal basis, de-identification, linkage risk and special-category safeguards for bias correction; the detailed data protection regime is deferred to a privacy model." }, { "dimension": "ml and ai readiness", "status": "covered", "notes": "Croissant record sets, label provenance, representativeness and bias examination, and training permission; run-time split selection deferred to WM-AI-006." }, { "dimension": "spatial", "status": "covered", "notes": "Extent, CRS by registry identifier, resolution and an explicit not-applicable path for non-spatial datasets." }, { "dimension": "security", "status": "gap", "notes": "Endpoint hardening, key management, transport security and threat modelling are named only as access-service attributes and exceptions; no primary security standard was consulted, so this is marked a gap rather than presented as covered." }, { "dimension": "cost and licensing economics", "status": "not-applicable", "notes": "Pricing, charging and commercial terms belong to WM-DAT-008 (data product); the EU high-value dataset rule that designated data is free of charge is captured as a licence-obligation question only." }, { "dimension": "preservation packaging", "status": "gap", "notes": "OAIS/ISO 14721 information-package semantics (SIP/AIP/DIP, representation information) could not be retrieved during research; preservation is represented only as a commitment statement and retention action." } ], "known_omissions": [ "Field-level and variable-level semantics: only a data dictionary pointer and record-set reference are held here; DDI variable descriptions and schema internals are delegated.", "Domain-specific dataset profiles (geospatial ISO 19115/INSPIRE, statistical SDMX, clinical, earth observation) are not enumerated; they would enter as declared profiles.", "ISO/IEC 25012, ISO 8000, ISO/IEC 11179 and ISO 14721 were not directly consultable (paywalled or blocked, HTTP 403), so quality dimensions lean on the ESS framework and DQV instead; a Dimension using ISO vocabularies must re-verify the mapping.", "Streaming and continuously updating datasets are handled only through cadence, real-time flags and resolution; event-stream semantics such as watermarks and late-arriving data are not modelled.", "Synthetic data provenance, differential-privacy budgets and data clean-room arrangements are not covered.", "Cost of access, quotas as commercial constructs and SLA penalties are excluded by boundary.", "Dataset discovery ranking, usage metrics and download telemetry are not modelled; DQV user feedback is referenced but usage analytics are out of scope.", "ISO 19115-1 full element dictionaries and ISO 19157 quality measures were not read from the ISO paywalled texts; geospatial constraint and lineage packages are aligned from public summaries and ICSM guidance.", "FAIR Guiding Principles (Wilkinson et al., Scientific Data 2016) and GDPR Article 17 erasure were not retrieved as live primary pages in this run; persistence versus erasure is modelled from DataCite withdrawal, DCAT status and PROV invalidation only.", "DDI Codebook, SDMX dataflow, Frictionless Data Package, STAC, Croissant ML metadata and Datasheets for Datasets are emerging or domain profiles not modelled as core.", "OAIS SIP/AIP/DIP packaging, CKAN extras and physical-media distributions are not modelled.", "Agent and organisation master data, identifier-scheme registries and official-statistics methodology are sibling concerns without model IDs in the supplied registry extract.", "Continuously updated databases versus snapshot datasets are only covered through the dynamic-dataset versioning question.", "Confidential-computing clean rooms and dataset pricing belong elsewhere." ], "conflicts": [ "Mandatory-property sets conflict across profiles: DCAT-AP 3.0.0 makes title and description mandatory for Dataset and accessURL mandatory for Distribution, while DCAT-US requires accessLevel, bureauCode and programCode that DCAT-AP does not define. The model therefore records profiles as declarations with per-profile validation rather than a single obligation set.", "DCAT 3 is a W3C Recommendation but DQV is only a Working Group Note; treating DQV as normative would overstate its status, so quality attachment is modelled as a mix-in facet.", "Identifier granularity conflicts: DataCite practice often mints a DOI per version, while DCAT 3 allows a dataset resource to have versions beneath one identity. The model forces an explicit granularity answer instead of assuming either.", "Deletion conflicts: FAIR A2 and DataCite require metadata to persist after data becomes unavailable, while erasure obligations may require destruction of underlying records. The model resolves this by separating payload deletion from tombstone retention and by requiring an explicit exception decision.", "Schema.org Dataset declares equivalence to dcat:Dataset but its property set diverges (variableMeasured, measurementTechnique, sdPublisher have no DCAT equivalent), so projection to schema.org is lossy in both directions.", "Croissant requires a conformsTo version and treats file-level SHA-256 as central, whereas DCAT treats checksum as optional; an entry valid for one may be insufficient for the other.", "DCAT Dataset (conceptual collection with distributions and services) versus ISO 19115 dataset (geographic resource with identification, constraint, lineage, extent and, historically, quality packages now in ISO 19157).", "DCAT-AP 3.0: a Dataset with multiple Distributions is not a DatasetSeries unless the DatasetSeries class is used explicitly; some publishers still model series as many files on one dataset.", "DataCite Identifier in its registry is a DOI; DCAT allows any dcterms:identifier. Citation systems and catalogues therefore disagree on which identifier is mandatory.", "schema.org Dataset is equivalentClass dcat:Dataset, but schema.org explicitly allows non-equivalent DataDownload variants; some harvest pipelines assume byte-equivalent mirrors.", "DQV treats quality as fitness judged by many agents; ISO 19157 and many statistical offices treat quality as measured characteristics of the data.", "DataCite PublicationYear (gYear, mandatory) versus dcterms:issued (full date, optional in DCAT).", "DCAT 3 replaced dcterms hasVersion/isVersionOf mappings used in DCAT 2; DCAT-AP 3.0 documents that URI change.", "Catalogue-record identifier versus dataset identifier versus DOI; harvesters that mint a new ID per copy create false duplicates.", "Legal erasure and security take-down versus citation persistence and FAIR-style findability; operational resolution is tombstone plus suppressed bytes, not a single global rule.", "Data product (WM-DAT-008 offering) versus dataset (this model); treating a SKU as a dataset or a dataset as a product mixes planes." ], "regional_assumptions": [ "EU-specific: Implementing Regulation (EU) 2023/138 obligations (free of charge, machine-readable, API and bulk download, open licence) apply only to designated high-value datasets held by public sector bodies under Directive (EU) 2019/1024; they are modelled as a designation question, not as a universal rule.", "EU-specific: DCAT-AP mandates EU Publications Office authority lists (data themes, file types, frequency, corporate bodies) that have no force outside the EU context.", "US-specific: accessLevel, bureauCode and programCode come from the US federal profile and are meaningless elsewhere.", "EU-specific: AI Act Article 10 data-governance duties bind high-risk AI system providers, not dataset holders generally; the model records the documentation, not the obligation.", "Indigenous and community data governance (for example CARE-style collective rights) is not represented; jurisdictions applying it need an additional rights facet.", "Statistical quality dimensions are taken from the European Statistical System framework; other national statistical offices use overlapping but differently named dimension sets.", "European exchanges using DCAT-AP 3.0 are assumed to require NAL data-theme for dcat:theme and the DCAT-AP controlled vocabularies for frequency, licences and access rights.", "United States federal open-data catalogues often follow DCAT-US three-tier Catalog/Dataset/Distribution practice; DatasetSeries adoption may lag DCAT 3.", "Research repositories that mint DataCite DOIs treat Creator, Title, Publisher, PublicationYear and ResourceType as mandatory regardless of DCAT optionality.", "Geospatial agencies using ISO 19115-1/19157 and INSPIRE remain more constraint- and lineage-heavy than generic open-data portals.", "Personal-data and statistical-disclosure rules are jurisdiction-specific; this model records flags and policies but does not encode a single privacy statute." ], "adversarial_checks": [ "Counterexample test - a dataset with no distribution: an internal register entry or an embargoed dataset has no accessible form. The model does not require a distribution; the publication policy demands either a distribution or a documented reason, so entry validity does not collapse.", "Counterexample test - a dataset that is only an API: DCAT 3 DataService allows serving without a downloadable file, so distributions and access services are modelled as separate findings rather than making distribution the only access path.", "Boundary test - is the catalogue record the dataset? DCAT 3 separates them and OAI-PMH harvests records by their own datestamps, so record state and record timestamps are modelled distinctly from dataset issued/modified; conflating them would corrupt incremental harvesting.", "Attractive-but-unsupported structure rejected - a built-in 'dataset maturity score': no consulted authority defines one, so only measured metrics with named metric references and thresholds are modelled.", "Attractive-but-unsupported structure rejected - treating checksum or version string as an identifier: identity priority explicitly demotes both to attributes, since two distributions can share a digest and version strings are not globally unique.", "Falsifiability test - date-like identifiers: serial artefacts use monotonic sequences with the instant as an attribute, so an entry whose key encodes a release date is detectably non-conformant.", "Overreach test - lineage depth: without a bound, this model would absorb WM-DAT-006. A delegation-boundary question forces each Dimension to state where asset-level provenance stops.", "Status test - DQV as a Working Group Note and the AI Act text sourced from a secondary rendering are recorded as such, so no conformance claim rests on an over-stated authority.", "Retrieval test - EUR-Lex full text and ISO catalogue pages could not be fetched (timeout and HTTP 403); the affected claims are limited to title, date, obligations and dimension names confirmed from indexed records, and are flagged for re-verification rather than presented as fully read.", "Using a publication date or coverage end date as the dataset identifier, violating identity priority and the date-is-not-an-identifier rule.", "Treating harvested catalogue-record IDs as dataset IDs, producing duplicate assets that break PID resolution.", "Encoding a series as many distributions of one dataset, then losing slice-level issued dates and missing-slice semantics.", "Assuming all distributions are information-equivalent and overwriting a subset GeoJSON with a full CSV as if they were the same bytes.", "Storing a landing-page URL as downloadURL, causing automated fetchers to retrieve HTML and fail checksums.", "Publishing quality scores without metric, dimension, assessor and assessment event time, which DQV does not support.", "Silently deleting a cited dataset instead of withdrawing with a tombstone, breaking DataCite and catalogue harvests.", "Copying WM-DAT-004 field maps, WM-DAT-006 graphs or WM-DAT-007 metric catalogues into this model and claiming a single record is the contract.", "Claiming DCAT-AP or ISO 19115 conformance because properties are present, without profile SHACL or ISO core discovery obligation checks.", "Collapsing holder, publisher and catalogue operator so a harvester appears to own the data." ] }, "researchAdjudication": { "boundaryDecision": { "entry_kind": "entity", "status": "accepted", "rationale": "Both providers independently classify WM-DAT-001 as an entity: a catalogued, identifiable data asset with its own identity, lifecycle, ownership and retirement, distinct from the offering that wraps it (WM-DAT-008), the run that consumes it (WM-AI-006) and the study that produces it (WM-ACT-036). I accept the base boundary as drawn: the dataset is the catalogued asset, the catalogue record is a registration facet on that entry rather than a modelled catalogue entity, and schema internals, the full lineage graph, metric definitions and commercial packaging remain with the named siblings. Grok's treatment of the catalogue as in-scope is the one boundary divergence and is resolved in favour of the base." }, "decisions": [ { "concept": "Base provider selection", "disposition": "base = claude", "rationale": "Claude carries seven boundary notes that each name a sibling model with source refs, plus a scope statement that states where the model stops. Grok's boundary notes are mostly intra-DCAT definitional clarifications and its sibling delegation sits in prose out_of_scope without refs. Node count was not the deciding factor." }, { "concept": "Entry kind for WM-DAT-001", "disposition": "accepted as entity", "rationale": "Both providers independently classify the dataset as an entity with durable identity, lifecycle and ownership, distinct from the product offering, the training run and the producing study; no reclassification or split is warranted." }, { "concept": "Catalogue / register as a modelled entity (grok bundle catalogue-asset, finding catalogue-harvest)", "disposition": "rejected; base boundary held", "rationale": "Base deliberately keeps registration as a facet on the dataset entry and delegates catalogue governance to a separate registry model. Importing Grok's catalogue membership finding would create a second master for catalogue semantics and duplicate both catalogue-record-and-listing and harvesting-and-federation." }, { "concept": "grok legal-security-privacy (security classification of bytes versus metadata)", "disposition": "rejected; security kept as a declared gap", "rationale": "Two of its three questions duplicate personal-and-sensitive-data-controls and use-restrictions-and-policy. The novel security-classification element rests on ISO 19115-1, which Grok states it did not read (paywalled), plus a tier-3 guide, and Grok itself notes DCAT defines no security code list. Importing it would convert the base's honest gap into weakly supported structure." }, { "concept": "grok accessible-representation and integrity-packaging", "disposition": "rejected as duplicative", "rationale": "Base distribution-manifest-and-fixity already carries media type and format, download and access URLs, byte size, checksum algorithm and value, packaging profile and the distribution-equivalence question. The remaining contribution — storing a landing page as downloadURL — is an adversarial check, not new structure." }, { "concept": "grok version-succession and resource-lifecycle", "disposition": "rejected as duplicative", "rationale": "Base version-identity-and-change, release-cadence-and-status, access-conditions-and-embargo and deprecation-and-withdrawal already separate version chaining, maturity status, embargo and withdrawal with distinct authorities; re-importing them would split one lifecycle across two masters." }, { "concept": "Dynamic and continuously updated dataset citability (grok q-dynamic-dataset-snapshot)", "disposition": "deferred to research", "rationale": "Snapshot versus time-stamped query versus non-citable living work is a real gap the base itself lists under known omissions, but it arrives as one question inside an otherwise duplicative finding and neither provider consulted a dynamic-data-citation authority." }, { "concept": "grok persistence-withdrawal-erasure", "disposition": "rejected as duplicative; two rules deferred", "rationale": "Base deprecation-and-withdrawal plus retention-and-deletion already cover tombstoning, deletion scope, evidence and the erasure-versus-archival conflict. The identifier-reuse prohibition and retaining prior checksums as evidence of removed bytes are recorded as question-level additions for a later pass, not as a new finding." }, { "concept": "grok citation-description (landing page, DataCite mandatory citation set)", "disposition": "rejected as finding; landing-page provenance deferred", "rationale": "Base splits the same content across dataset-identity-and-designation and citation-and-related-identifiers, so the finding would duplicate two base findings. The provider-landing-page-versus-aggregator-page distinction is genuinely absent from the base and is logged for the next research pass." }, { "concept": "grok holder-publisher-attribution (FundingReference is not ownership)", "disposition": "rejected as duplicative; funding question deferred", "rationale": "Base holder-and-role-assignment already distinguishes holder, publisher, creator, contact point and steward with effective periods. Funder and award obligations such as deposit, embargo or licence conditions are a missing question, not a missing finding." }, { "concept": "grok type-theme-subject (ISO 19115 MD_Scope, DataCite resourceTypeGeneral)", "disposition": "rejected as duplicative; ISO scope codes deferred", "rationale": "Base thematic-classification covers theme vocabularies, resource type, keywords and regulatory designation with vocabulary versioning. The MD_Scope element depends on an ISO text neither provider retrieved, so it waits on ISO verification." }, { "concept": "grok fn-apply-access-policy", "disposition": "rejected as duplicative", "rationale": "Base evaluate-access-request already decides a request against declared access conditions and machine-readable ODRL policy; a second access operation would create two masters for one decision surface." }, { "concept": "Data service, series, lineage and citation operations (grok fn-bind-data-service, fn-attach-series, fn-record-lineage, fn-cite-dataset)", "disposition": "accepted as functions", "rationale": "Each corresponds to a base finding that has no executable operation, and each is backed in the source provider by DCAT 3, DCAT-AP, PROV-O or DataCite. They add operations over structure the base already owns rather than new structure." }, { "concept": "Conflicting mandatory-property sets across DCAT-AP, DCAT-US and DataCite", "disposition": "resolved: profiles recorded as declarations with per-profile validation", "rationale": "Both providers report the same conflict and the base already resolves it inside profile-conformance-and-validation rather than asserting one obligation set, so it is a modelling decision rather than an unresolved contradiction blocking a draft." }, { "concept": "DataCite metadata schema version (base cites 4.6, grok cites 4.7 released 3 March 2026)", "disposition": "hold: pin the live version before publication", "rationale": "This is a source and live-version divergence affecting citation properties and relation types, not a semantic contradiction between the two models, so it becomes a publication hold under the stated rules rather than a critical conflict." }, { "concept": "ML readiness and AI Act data-governance documentation (base only)", "disposition": "retained from base with a source hold", "rationale": "Croissant record sets, label provenance, representativeness and training permission are durable asset-level documentation absent from Grok entirely. The content stays, but the AI Act reference is a tier-3 secondary rendering and its source is held for verification against the Official Journal." } ], "publicationHolds": [ "Source verification is incomplete: all 19 base source URLs must be re-fetched live and version-pinned before publication, and the DataCite divergence resolved — the base cites schema 4.6 while the second provider reports 4.7 released 3 March 2026, which affects citation properties and relation types.", "The base reports that EUR-Lex full text (Implementing Regulation (EU) 2023/138) and ISO catalogue pages could not be fetched (timeout and HTTP 403); every claim resting on those sources is currently limited to indexed titles, dates and dimension names and must be re-verified against full text before publication.", "The AI Act Article 10 material is sourced from a tier-3 secondary rendering (artificialintelligenceact.eu), not the Official Journal; no obligation-shaped statement derived from it may be published until the primary text is read.", "Multi-profile validation has not been performed by either provider: the merged entry must be validated against at least DCAT-AP 3.0.0 SHACL, DCAT-US, DataCite and one geospatial profile (ISO 19115-1 / INSPIRE) before publication, since profile conformance is asserted as a declaration, not a verified state.", "Domain-profile applicability is unverified: the second provider asserts uniform application across open data portals, research repositories and internal registers, but neither provider tested the model against a worked example in each of those three deployment contexts.", "The security dimension is a declared gap in the base — no primary security standard was consulted — and must be published as a stated gap, not silently presented as covered by access-service attributes." ], "deferredResearch": [ "ISO 19115-1 constraint, extent and lineage packages and ISO 19157 quality measures: both providers were blocked by the paywall, so geospatial alignment currently rests on public summaries and tier-3 guidance and must be re-derived from the primary texts.", "A primary security standard (ISO/IEC 27001-family or equivalent) covering security classification of asset bytes versus catalogue metadata, endpoint hardening, key management and transport security, to close the base's declared security gap.", "OAIS / ISO 14721 information-package semantics (SIP, AIP, DIP and representation information); both providers list preservation packaging as unmodelled, and the base currently represents preservation only as a commitment statement.", "Dynamic and continuously updated dataset citation: snapshot versus time-stamped query versus a living work that is not citable as a fixed entity, including event-stream semantics such as watermarks and late-arriving data.", "Landing-page provenance as a discovery property — distinguishing the original provider's landing page from aggregator and catalogue pages — which is absent from the base and materially affects harvesting integrity.", "Catalogue and register as its own model: dcat:Catalog governance, membership, nested catalogues and the empty-catalogue signal, which the accepted boundary excludes from this entry.", "Identifier reuse after retirement (prohibition and successor-identifier resolution) and retention of prior checksums as evidence of what was removed at withdrawal.", "Funding and award obligations recorded as DataCite FundingReference — deposit, embargo and licence conditions — and their explicit separation from holdership.", "Domain-specific dataset profiles not enumerated by either provider: SDMX, STAC, DDI variable-level description, clinical and earth-observation profiles, and an Indigenous or CARE-style collective rights facet." ] }, "statistics": { "sources": 25, "bundles": 7, "layers": 15, "findings": 27, "questions": 117, "artifacts": 27, "functions": 15 } }