@prefix skos:    <http://www.w3.org/2004/02/skos/core#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix cv:      <http://data.europa.eu/m8g/> .

@prefix bom:    <https://w3id.org/bom/> .
@prefix mof:     <https://w3id.org/bom/req/mof/> .


# ============================================================================
# Ontology declaration
# ============================================================================

<https://w3id.org/bom/req/mof/>
    a owl:Ontology ;
    owl:imports <https://w3id.org/bom/> ;
    dcterms:title "Model Openness Framework (MOF) 1.0 - SBOM Mapping"@en ;
    dcterms:description """SKOS concept scheme for the Model Openness Framework
(MOF) Specification v1.0 (LF AI & Data Generative AI Commons, December 2024).

MOF is a tiered assessment framework: if a model provides a required set of
information elements under appropriate open licenses, it qualifies for a given
tier (Class III: Open Model, Class II: Open Tooling Model, Class I: Open Science
Model). Each tier specifies which of 17 components must be present and under
which license category."""@en ;
    dcterms:source <https://lfaidata.foundation/blog/2024/12/17/mof-specification-v1/> ;
    dcterms:creator <https://orcid.org/0000-0002-9698-1899> ;
    dcterms:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
    dcterms:created "2026-06-15"^^xsd:date ;
    dcterms:modified "2026-06-15"^^xsd:date ;
    owl:versionInfo "0.1.0" ;
    rdfs:seeAlso <https://arxiv.org/abs/2403.13784> .


# ============================================================================
# Concept Scheme
# ============================================================================

mof:scheme
    a skos:ConceptScheme, bom:InfoRequirementSpec ;
    skos:prefLabel "Model Openness Framework (MOF) 1.0"@en ;
    dcterms:title "LF AI & Data Model Openness Framework Specification v1.0"@en ;
    dcterms:description """A ranked classification system rating ML models based
on completeness and openness across 17 components in 3 classes."""@en ;
    skos:hasTopConcept
        mof:class-iii ,
        mof:class-ii ,
        mof:class-i .


# ============================================================================
# MOF Classes (tiers)
# ============================================================================

mof:class-iii
    a skos:Concept ;
    skos:topConceptOf mof:scheme ;
    skos:inScheme mof:scheme ;
    skos:prefLabel "Class III - Open Model"@en ;
    skos:altLabel "Open Model"@en ;
    skos:notation "III" ;
    skos:definition """The base class of openness. Requires 6 components (plus
optional sample outputs) to be present and released under type-appropriate
open licenses. Enables unrestricted usage, study, modification and redistribution."""@en ;
    skos:narrower
        mof:model-architecture ,
        mof:model-parameters ,
        mof:technical-report ,
        mof:evaluation-results ,
        mof:model-card ,
        mof:data-card ,
        mof:sample-outputs .

mof:class-ii
    a skos:Concept ;
    skos:topConceptOf mof:scheme ;
    skos:inScheme mof:scheme ;
    skos:prefLabel "Class II - Open Tooling Model"@en ;
    skos:altLabel "Open Tooling Model"@en ;
    skos:notation "II" ;
    skos:definition """Builds on Class III. Adds 6 components enabling users
to understand the training process, validate benchmarks and perform inference
optimizations. All Class III + Class II components required."""@en ;
    skos:broader mof:class-iii ;
    skos:narrower
        mof:training-code ,
        mof:inference-code ,
        mof:evaluation-code ,
        mof:evaluation-data ,
        mof:supporting-libraries ,
        mof:mof-config-file .

mof:class-i
    a skos:Concept ;
    skos:topConceptOf mof:scheme ;
    skos:inScheme mof:scheme ;
    skos:prefLabel "Class I - Open Science Model"@en ;
    skos:altLabel "Open Science Model"@en ;
    skos:notation "I" ;
    skos:definition """The highest class of openness. Adds 4 components (plus
optional model metadata) enabling end-to-end analysis, reproduction of a
similar model, and data exploration. All Class I + II + III components required."""@en ;
    skos:broader mof:class-ii ;
    skos:narrower
        mof:research-paper ,
        mof:datasets ,
        mof:data-preprocessing-code ,
        mof:intermediate-parameters ,
        mof:model-metadata .


# ============================================================================
# License value constraint sets
# (referenced by bom:valueConstraint on components requiring open licenses)
# ============================================================================

mof:open-source-license-set
    a skos:Collection ;
    skos:prefLabel "Type-appropriate open source license (code components)"@en ;
    skos:scopeNote """MOF requires code components to be released under an
OSI-approved open source software license. Examples: Apache-2.0, MIT, GPL-3.0.
See https://opensource.org/licenses for the canonical OSI-approved list."""@en ;
    rdfs:seeAlso <https://opensource.org/licenses> .

mof:open-data-license-set
    a skos:Collection ;
    skos:prefLabel "Type-appropriate open data license (data/parameter components)"@en ;
    skos:scopeNote """MOF requires data and model parameter components to be
released under an open data license. Recommended: CDLA-Permissive-2.0.
Model parameters SHOULD NOT use Apache-2.0 or MIT as these are code licenses
not well-suited for weights and biases."""@en ;
    rdfs:seeAlso <https://cdla.dev/permissive-2-0/> .

mof:open-content-license-set
    a skos:Collection ;
    skos:prefLabel "Type-appropriate open content license (documentation components)"@en ;
    skos:scopeNote """MOF requires documentation components to be released under
an open content license. Recommended: CC-BY-4.0."""@en ;
    rdfs:seeAlso <https://creativecommons.org/licenses/by/4.0/> .


# ============================================================================
# Class III components (III.1 - III.7)
# ============================================================================

mof:model-architecture
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.1" ;
    skos:prefLabel "Model architecture"@en ;
    skos:definition """The ML algorithms, neural network layout, connectivity
patterns, activation functions and other architectural elements. MUST be
distributed as open source code under an OSI-approved open source software
license."""@en ;
    skos:closeMatch bom:component-description ;
    skos:closeMatch bom:component-source-code ;
    skos:closeMatch bom:ai-model-prop .

mof:model-architecture bom:provisionType bom:Requirement .
mof:model-architecture bom:valueConstraint mof:open-source-license-set .


mof:model-parameters
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.2" ;
    skos:prefLabel "Final model parameters (checkpoints and optimizer state)"@en ;
    skos:definition """Trained model weights and biases. At minimum the final
model parameters and optimizer state MUST be distributed, compressed or
uncompressed, in a format compatible with popular deep learning frameworks.
MUST be released under an open license; SHOULD use an open data license
(e.g. CDLA-Permissive-2.0) rather than a code license."""@en ;
    skos:closeMatch bom:ai-model-parameters .

mof:model-parameters bom:provisionType bom:Requirement .
mof:model-parameters bom:valueConstraint mof:open-data-license-set .


mof:technical-report
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.3" ;
    skos:prefLabel "Technical report"@en ;
    skos:altLabel "Research paper (if provided instead of technical report)"@en ;
    skos:definition """Documentation providing performance, usage and implication
information. MUST be included in the distribution or made available on a
permanent open access platform (e.g. arXiv). MUST be distributed under an
open license (SHOULD be CC-BY-4.0). MAY be omitted if a research paper is provided."""@en ;
    skos:closeMatch bom:component-documentation .

mof:technical-report bom:provisionType bom:Requirement .
mof:technical-report bom:valueConstraint mof:open-content-license-set .


mof:evaluation-results
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.4" ;
    skos:prefLabel "Evaluation results"@en ;
    skos:definition """Detailed quantitative metrics and qualitative results from
evaluating the model. MUST include benchmark test results (standard or custom).
Raw outputs MUST be distributed under an open license (SHOULD be CC-BY-4.0)."""@en ;
    skos:closeMatch bom:component-documentation ;
    skos:closeMatch bom:ai-perf-metric .

mof:evaluation-results bom:provisionType bom:Requirement .
mof:evaluation-results bom:valueConstraint mof:open-content-license-set .


mof:model-card
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.5" ;
    skos:prefLabel "Model card"@en ;
    skos:definition """A document covering model details, intended uses, evaluation
factors, risks and mitigations. MUST be distributed under an open license
(SHOULD be CC-BY-4.0)."""@en ;
    skos:closeMatch bom:ai-model-card ;
    skos:closeMatch bom:component-description .

mof:model-card bom:provisionType bom:Requirement .
mof:model-card bom:valueConstraint mof:open-content-license-set .


mof:data-card
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.6" ;
    skos:prefLabel "Data card"@en ;
    skos:definition """Summary statistics and details about training datasets:
features, instances, intended uses, motivation and collection process.
MAY be combined with the model card. MUST be distributed under an open license
(SHOULD be CC-BY-4.0)."""@en ;
    skos:closeMatch bom:dataset-data-card ;
    skos:closeMatch bom:dataset-provenance ;
    skos:closeMatch bom:dataset-statistical-prop .

mof:data-card bom:provisionType bom:Requirement .
mof:data-card bom:valueConstraint mof:open-content-license-set .


mof:sample-outputs
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-iii ;
    skos:notation "III.7" ;
    skos:prefLabel "Sample model outputs"@en ;
    skos:definition """Text, image, audio, code or other outputs generated by the
model. RECOMMENDED but not required. If included MUST be shared publicly without
copyright or restrictions where legally permitted."""@en ;
    skos:closeMatch bom:component-documentation .

mof:sample-outputs bom:provisionType bom:Recommendation .


# ============================================================================
# Class II components (II.2 - II.6, II.x config)
# ============================================================================

mof:training-code
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-ii ;
    skos:notation "II.2" ;
    skos:prefLabel "Training, validation and testing code"@en ;
    skos:definition """Full code for training, validating and testing the model:
model construction, training loop, hyperparameter selection, checkpointing,
fine-tuning, RLHF and adapter code. MUST be released under an OSI-approved
open source software license."""@en ;
    skos:closeMatch bom:component-source-code .

mof:training-code bom:provisionType bom:Requirement .
mof:training-code bom:valueConstraint mof:open-source-license-set .


mof:inference-code
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-ii ;
    skos:notation "II.3" ;
    skos:prefLabel "Inference code"@en ;
    skos:definition """Code for performing inference including preprocessing,
postprocessing, model optimizations and dependencies. MUST include code
required to fully replicate benchmark results. MUST be released under an
OSI-approved open source software license."""@en ;
    skos:closeMatch bom:component-source-code .

mof:inference-code bom:provisionType bom:Requirement .
mof:inference-code bom:valueConstraint mof:open-source-license-set .


mof:evaluation-code
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-ii ;
    skos:notation "II.4" ;
    skos:prefLabel "Evaluation code"@en ;
    skos:definition """Code for model evaluation and benchmarking.
MUST be released under an OSI-approved open source software license."""@en ;
    skos:closeMatch bom:component-source-code .

mof:evaluation-code bom:provisionType bom:Requirement .
mof:evaluation-code bom:valueConstraint mof:open-source-license-set .


mof:evaluation-data
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-ii ;
    skos:notation "II.5" ;
    skos:prefLabel "Evaluation data"@en ;
    skos:definition """Data used for model evaluation and benchmarking. MUST be
included (standard benchmark datasets MAY be omitted if described in the report).
MUST be released under a data or content appropriate open license
(e.g. CDLA-Permissive-2.0 or CC-BY-4.0)."""@en ;
    skos:closeMatch bom:dataset-provenance .

mof:evaluation-data bom:provisionType bom:Requirement .
mof:evaluation-data bom:valueConstraint mof:open-data-license-set .


mof:supporting-libraries
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-ii ;
    skos:notation "II.6" ;
    skos:prefLabel "Supporting libraries and tools"@en ;
    skos:definition """Code libraries, utilities and tools developed in the course
of the model. SHOULD be released under an OSI-approved open source software
license. Includes tokenizers, data loaders, visualisation code, container
definitions, hyperparameter search code, monitoring code, frontend code."""@en ;
    skos:closeMatch bom:component-source-code .

mof:supporting-libraries bom:provisionType bom:Recommendation .
mof:supporting-libraries bom:valueConstraint mof:open-source-license-set .


mof:mof-config-file
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-ii ;
    skos:prefLabel "MOF configuration file"@en ;
    skos:definition """A machine-readable configuration file declaring which MOF
components are included in the distribution and their locations.
SHOULD be included in every MOF-conformant distribution."""@en ;
    skos:scopeNote "No direct bridge concept; closest is doc-identifier or component-external-ref."@en ;
    skos:closeMatch bom:component-documentation .

mof:mof-config-file bom:provisionType bom:Recommendation .


# ============================================================================
# Class I components (I.2 - I.6)
# ============================================================================

mof:research-paper
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-i ;
    skos:notation "I.2" ;
    skos:prefLabel "Research paper"@en ;
    skos:definition """A peer-reviewed or preprint research paper detailing
model methodology, results and analysis. MUST be available in the distribution
or on a permanent open access platform. MUST be released under CC-BY-4.0 or
equivalent open content license. MAY replace the technical report (III.3)."""@en ;
    skos:closeMatch bom:component-documentation .

mof:research-paper bom:provisionType bom:Requirement .
mof:research-paper bom:valueConstraint mof:open-content-license-set .


mof:datasets
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-i ;
    skos:notation "I.3" ;
    skos:prefLabel "Datasets (training, validation and testing)"@en ;
    skos:definition """All data used for training, validation, fine-tuning,
alignment (RLHF) and testing. Any media format. Includes tokenized datasets
and any metadata (annotations, labels, bounding boxes, etc.). MUST be released
under an appropriate open data or content license."""@en ;
    skos:closeMatch bom:dataset-provenance ;
    skos:closeMatch bom:dataset-type .

mof:datasets bom:provisionType bom:Requirement .
mof:datasets bom:valueConstraint mof:open-data-license-set .


mof:data-preprocessing-code
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-i ;
    skos:notation "I.4" ;
    skos:prefLabel "Data preprocessing code"@en ;
    skos:definition """All code for preprocessing, cleaning and formatting
training/validation/test data, fine-tuning data transformations, data ingestion,
feature engineering, data augmentation and tokenization. MUST be released under
an OSI-approved open source software license."""@en ;
    skos:closeMatch bom:dataset-provenance ;
    skos:closeMatch bom:component-source-code .

mof:data-preprocessing-code bom:provisionType bom:Requirement .
mof:data-preprocessing-code bom:valueConstraint mof:open-source-license-set .


mof:intermediate-parameters
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-i ;
    skos:notation "I.5" ;
    skos:prefLabel "Intermediate model parameters (checkpoints)"@en ;
    skos:definition """Model parameter checkpoints from key intermediate stages
of training, in addition to the final parameters required by III.2.
SHOULD be included to enable reproduction and analysis of training dynamics."""@en ;
    skos:closeMatch bom:ai-model-parameters .

mof:intermediate-parameters bom:provisionType bom:Recommendation .
mof:intermediate-parameters bom:valueConstraint mof:open-data-license-set .


mof:model-metadata
    a skos:Concept ;
    skos:inScheme mof:scheme ;
    skos:broader mof:class-i ;
    skos:notation "I.6" ;
    skos:prefLabel "Model metadata"@en ;
    skos:definition """Structured metadata about the model distribution (optional
component for Class I). Provides machine-readable information about model
components, their locations and relationships."""@en ;
    skos:closeMatch bom:component-description ;
    skos:closeMatch bom:component-identifier .

mof:model-metadata bom:provisionType bom:Permission .
