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

# NTIA sub-vocabulary; imports the SBOM bridge ontology
<https://w3id.org/bom/req/ntia/>
    a owl:Ontology ;
    owl:imports <https://w3id.org/bom/> ;
    owl:versionInfo "0.1.0" ;
    dcterms:creator <https://orcid.org/0000-0002-9698-1899> .


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

ntia:scheme
    a skos:ConceptScheme, bom: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 "BOM-NTIA-DF-001"^^bom:SarifRuleId ;
    skos:exactMatch bom:component-supplier .

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

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

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

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

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

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


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

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