# NTIA SBOM Minimum Elements
# 'The Minimum Elements For a Software Bill of Materials (SBOM)'
# NTIA, November 2021
# Source: https://ntia.gov/sites/default/files/publications/sbom_minimum_elements_for_a_software_bill_of_materials.pdf

@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 ntia:   <https://w3id.org/sbom/req/ntia/> .
@prefix sbom:    <https://w3id.org/sbom/> .

# NTIA sub-vocabulary; imports the SBOM bridge ontology
<https://w3id.org/sbom/req/ntia/>
    a owl:Ontology ;
    owl:imports <https://w3id.org/sbom/> ;
    owl:versionInfo "0.1.0" .


# ============================================================================
# CONCEPT SCHEME AND DEFINITIONS
# ============================================================================

ntia:scheme
    a skos:ConceptScheme, sbom:InfoRequirementSpec ;
    skos:prefLabel "NTIA SBOM Minimum Elements"@en ;
    dcterms:title "NTIA SBOM Minimum Elements Concept Scheme" ;
    dcterms:creator "National Telecommunications and Information Administration (NTIA)" ;
    dcterms:issued "2021-11"^^xsd:gYearMonth ;
    dcterms:source <https://ntia.gov/sites/default/files/publications/sbom_minimum_elements_for_a_software_bill_of_materials.pdf> ;
    skos:hasTopConcept ntia:supplier , ntia:name , ntia:version ,
                       ntia:unique-identifier , ntia:dependency-relationship ,
                       ntia:author , ntia:timestamp .

ntia:supplier
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Supplier Name"@en ;
    skos:notation "SBOM-NTIA-DF-001"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:component-supplier .

ntia:name
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Component Name"@en ;
    skos:notation "SBOM-NTIA-DF-002"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:component-name .

ntia:version
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Version of the Component"@en ;
    skos:notation "SBOM-NTIA-DF-003"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:component-version .

ntia:unique-identifier
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Unique Identifier"@en ;
    skos:notation "SBOM-NTIA-DF-004"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:component-identifier .

ntia:dependency-relationship
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Dependency Relationship"@en ;
    skos:notation "SBOM-NTIA-DF-005"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:doc-dependency-relationship .

ntia:author
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Author of SBOM Data"@en ;
    skos:notation "SBOM-NTIA-DF-006"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:doc-author .

ntia:timestamp
    a skos:Concept ;
    skos:topConceptOf ntia:scheme ;
    skos:inScheme ntia:scheme ;
    skos:prefLabel "Timestamp"@en ;
    skos:notation "SBOM-NTIA-DF-007"^^sbom:SarifRuleId ;
    skos:exactMatch sbom:doc-timestamp .


# ============================================================================
# OBLIGATION ASSERTIONS
# ============================================================================

ntia:supplier               sbom:provisionType sbom:Requirement .
ntia:name                   sbom:provisionType sbom:Requirement .
ntia:version                sbom:provisionType sbom:Requirement .
ntia:unique-identifier      sbom:provisionType sbom:Requirement .
ntia:dependency-relationship sbom:provisionType sbom:Requirement .
ntia:author                 sbom:provisionType sbom:Requirement .
ntia:timestamp              sbom:provisionType sbom:Requirement .
