@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix omg-ann: <https://www.omg.org/spec/Commons/AnnotationVocabulary/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix spdx: <https://spdx.org/rdf/3/terms/> .
@prefix spdx-ai: <https://spdx.org/rdf/3/terms/AI/> .
@prefix spdx-build: <https://spdx.org/rdf/3/terms/Build/> .
@prefix spdx-core: <https://spdx.org/rdf/3/terms/Core/> .
@prefix spdx-dataset: <https://spdx.org/rdf/3/terms/Dataset/> .
@prefix spdx-expandedlicensing: <https://spdx.org/rdf/3/terms/ExpandedLicensing/> .
@prefix spdx-extension: <https://spdx.org/rdf/3/terms/Extension/> .
@prefix spdx-functionalsafety: <https://spdx.org/rdf/3/terms/FunctionalSafety/> .
@prefix spdx-hardware: <https://spdx.org/rdf/3/terms/Hardware/> .
@prefix spdx-licensing: <https://spdx.org/rdf/3/terms/Licensing/> .
@prefix spdx-lite: <https://spdx.org/rdf/3/terms/Lite/> .
@prefix spdx-operations: <https://spdx.org/rdf/3/terms/Operations/> .
@prefix spdx-security: <https://spdx.org/rdf/3/terms/Security/> .
@prefix spdx-service: <https://spdx.org/rdf/3/terms/Service/> .
@prefix spdx-simplelicensing: <https://spdx.org/rdf/3/terms/SimpleLicensing/> .
@prefix spdx-software: <https://spdx.org/rdf/3/terms/Software/> .
@prefix spdx-supplychain: <https://spdx.org/rdf/3/terms/SupplyChain/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

dcterms:abstract a owl:AnnotationProperty .

dcterms:creator a owl:AnnotationProperty .

dcterms:isReplacedBy a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

dcterms:references a owl:AnnotationProperty .

dcterms:title a owl:AnnotationProperty .

vann:example a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

skos:definition a owl:AnnotationProperty .

skos:note a owl:AnnotationProperty .

spdx: a owl:Ontology ;
    rdfs:label "System Package Data Exchange™ (SPDX®) Ontology"@en ;
    dcterms:abstract "This ontology defines the terms and relationships used in the SPDX specification to describe system packages"@en ;
    dcterms:creator "SPDX Project"@en ;
    dcterms:license <https://spdx.org/licenses/Community-Spec-1.0.html> ;
    dcterms:references <https://spdx.dev/specifications/> ;
    dcterms:title "System Package Data Exchange (SPDX) Ontology"@en ;
    vann:preferredNamespacePrefix "spdx" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/" ;
    omg-ann:copyright "Copyright (C) SPDX Project"@en .

spdx-core:NoAssertionElement a owl:NamedIndividual,
        spdx-core:IndividualElement ;
    rdfs:comment """An Individual Value for Element representing a set of Elements of unknown
identity or cardinality (number)."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition """An Individual Value for Element representing a set of Elements of unknown
identity or cardinality (number)."""@en ;
    spdx-core:creationInfo spdx:creationInfo_NoAssertionElement .

spdx-core:NoneElement a owl:NamedIndividual,
        spdx-core:IndividualElement ;
    rdfs:comment """An Individual Value for Element representing a set of Elements with
cardinality (number/count) of zero."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition """An Individual Value for Element representing a set of Elements with
cardinality (number/count) of zero."""@en ;
    spdx-core:creationInfo spdx:creationInfo_NoneElement .

spdx-expandedlicensing:NoAssertionLicense a owl:NamedIndividual,
        spdx-expandedlicensing:IndividualLicensingInfo ;
    rdfs:comment """An Individual Value for License when no assertion can be made about its actual
value."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    owl:sameAs spdx-licensing:NoAssertion ;
    skos:definition """An Individual Value for License when no assertion can be made about its actual
value."""@en ;
    spdx-core:creationInfo spdx:creationInfo_NoAssertionLicense .

spdx-expandedlicensing:NoneLicense a owl:NamedIndividual,
        spdx-expandedlicensing:IndividualLicensingInfo ;
    rdfs:comment """An Individual Value for License where the SPDX data creator determines that no
license is present."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    owl:sameAs spdx-licensing:None ;
    skos:definition """An Individual Value for License where the SPDX data creator determines that no
license is present."""@en ;
    spdx-core:creationInfo spdx:creationInfo_NoneLicense .

spdx-hardware:mass a owl:DatatypeProperty ;
    rdfs:label "mass"@en ;
    rdfs:comment "Information related to physical hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range xsd:decimal ;
    skos:definition "Information related to physical hardware."@en ;
    skos:note "Mass is defined as an intrinsic property of a body for describing a physical hardware component."@en .

spdx-licensing: vann:preferredNamespacePrefix "spdx-licensing" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Licensing/" .

spdx-lite: vann:preferredNamespacePrefix "spdx-lite" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Lite/" .

spdx-operations:exportControlClassificationResult a owl:DatatypeProperty ;
    rdfs:label "exportControlClassificationResult"@en ;
    rdfs:comment "Provides the result of an export control assessment."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-operations:ExportControlClassification ;
    skos:definition "Provides the result of an export control assessment."@en ;
    skos:note "Provides the result of an export control assessment."@en .

omg-ann:copyright a owl:AnnotationProperty .

spdx-ai:AIPackage a owl:Class,
        sh:NodeShape ;
    rdfs:label "AIPackage"@en ;
    rdfs:comment "A Package that contains AI software or an AI model."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:subClassOf spdx-software:Package ;
    skos:definition "A Package that contains AI software or an AI model."@en ;
    skos:note """A Package that contains code or a model that provides
artificial intelligence capabilities."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-ai:limitation ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:metric ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:hyperparameter ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-ai:informationAboutTraining ],
        [ sh:class spdx-ai:EnergyConsumption ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:energyConsumption ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/PresenceType/yes> <https://spdx.org/rdf/3/terms/Core/PresenceType/no> <https://spdx.org/rdf/3/terms/Core/PresenceType/noAssertion> ) ;
            sh:maxCount 1 ;
            sh:path spdx-ai:autonomyType ],
        [ sh:datatype xsd:string ;
            sh:path spdx-ai:typeOfModel ],
        [ sh:datatype xsd:string ;
            sh:path spdx-ai:standardCompliance ],
        [ sh:datatype xsd:string ;
            sh:path spdx-ai:modelDataPreprocessing ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/PresenceType/yes> <https://spdx.org/rdf/3/terms/Core/PresenceType/no> <https://spdx.org/rdf/3/terms/Core/PresenceType/noAssertion> ) ;
            sh:maxCount 1 ;
            sh:path spdx-ai:useSensitivePersonalInformation ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/serious> <https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/high> <https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/medium> <https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/low> ) ;
            sh:maxCount 1 ;
            sh:path spdx-ai:safetyRiskAssessment ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:metricDecisionThreshold ],
        [ sh:datatype xsd:string ;
            sh:path spdx-ai:domain ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-ai:informationAboutApplication ],
        [ sh:datatype xsd:string ;
            sh:path spdx-ai:modelExplainability ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/autonomous> <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/fullAutomation> <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/highAutomation> <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/conditionalAutomation> <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/partialAutomation> <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/assistiveAutomation> <https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/notAutomated> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:isoAutomationLevel ] .

<https://spdx.org/rdf/3/terms/AI/EnergyUnitType/kilowattHour> a owl:NamedIndividual,
        spdx-ai:EnergyUnitType ;
    rdfs:label "kilowattHour"@en ;
    rdfs:comment "Kilowatt-hour."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "Kilowatt-hour."@en .

<https://spdx.org/rdf/3/terms/AI/EnergyUnitType/megajoule> a owl:NamedIndividual,
        spdx-ai:EnergyUnitType ;
    rdfs:label "megajoule"@en ;
    rdfs:comment "Megajoule."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "Megajoule."@en .

<https://spdx.org/rdf/3/terms/AI/EnergyUnitType/other> a owl:NamedIndividual,
        spdx-ai:EnergyUnitType ;
    rdfs:label "other"@en ;
    rdfs:comment "Any other units of energy measurement."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "Any other units of energy measurement."@en .

<https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/high> a owl:NamedIndividual,
        spdx-ai:SafetyRiskAssessmentType ;
    rdfs:label "high"@en ;
    rdfs:comment "The second-highest level of risk posed by an AI system."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "The second-highest level of risk posed by an AI system."@en .

<https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/low> a owl:NamedIndividual,
        spdx-ai:SafetyRiskAssessmentType ;
    rdfs:label "low"@en ;
    rdfs:comment "Low/no risk is posed by an AI system."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "Low/no risk is posed by an AI system."@en .

<https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/medium> a owl:NamedIndividual,
        spdx-ai:SafetyRiskAssessmentType ;
    rdfs:label "medium"@en ;
    rdfs:comment "The third-highest level of risk posed by an AI system."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "The third-highest level of risk posed by an AI system."@en .

<https://spdx.org/rdf/3/terms/AI/SafetyRiskAssessmentType/serious> a owl:NamedIndividual,
        spdx-ai:SafetyRiskAssessmentType ;
    rdfs:label "serious"@en ;
    rdfs:comment "The highest level of risk posed by an AI system."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "The highest level of risk posed by an AI system."@en .

spdx-ai:autonomyType a owl:ObjectProperty ;
    rdfs:label "autonomyType"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use /Core/isoAutomationLevel
instead.

Indicates whether the system can perform a decision or action without human
involvement or guidance."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-core:PresenceType ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use /Core/isoAutomationLevel
instead.

Indicates whether the system can perform a decision or action without human
involvement or guidance."""@en ;
    skos:note """**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use
/Core/isoAutomationLevel
instead.

Indicates if the system is fully automated or a human is involved in any of the
decisions of the AI system.

- yes: Indicates that the system is fully automated.
- no: Indicates that a human is involved in any of the decisions of the AI
  system.
- noAssertion: Makes no assertion about the autonomy."""@en .

spdx-ai:domain a owl:DatatypeProperty ;
    rdfs:label "domain"@en ;
    rdfs:comment "Domain in which the AI package can be used."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Domain in which the AI package can be used."@en ;
    skos:note """A free-form text that describes the domain where the AI model contained in the
AI software can be expected to operate successfully.

Examples include computer vision, natural language processing, etc."""@en .

spdx-ai:energyConsumption a owl:ObjectProperty ;
    rdfs:label "energyConsumption"@en ;
    rdfs:comment "Energy consumption incurred by an AI model."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-ai:EnergyConsumption ;
    skos:definition "Energy consumption incurred by an AI model."@en ;
    skos:note """Energy consumption of an AI model, either known or estimated.

In the absence of direct measurements, an SPDX data creator may choose to
estimate the energy consumption based on information about computational
resources (e.g., number of floating-point operations), training time, and other
relevant training details."""@en .

spdx-ai:energyQuantity a owl:DatatypeProperty ;
    rdfs:label "energyQuantity"@en ;
    rdfs:comment "Energy quantity."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:decimal ;
    skos:definition "Energy quantity."@en ;
    skos:note "Provides the quantity information of the energy."@en .

spdx-ai:energyUnit a owl:ObjectProperty ;
    rdfs:label "energyUnit"@en ;
    rdfs:comment "Unit in which energy is measured."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-ai:EnergyUnitType ;
    skos:definition "Unit in which energy is measured."@en ;
    skos:note "Provides the unit information of the energy."@en .

spdx-ai:finetuningEnergyConsumption a owl:ObjectProperty ;
    rdfs:label "finetuningEnergyConsumption"@en ;
    rdfs:comment """Energy consumed when finetuning the AI model that is
being used in the AI system."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-ai:EnergyConsumptionDescription ;
    skos:definition """Energy consumed when finetuning the AI model that is
being used in the AI system."""@en ;
    skos:note """The field specifies the amount of energy consumed when finetuning the AI model
that is being used in the AI system."""@en .

spdx-ai:hyperparameter a owl:ObjectProperty ;
    rdfs:label "hyperparameter"@en ;
    rdfs:comment "Hyperparameter used to build the AI model contained in the AI package."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Hyperparameter used to build the AI model contained in the AI package."@en ;
    skos:note """Records a hyperparameter value.

Hyperparameters are settings defined before the training process that control
the learning algorithm's behavior. They differ from model parameters,
which are learned from the data during training. Developers typically set
hyperparameters manually or through a process of hyperparameter tuning
(also known as trial and error).

Examples of hyperparameters include learning rate, batch size, and the number
of layers in a neural network."""@en .

spdx-ai:inferenceEnergyConsumption a owl:ObjectProperty ;
    rdfs:label "inferenceEnergyConsumption"@en ;
    rdfs:comment """Energy consumed during inference time by an AI model
that is being used in the AI system."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-ai:EnergyConsumptionDescription ;
    skos:definition """Energy consumed during inference time by an AI model
that is being used in the AI system."""@en ;
    skos:note """The field specifies the amount of energy consumed during inference time by an
AI model that is being used in the AI system."""@en .

spdx-ai:informationAboutApplication a owl:DatatypeProperty ;
    rdfs:label "informationAboutApplication"@en ;
    rdfs:comment "Information about the AI software, not including the model description."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Information about the AI software, not including the model description."@en ;
    skos:note """A free-form text description of how the AI model is used within the software.

It should include any relevant information, such as pre-processing steps,
third-party APIs, and other pertinent details.

It can also include:

- Functionality provided by the AI model within the software application,
  including: any specific tasks or decisions it is designed to perform;
  any pre-processing steps that are applied to the input data before it is
  fed into the AI model for inference, such as data cleaning, normalization,
  or feature extraction;
  and any third-party APIs or services that are used in conjunction with
  the AI model, such as data sources, cloud services, or other AI models.
- Description of any dependencies or requirements needed to run the AI model
  within the software application, including: specific hardware,
  software libraries, and operating systems."""@en .

spdx-ai:informationAboutTraining a owl:DatatypeProperty ;
    rdfs:label "informationAboutTraining"@en ;
    rdfs:comment "Information about different steps of the training process."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Information about different steps of the training process."@en ;
    skos:note """A detailed explanation of the training process,
including the specific techniques, algorithms, and methods employed.

Examples include:

- training data used to train the AI model, along with any relevant details
  about its source, quality, and pre-processing steps;
- specific training algorithms employed, including stochastic gradient descent,
  backpropagation, and reinforcement learning;
- specific training techniques used to improve the performance or accuracy
  of the AI model, such as transfer learning, fine-tuning, or active learning;
  and
- any evaluation metrics used to assess the performance of the AI model
  during the training process, including accuracy, precision, recall, and F1
  score."""@en .

spdx-ai:limitation a owl:DatatypeProperty ;
    rdfs:label "limitation"@en ;
    rdfs:comment "Limitation of the AI software."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Limitation of the AI software."@en ;
    skos:note """A free-form text that captures a limitation of the AI package
(or of the AI models present in the AI package).

Note that this is not guaranteed to be exhaustive.

For instance, a limitation can be that the AI package is having poor accuracy
for a certain demography."""@en .

spdx-ai:metric a owl:ObjectProperty ;
    rdfs:label "metric"@en ;
    rdfs:comment "Metric used to evaluate the AI model."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Metric used to evaluate the AI model."@en ;
    skos:note """Metric used to evaluate the AI model.

This makes statements about the prediction quality including uncertainty,
accuracy, characteristics of the tested population, quality, fairness,
explainability, robustness etc."""@en .

spdx-ai:metricDecisionThreshold a owl:ObjectProperty ;
    rdfs:label "metricDecisionThreshold"@en ;
    rdfs:comment """Threshold that was used for computation of a metric described in
the metric field."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition """Threshold that was used for computation of a metric described in
the metric field."""@en ;
    skos:note """Each metric can be computed based on a decision threshold.

For instance, precision or recall is typically computed by checking if the
probability of the outcome is larger than 0.5.

Each decision threshold shall match with a metric field defined in the AI
package."""@en .

spdx-ai:modelDataPreprocessing a owl:DatatypeProperty ;
    rdfs:label "modelDataPreprocessing"@en ;
    rdfs:comment "Preprocessing steps applied to the training data before the model training."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Preprocessing steps applied to the training data before the model training."@en ;
    skos:note """A free-form text that describes the preprocessing steps applied to the training
data before training of the model(s) contained in the AI software."""@en .

spdx-ai:modelExplainability a owl:DatatypeProperty ;
    rdfs:label "modelExplainability"@en ;
    rdfs:comment "Methods that can be used to explain the results from the AI model."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Methods that can be used to explain the results from the AI model."@en ;
    skos:note """A free-form text that lists the different explainability mechanisms and how
they can be used to explain the results from the AI model.

The mechanisms can be model-agnostic methods, such as
SHapley Additive exPlanations (SHAP) <https://shap.readthedocs.io/> and
Local Interpretable Model-agnostic Explanations (LIME) <https://github.com/marcotcr/lime>,
and model-specific methods that applied to a limited category of models."""@en .

spdx-ai:safetyRiskAssessment a owl:ObjectProperty ;
    rdfs:label "safetyRiskAssessment"@en ;
    rdfs:comment "Results of general safety risk assessment of the AI system."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-ai:SafetyRiskAssessmentType ;
    skos:definition "Results of general safety risk assessment of the AI system."@en ;
    skos:note """Results of general safety risk assessment of the AI system.

Using categorization according to the
EU general risk assessment methodology <https://ec.europa.eu/docsroom/documents/17107>.
The methodology implements Article 20 of Regulation (EC) No 765/2008 and is
intended to assist authorities when they assess general product safety
compliance.

It is important to note that this categorization differs from the one proposed
in the EU AI Act's provisional agreement."""@en .

spdx-ai:standardCompliance a owl:DatatypeProperty ;
    rdfs:label "standardCompliance"@en ;
    rdfs:comment "A standard with which the artifact complies."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "A standard with which the artifact complies."@en ;
    skos:note """A free-form textual description that captures a standard with which the
artifact complies.

The standard may, but is not necessarily required to, satisfy a legal or
regulatory requirement.

If the artifact is using a standard as a reference or guideline, but not
necessarily compliant with it, use the /Core/standardName property instead.

For a detailed compliance information, please consider defining
a /Core/Relationship with "conformsTo" relationship type to
a /Core/Regulation."""@en .

spdx-ai:trainingEnergyConsumption a owl:ObjectProperty ;
    rdfs:label "trainingEnergyConsumption"@en ;
    rdfs:comment """Energy consumed when training the AI model that is
being used in the AI system."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-ai:EnergyConsumptionDescription ;
    skos:definition """Energy consumed when training the AI model that is
being used in the AI system."""@en ;
    skos:note """The field specifies the amount of energy consumed when training the AI model
that is being used in the AI system."""@en .

spdx-ai:typeOfModel a owl:DatatypeProperty ;
    rdfs:label "typeOfModel"@en ;
    rdfs:comment "Type of the model used in the AI software."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range xsd:string ;
    skos:definition "Type of the model used in the AI software."@en ;
    skos:note """A free-form text that records the type of the AI model(s) used in the software.

For instance, if it is a supervised model, unsupervised model, reinforcement
learning model or a combination of those."""@en .

spdx-ai:useSensitivePersonalInformation a owl:ObjectProperty ;
    rdfs:label "useSensitivePersonalInformation"@en ;
    rdfs:comment """Records if sensitive personal information is used during model training or
could be used during the inference."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    rdfs:range spdx-core:PresenceType ;
    skos:definition """Records if sensitive personal information is used during model training or
could be used during the inference."""@en ;
    skos:note """Notes if sensitive personal information is used in the training or inference of
the AI models.

This can include biometric data, addresses or other data that can be used to
infer a person's identity.

Related: hasSensitivePersonalInformation in /Dataset/DatasetPackage"""@en .

spdx-build:buildEndTime a owl:DatatypeProperty ;
    rdfs:label "buildEndTime"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use /Core/endTime instead.

Property that describes the time at which a build stops."""@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use /Core/endTime instead.

Property that describes the time at which a build stops."""@en ;
    skos:note """**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use
/Core/endTime
instead.

buildEndTime describes the time at which a build stops or finishes.

This value is typically recorded by the builder."""@en .

spdx-build:buildId a owl:DatatypeProperty ;
    rdfs:label "buildId"@en ;
    rdfs:comment """A buildId is a locally unique identifier used by a builder to identify a unique
instance of a build produced by it."""@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range xsd:string ;
    skos:definition """A buildId is a locally unique identifier used by a builder to identify a unique
instance of a build produced by it."""@en ;
    skos:note """A buildId is a locally unique identifier to identify a unique instance of a
build, according to the buildType.

This identifier differs based on build toolchain, platform, or naming
convention used by an organization or standard."""@en .

spdx-build:buildStartTime a owl:DatatypeProperty ;
    rdfs:label "buildStartTime"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use /Core/startTime instead.

Property describing the start time of a build."""@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use /Core/startTime instead.

Property describing the start time of a build."""@en ;
    skos:note """**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use
/Core/startTime
instead.

buildStartTime is the time at which a build is triggered.

The builder typically records this value."""@en .

spdx-build:buildType a owl:DatatypeProperty ;
    rdfs:label "buildType"@en ;
    rdfs:comment """A buildType is a hint that is used to indicate the toolchain, platform, or
infrastructure that the build was invoked on."""@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range xsd:anyURI ;
    skos:definition """A buildType is a hint that is used to indicate the toolchain, platform, or
infrastructure that the build was invoked on."""@en ;
    skos:note """A buildType is an IRI expressing the toolchain, platform, or infrastructure that
the build was invoked on.

The buildType is used to interpret the meaning of other build parameters by
defining the "type" of build; if the same buildType is seen in different Build
elements, it means they are the same kind of build, but difference instances
and possible with different configurations.

If you are not using a well-known buildType, it should be namespaced to a
domain you own to prevent conflicts with other buildType IRIs.

Examples of a buildType can be:

- A GitHub action workflow
- A step in a GitHub actions pipeline
- An invocation of a compiler or other tool
- A script that orchestrates builds at a higher level

Keep in mind that builds can be "nested" using the ancestorOf relationship.

If the buildType IRI is not recognized, it is still possible to inspect other
properties of the build, but it may not be possible to derive deeper meaning
from them.

For more information, see the SLSA definition of buildType."""@en .

spdx-build:configSourceDigest a owl:ObjectProperty ;
    rdfs:label "configSourceDigest"@en ;
    rdfs:comment """Property that describes the digest of the build configuration file used to
invoke a build."""@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range spdx-core:Hash ;
    skos:definition """Property that describes the digest of the build configuration file used to
invoke a build."""@en ;
    skos:note """configSourceDigest is the checksum of the build configuration file used by a
builder to execute a build, according to the buildType.

This property uses the Core model's Hash class."""@en .

spdx-build:configSourceEntrypoint a owl:DatatypeProperty ;
    rdfs:label "configSourceEntrypoint"@en ;
    rdfs:comment "Property describes the invocation entrypoint of a build."@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range xsd:string ;
    skos:definition "Property describes the invocation entrypoint of a build."@en ;
    skos:note """A build entrypoint is the invoked executable of a build which always runs when
the build is triggered, according to the buildType.

For example, when a build is triggered by running a shell script, the
entrypoint is script.sh.

In terms of a declared build, the entrypoint is the position in a configuration
file or a build declaration which is always run when the build is triggered.

For example, in the following configuration file, the entrypoint of the build
is publish.

name: Publish packages to PyPI

on:
  create:
    tags: "*"

jobs:
  publish:
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/')
    steps:

..."""@en .

spdx-build:configSourceUri a owl:DatatypeProperty ;
    rdfs:label "configSourceUri"@en ;
    rdfs:comment "Property that describes the URI of the build configuration source file."@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Property that describes the URI of the build configuration source file."@en ;
    skos:note """If a build configuration exists for the toolchain or platform performing the
build, the configSourceUri of a build is the URI of that build configuration,
according to the buildType.

For example, a build triggered by a GitHub Action is defined by a build
configuration YAML file. In this case, the configSourceUri is the URL of that
YAML file."""@en .

spdx-build:environment a owl:ObjectProperty ;
    rdfs:label "environment"@en ;
    rdfs:comment "Property describing the session in which a build is invoked."@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Property describing the session in which a build is invoked."@en ;
    skos:note """environment is a map of environment variables and values that are set during a
build session, according to the buildType.

This is different from the parameter property in that it
describes the environment variables set before a build is invoked rather than
the variables provided to the builder."""@en .

spdx-build:parameter a owl:ObjectProperty ;
    rdfs:label "parameter"@en ;
    rdfs:comment "Property describing a parameter used in an instance of a build."@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Property describing a parameter used in an instance of a build."@en ;
    skos:note """parameter is a key-value of a build parameter and its value that
was provided to the builder for a build instance, according to the buildType.

This is different from the environment property in that
the key and value are provided as command line arguments or
a configuration file to the builder."""@en .

<https://spdx.org/rdf/3/terms/Core/AnnotationType/other> a owl:NamedIndividual,
        spdx-core:AnnotationType ;
    rdfs:label "other"@en ;
    rdfs:comment "Used to store extra information about an Element which is not part of a review (e.g. extra information provided during the creation of the Element)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Used to store extra information about an Element which is not part of a review (e.g. extra information provided during the creation of the Element)."@en .

<https://spdx.org/rdf/3/terms/Core/AnnotationType/review> a owl:NamedIndividual,
        spdx-core:AnnotationType ;
    rdfs:label "review"@en ;
    rdfs:comment "Used when someone reviews the Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Used when someone reviews the Element."@en .

<https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/compliance> a owl:NamedIndividual,
        spdx-core:ContactPointRelationshipType ;
    rdfs:label "compliance"@en ;
    rdfs:comment "A contact point for compliance (i.e. export control, licensing)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A contact point for compliance (i.e. export control, licensing)."@en .

<https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/other> a owl:NamedIndividual,
        spdx-core:ContactPointRelationshipType ;
    rdfs:label "other"@en ;
    rdfs:comment "A generic contact point to be used when the contact type does not match any of the other options."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A generic contact point to be used when the contact type does not match any of the other options."@en .

<https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/securityVulnerability> a owl:NamedIndividual,
        spdx-core:ContactPointRelationshipType ;
    rdfs:label "securityVulnerability"@en ;
    rdfs:comment "A contact for reporting security vulnerabilities."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A contact for reporting security vulnerabilities."@en .

<https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/support> a owl:NamedIndividual,
        spdx-core:ContactPointRelationshipType ;
    rdfs:label "support"@en ;
    rdfs:comment "A contact point for support."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A contact point for support."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ark> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "ark"@en ;
    rdfs:comment "Archival Resource Key (ARK) <https://arks.org/about/>, is a Uniform Resource Identifier (URI) suited to being a persistent identifier for information objects of any type, standardized by the ARK Identifier Scheme <https://datatracker.ietf.org/doc/draft-kunze-ark/> Internet-Draft. It consists of the \"ark:\" label followed by a Name Assigning Authority Number, a forward slash, a name, and an optional qualifier (e.g., ark:12148/btv1b8449691v/f29)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Archival Resource Key (ARK) <https://arks.org/about/>, is a Uniform Resource Identifier (URI) suited to being a persistent identifier for information objects of any type, standardized by the ARK Identifier Scheme <https://datatracker.ietf.org/doc/draft-kunze-ark/> Internet-Draft. It consists of the \"ark:\" label followed by a Name Assigning Authority Number, a forward slash, a name, and an optional qualifier (e.g., ark:12148/btv1b8449691v/f29)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/bic> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "bic"@en ;
    rdfs:comment "Business Identifier Code (BIC), also known as SWIFT-BIC or SWIFT code, is a unique 8 or 11-character alphanumeric code standardized by ISO 9362 <https://www.iso.org/standard/84108.html> to identify financial and non-financial institutions (e.g., BBWCUS33)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Business Identifier Code (BIC), also known as SWIFT-BIC or SWIFT code, is a unique 8 or 11-character alphanumeric code standardized by ISO 9362 <https://www.iso.org/standard/84108.html> to identify financial and non-financial institutions (e.g., BBWCUS33)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/cpe22> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "cpe22"@en ;
    rdfs:comment "Common Platform Enumeration Specification 2.2 <https://cpe.mitre.org/files/cpe-specification_2.2.pdf>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Common Platform Enumeration Specification 2.2 <https://cpe.mitre.org/files/cpe-specification_2.2.pdf>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/cpe23> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "cpe23"@en ;
    rdfs:comment "Common Platform Enumeration: Naming Specification Version 2.3 <https://csrc.nist.gov/publications/detail/nistir/7695/final>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Common Platform Enumeration: Naming Specification Version 2.3 <https://csrc.nist.gov/publications/detail/nistir/7695/final>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/cve> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "cve"@en ;
    rdfs:comment "Common Vulnerabilities and Exposures identifiers, an identifier for a specific software flaw defined within the official CVE Dictionary and that conforms to the CVE specification <https://csrc.nist.gov/glossary/term/cve_id>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Common Vulnerabilities and Exposures identifiers, an identifier for a specific software flaw defined within the official CVE Dictionary and that conforms to the CVE specification <https://csrc.nist.gov/glossary/term/cve_id>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/doi> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "doi"@en ;
    rdfs:comment "Digital Object Identifier (DOI) <https://www.doi.org/the-identifier/what-is-a-doi/> is a unique, ISO 26324 <https://www.iso.org/standard/88862.html>-standardized identifier for physical, digital, or abstract objects, formatted as a prefix and suffix separated by a forward slash (e.g., 10.1000/182)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Digital Object Identifier (DOI) <https://www.doi.org/the-identifier/what-is-a-doi/> is a unique, ISO 26324 <https://www.iso.org/standard/88862.html>-standardized identifier for physical, digital, or abstract objects, formatted as a prefix and suffix separated by a forward slash (e.g., 10.1000/182)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/duns> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "duns"@en ;
    rdfs:comment "Data Universal Numbering System (D-U-N-S) Number <https://www.dnb.com/en-us/smb/duns.html> is a unique nine-digit identifier, issued by Dun & Bradstreet, that identifies a business entity, often on a location-specific basis."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Data Universal Numbering System (D-U-N-S) Number <https://www.dnb.com/en-us/smb/duns.html> is a unique nine-digit identifier, issued by Dun & Bradstreet, that identifies a business entity, often on a location-specific basis."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ecli> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "ecli"@en ;
    rdfs:comment "European Case Law Identifier (ECLI) <https://data.europa.eu/data/datasets/european-case-law-identifier-ecli> is a uniform identifier for judicial decisions across Europe. It consists of five mandatory components: the \"ECLI\" prefix, a country code, a court code, the year of the decision, and a unique serial number (e.g., ECLI:EU:C:2023:94)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "European Case Law Identifier (ECLI) <https://data.europa.eu/data/datasets/european-case-law-identifier-ecli> is a uniform identifier for judicial decisions across Europe. It consists of five mandatory components: the \"ECLI\" prefix, a country code, a court code, the year of the decision, and a unique serial number (e.g., ECLI:EU:C:2023:94)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/eli> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "eli"@en ;
    rdfs:comment "European Legislation Identifier (ELI) <https://eur-lex.europa.eu/content/help/eurlex-content/eli.html> is a Uniform Resource Identifier (URI) that uniquely identifies a legal resource, typically consisting of a document type, adoption year, and document number (e.g., http://data.europa.eu/eli/reg/2024/2847/oj)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "European Legislation Identifier (ELI) <https://eur-lex.europa.eu/content/help/eurlex-content/eli.html> is a Uniform Resource Identifier (URI) that uniquely identifies a legal resource, typically consisting of a document type, adoption year, and document number (e.g., http://data.europa.eu/eli/reg/2024/2847/oj)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/email> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "email"@en ;
    rdfs:comment "Email address, as defined in RFC 3696 <https://datatracker.ietf.org/doc/rfc3696/> Section 3."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Email address, as defined in RFC 3696 <https://datatracker.ietf.org/doc/rfc3696/> Section 3."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/eori> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "eori"@en ;
    rdfs:comment "Economic Operators Registration and Identification (EORI) number <https://taxation-customs.ec.europa.eu/customs/customs-procedures-import-and-export/customs-operations/economic-operators-registration-and-identification-number-eori_en> is a unique identifier for businesses undertaking customs operations across European Union customs territory, such as import, export, and transit. It consists of an ISO 3166-1 alpha-2 country code followed by a national identifier of up to 15 alphanumeric characters (e.g., PL1234567890ABCDE)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Economic Operators Registration and Identification (EORI) number <https://taxation-customs.ec.europa.eu/customs/customs-procedures-import-and-export/customs-operations/economic-operators-registration-and-identification-number-eori_en> is a unique identifier for businesses undertaking customs operations across European Union customs territory, such as import, export, and transit. It consists of an ISO 3166-1 alpha-2 country code followed by a national identifier of up to 15 alphanumeric characters (e.g., PL1234567890ABCDE)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/evidenceUID> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "evidenceUID"@en ;
    rdfs:comment "The unique identifier used by a reporting management system or any other lifecycle management tool to uniquely identify an evidence relationship item."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The unique identifier used by a reporting management system or any other lifecycle management tool to uniquely identify an evidence relationship item."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/gitoid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "gitoid"@en ;
    rdfs:comment "Gitoid <https://www.iana.org/assignments/uri-schemes/prov/gitoid>, stands for Git Object ID <https://git-scm.com/book/en/v2/Git-Internals-Git-Objects>. A gitoid of type blob is a unique hash of a binary artifact. A gitoid may represent either an Artifact Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-identifier-types> for the software artifact or an Input Manifest Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#input-manifest-identifier> for the software artifact's associated Artifact Input Manifest <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-input-manifest>; this ambiguity exists because the Artifact Input Manifest is itself an artifact, and the gitoid of that artifact is its valid identifier. Gitoids calculated on software artifacts (Snippet, File, or Package Elements) should be recorded in the SPDX 3 SoftwareArtifact's contentIdentifier property. Gitoids calculated on the Artifact Input Manifest (Input Manifest Identifier) should be recorded in the SPDX 3 Element's externalIdentifier property. See OmniBOR Specification <https://github.com/omnibor/spec/>, a minimalistic specification for describing software Artifact Dependency Graphs <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-dependency-graph-adg>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Gitoid <https://www.iana.org/assignments/uri-schemes/prov/gitoid>, stands for Git Object ID <https://git-scm.com/book/en/v2/Git-Internals-Git-Objects>. A gitoid of type blob is a unique hash of a binary artifact. A gitoid may represent either an Artifact Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-identifier-types> for the software artifact or an Input Manifest Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#input-manifest-identifier> for the software artifact's associated Artifact Input Manifest <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-input-manifest>; this ambiguity exists because the Artifact Input Manifest is itself an artifact, and the gitoid of that artifact is its valid identifier. Gitoids calculated on software artifacts (Snippet, File, or Package Elements) should be recorded in the SPDX 3 SoftwareArtifact's contentIdentifier property. Gitoids calculated on the Artifact Input Manifest (Input Manifest Identifier) should be recorded in the SPDX 3 Element's externalIdentifier property. See OmniBOR Specification <https://github.com/omnibor/spec/>, a minimalistic specification for describing software Artifact Dependency Graphs <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-dependency-graph-adg>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/gln> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "gln"@en ;
    rdfs:comment "Global Location Number (GLN) <https://www.gs1.org/standards/id-keys/gln> is a 13-digit number, assigned by GS1, that uniquely identifies a legal entity (e.g., a company or customer), a function within a legal entity, a physical location (e.g., a warehouse or a specific shelf in a store), or a digital location (e.g., an Electronic Data Interchange (EDI) gateway)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Global Location Number (GLN) <https://www.gs1.org/standards/id-keys/gln> is a 13-digit number, assigned by GS1, that uniquely identifies a legal entity (e.g., a company or customer), a function within a legal entity, a physical location (e.g., a warehouse or a specific shelf in a store), or a digital location (e.g., an Electronic Data Interchange (EDI) gateway)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/glue> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "glue"@en ;
    rdfs:comment "GLobal Unique Enterprise (GLUE) Identifiers <https://datatracker.ietf.org/doc/draft-ietf-spice-glue-id/>, as defined by the IETF Internet-Draft, is expressed as a GLUE URI, a Uniform Resource Identifier that standardizes the representation of existing organizational entity identifiers."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "GLobal Unique Enterprise (GLUE) Identifiers <https://datatracker.ietf.org/doc/draft-ietf-spice-glue-id/>, as defined by the IETF Internet-Draft, is expressed as a GLUE URI, a Uniform Resource Identifier that standardizes the representation of existing organizational entity identifiers."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/gtin> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "gtin"@en ;
    rdfs:comment "Global Trade Item Number (GTIN) <https://www.gs1.org/standards/id-keys/gtin> is a number, assigned by GS1, that uniquely identifies a trade item (product or service)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Global Trade Item Number (GTIN) <https://www.gs1.org/standards/id-keys/gtin> is a number, assigned by GS1, that uniquely identifies a trade item (product or service)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/hsCodes> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "hsCodes"@en ;
    rdfs:comment "The Harmonized System (HS) <https://www.wcoomd.org/en/topics/nomenclature/overview/what-is-the-harmonized-system.aspx> of tariff nomenclature is an internationally standardized system of names and numbers, defined by the World Customs Organization, used to classify traded products."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The Harmonized System (HS) <https://www.wcoomd.org/en/topics/nomenclature/overview/what-is-the-harmonized-system.aspx> of tariff nomenclature is an internationally standardized system of names and numbers, defined by the World Customs Organization, used to classify traded products."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/iban> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "iban"@en ;
    rdfs:comment "International Bank Account Number (IBAN) is a system for identifying bank accounts across national borders standardized by ISO 13616 <https://www.iso.org/standard/81090.html>. It consists of up to 34 alphanumeric characters, including a country code, two check digits, and a basic bank account number. While spaces may be inserted for human readability, they must be omitted when used for electronic data exchange (e.g., IE64IRCE92050112345678)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Bank Account Number (IBAN) is a system for identifying bank accounts across national borders standardized by ISO 13616 <https://www.iso.org/standard/81090.html>. It consists of up to 34 alphanumeric characters, including a country code, two check digits, and a basic bank account number. While spaces may be inserted for human readability, they must be omitted when used for electronic data exchange (e.g., IE64IRCE92050112345678)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ibid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "ibid"@en ;
    rdfs:comment "International Business Identifier (IBID) <https://ekys.org/business_identifiers/> is a verifiable unique identifier for legal entities as defined in the ISO/DIS 25500-3 <https://www.iso.org/standard/87705.html> draft standard. It is composed of three data elements: the International Business Registration Number (IBRN), the legal name, and the date of origin formatted as eight numeric characters (YYYYMMDD). Each element is separated by a pipe character (|) (e.g., US-DE.BER:3031657|Code Management Association|19990420)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Business Identifier (IBID) <https://ekys.org/business_identifiers/> is a verifiable unique identifier for legal entities as defined in the ISO/DIS 25500-3 <https://www.iso.org/standard/87705.html> draft standard. It is composed of three data elements: the International Business Registration Number (IBRN), the legal name, and the date of origin formatted as eight numeric characters (YYYYMMDD). Each element is separated by a pipe character (|) (e.g., US-DE.BER:3031657|Code Management Association|19990420)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ibrn> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "ibrn"@en ;
    rdfs:comment "International Business Registration Number (IBRN) <https://ekys.org/business_identifiers/> is a unique identifier for legal entities standardized by ISO 8000-116 <https://www.iso.org/standard/75117.html>. It is composed of two parts: a jurisdiction prefix and a local authoritative legal entity identifier (ALEI), separated by a colon. The prefix contains an ISO 3166 country code, an optional subdivision code, and a register code (e.g., US-DE.BER:3031657)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Business Registration Number (IBRN) <https://ekys.org/business_identifiers/> is a unique identifier for legal entities standardized by ISO 8000-116 <https://www.iso.org/standard/75117.html>. It is composed of two parts: a jurisdiction prefix and a local authoritative legal entity identifier (ALEI), separated by a colon. The prefix contains an ISO 3166 country code, an optional subdivision code, and a register code (e.g., US-DE.BER:3031657)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isan> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "isan"@en ;
    rdfs:comment "International Standard Audiovisual Number (ISAN) <https://www.isan.org/about/#what_is_isan> is a unique 24-digit hexadecimal identifier for audiovisual works standardized by ISO 15706 <https://www.iso.org/standard/83124.html>. The ISAN remains persistent for a work regardless of its distribution format or its use. To facilitate human readability, the \"ISAN\" label, grouping hyphens, and two check characters are included (e.g., ISAN 0000-0000-3A8D-0000-Z-0000-0000-6); however, these elements shall be omitted when the identifier is stored electronically (e.g., 000000003A8D000000000000)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Audiovisual Number (ISAN) <https://www.isan.org/about/#what_is_isan> is a unique 24-digit hexadecimal identifier for audiovisual works standardized by ISO 15706 <https://www.iso.org/standard/83124.html>. The ISAN remains persistent for a work regardless of its distribution format or its use. To facilitate human readability, the \"ISAN\" label, grouping hyphens, and two check characters are included (e.g., ISAN 0000-0000-3A8D-0000-Z-0000-0000-6); however, these elements shall be omitted when the identifier is stored electronically (e.g., 000000003A8D000000000000)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isbn> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "isbn"@en ;
    rdfs:comment "International Standard Book Number (ISBN) <https://www.isbn-international.org/content/isbn-users-manual/29> is a unique numeric identifier for monographic publications standardized by ISO 2108 <https://www.iso.org/standard/65483.html>. It consists of either 10 digits (for assignments prior to January 1, 2007) or 13 digits. A 13-digit ISBN is composed of five parts: a GS1 prefix, a registration group, a registrant, a publication element, and a check digit. While elements may be divided by spaces or hyphens for human readability, these separators shall be omitted when the identifier is stored electronically (e.g., 9780198836063)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Book Number (ISBN) <https://www.isbn-international.org/content/isbn-users-manual/29> is a unique numeric identifier for monographic publications standardized by ISO 2108 <https://www.iso.org/standard/65483.html>. It consists of either 10 digits (for assignments prior to January 1, 2007) or 13 digits. A 13-digit ISBN is composed of five parts: a GS1 prefix, a registration group, a registrant, a publication element, and a check digit. While elements may be divided by spaces or hyphens for human readability, these separators shall be omitted when the identifier is stored electronically (e.g., 9780198836063)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/iscc> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "iscc"@en ;
    rdfs:comment "International Standard Content Code (ISCC) <https://iscc.io/> is a content-derived identifier standardized by ISO 24138 <https://www.iso.org/standard/77899.html> for identifying digital assets. ISCC can be used in conjunction with other schemes, such as DOI, ISAN, ISBN, ISRC, ISSN and ISWC. A standard ISCC-CODE is build from multiple ISCC-UNITs. Each unit serve a different purpose. An ISCC-CODE typically look like ISCC:KACT4EBWK27737D2AYCJRAL5Z36G76RFRMO4554RU26HZ4ORJGIVHDI."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Content Code (ISCC) <https://iscc.io/> is a content-derived identifier standardized by ISO 24138 <https://www.iso.org/standard/77899.html> for identifying digital assets. ISCC can be used in conjunction with other schemes, such as DOI, ISAN, ISBN, ISRC, ISSN and ISWC. A standard ISCC-CODE is build from multiple ISCC-UNITs. Each unit serve a different purpose. An ISCC-CODE typically look like ISCC:KACT4EBWK27737D2AYCJRAL5Z36G76RFRMO4554RU26HZ4ORJGIVHDI."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isci> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "isci"@en ;
    rdfs:comment "International Standard Collection Identifier (ISCI) is a variable-length identifier standardized by ISO 27730 <https://www.iso.org/standard/44293.html> for identifying collections held by libraries, archives, museums, and other memory institutions. It consists of two parts: the identifier for the assigning organization (an ISIL) enclosed in square brackets, followed by a local collection identifier string (e.g., [FR-751041001]Casadesus1)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Collection Identifier (ISCI) is a variable-length identifier standardized by ISO 27730 <https://www.iso.org/standard/44293.html> for identifying collections held by libraries, archives, museums, and other memory institutions. It consists of two parts: the identifier for the assigning organization (an ISIL) enclosed in square brackets, followed by a local collection identifier string (e.g., [FR-751041001]Casadesus1)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isil> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "isil"@en ;
    rdfs:comment "International Standard Identifier for Libraries and Related Organizations (ISIL) <https://slks.dk/english/work-areas/libraries-and-literature/library-standards/isil/> is a unique alphanumeric code for identifying libraries, archives, museums, and related organizations standardized by ISO 15511 <https://www.iso.org/standard/77849.html>. It consists of a prefix—which may be an ISO 3166-1 alpha-2 country code or a non-country code assigned by the ISIL Registration Authority—followed by a unit identifier, totaling up to 16 characters (e.g., FI-Sipoo-Sö or ZDB-1-SBD). Valid symbols include any alphanumeric character, solidus (/), hyphen-minus (-), or colon."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Identifier for Libraries and Related Organizations (ISIL) <https://slks.dk/english/work-areas/libraries-and-literature/library-standards/isil/> is a unique alphanumeric code for identifying libraries, archives, museums, and related organizations standardized by ISO 15511 <https://www.iso.org/standard/77849.html>. It consists of a prefix—which may be an ISO 3166-1 alpha-2 country code or a non-country code assigned by the ISIL Registration Authority—followed by a unit identifier, totaling up to 16 characters (e.g., FI-Sipoo-Sö or ZDB-1-SBD). Valid symbols include any alphanumeric character, solidus (/), hyphen-minus (-), or colon."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ismn> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "ismn"@en ;
    rdfs:comment "International Standard Music Number (ISMN) <https://ismn-international.org/ismn/the-ismn/> is a unique numeric identifier for printed music (notated music) standardized by ISO 10957 <https://www.iso.org/standard/83122.html>. It consists of either 10 characters (starting with the letter \"M\" for assignments prior to January 1, 2008) or 13 digits. A 13-digit ISMN is composed of four parts: the GS1 prefix 979-0, a registrant element, an item element, and a check digit. While elements may be divided by spaces or hyphens for human readability, these separators shall be omitted when the identifier is stored electronically (e.g., 9790006538424)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Music Number (ISMN) <https://ismn-international.org/ismn/the-ismn/> is a unique numeric identifier for printed music (notated music) standardized by ISO 10957 <https://www.iso.org/standard/83122.html>. It consists of either 10 characters (starting with the letter \"M\" for assignments prior to January 1, 2008) or 13 digits. A 13-digit ISMN is composed of four parts: the GS1 prefix 979-0, a registrant element, an item element, and a check digit. While elements may be divided by spaces or hyphens for human readability, these separators shall be omitted when the identifier is stored electronically (e.g., 9790006538424)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isni> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "isni"@en ;
    rdfs:comment "International Standard Name Identifier (ISNI) <https://isni.org/page/what-is-isni/> is a unique identifier used to distinguish the public identities of parties involved in the creation, production, and distribution of media content. Standardized by ISO 27729 <https://www.iso.org/standard/87177.html>, it consists of 16 characters—15 digits plus a final check character—and is often represented as a URI, such as https://isni.org/isni/000000012146438X."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Name Identifier (ISNI) <https://isni.org/page/what-is-isni/> is a unique identifier used to distinguish the public identities of parties involved in the creation, production, and distribution of media content. Standardized by ISO 27729 <https://www.iso.org/standard/87177.html>, it consists of 16 characters—15 digits plus a final check character—and is often represented as a URI, such as https://isni.org/isni/000000012146438X."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isrc> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "isrc"@en ;
    rdfs:comment "International Standard Recording Code (ISRC) <https://isrc.ifpi.org/isrc-standard> is a unique 12-character alphanumeric identifier for sound recordings and music video recordings standardized by ISO 3901 <https://www.iso.org/standard/64817.html>. While the \"ISRC\" label and grouping hyphens used for human readability, they shall be omitted when the identifier is stored electronically (e.g., USCA28900153)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Recording Code (ISRC) <https://isrc.ifpi.org/isrc-standard> is a unique 12-character alphanumeric identifier for sound recordings and music video recordings standardized by ISO 3901 <https://www.iso.org/standard/64817.html>. While the \"ISRC\" label and grouping hyphens used for human readability, they shall be omitted when the identifier is stored electronically (e.g., USCA28900153)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/issn> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "issn"@en ;
    rdfs:comment "International Standard Serial Number (ISSN) <https://www.issn.org/understanding-the-issn/what-is-an-issn/> is an eight-digit identifier for serial publications and other continuing resources standardized by ISO 3297 <https://www.iso.org/standard/84536.html>. It consists of two groups of four digits separated by a hyphen, where the final character is a check digit that may be an \"X\". The hyphen is retained when the identifier is stored electronically to maintain the standard 9-character string format (e.g., 1464-3693). The ISSN is media-specific; the same journal title may be assigned different identifiers for its physical and digital versions."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Serial Number (ISSN) <https://www.issn.org/understanding-the-issn/what-is-an-issn/> is an eight-digit identifier for serial publications and other continuing resources standardized by ISO 3297 <https://www.iso.org/standard/84536.html>. It consists of two groups of four digits separated by a hyphen, where the final character is a check digit that may be an \"X\". The hyphen is retained when the identifier is stored electronically to maintain the standard 9-character string format (e.g., 1464-3693). The ISSN is media-specific; the same journal title may be assigned different identifiers for its physical and digital versions."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/iswc> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "iswc"@en ;
    rdfs:comment "International Standard Musical Work Code (ISWC) <https://www.iswc.org/iswc> is an 11-character unique identifier standardized by ISO 15707 <https://www.iso.org/standard/83125.html> for musical works (compositions) as distinct from specific recordings. While the \"ISWC\" label and grouping separators (dots and hyphens) are used for human readability, they shall be omitted when the identifier is stored electronically (e.g., T0017812031)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "International Standard Musical Work Code (ISWC) <https://www.iswc.org/iswc> is an 11-character unique identifier standardized by ISO 15707 <https://www.iso.org/standard/83125.html> for musical works (compositions) as distinct from specific recordings. While the \"ISWC\" label and grouping separators (dots and hyphens) are used for human readability, they shall be omitted when the identifier is stored electronically (e.g., T0017812031)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/lei> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "lei"@en ;
    rdfs:comment "The Legal Entity Identifier (LEI) <https://www.gleif.org/en/organizational-identity/introducing-the-legal-entity-identifier-lei> is a 20-character, alphanumeric code based on the ISO 17442 <https://www.iso.org/standard/78829.html> standard developed by the International Organization for Standardization."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The Legal Entity Identifier (LEI) <https://www.gleif.org/en/organizational-identity/introducing-the-legal-entity-identifier-lei> is a 20-character, alphanumeric code based on the ISO 17442 <https://www.iso.org/standard/78829.html> standard developed by the International Organization for Standardization."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/lexid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "lexid"@en ;
    rdfs:comment "LEX Identifier is a Uniform Resource Name (URN) for sources of law within the LEX namespace <https://www.iana.org/assignments/urn-formal/lex>, as defined in RFC 9676 <https://datatracker.ietf.org/doc/rfc9676/> (e.g., urn:lex:it:stato:decreto.legislativo:2018-08-10;101)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "LEX Identifier is a Uniform Resource Name (URN) for sources of law within the LEX namespace <https://www.iana.org/assignments/urn-formal/lex>, as defined in RFC 9676 <https://datatracker.ietf.org/doc/rfc9676/> (e.g., urn:lex:it:stato:decreto.legislativo:2018-08-10;101)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/nli> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "nli"@en ;
    rdfs:comment "Natural Location Identifier (NLI) <https://eccma.org/enli-eccma-natural-location-identifier/> is a 14- or 15-character alphanumeric string standardized by ISO 8000-118 <https://www.iso.org/standard/85428.html> that uniquely identifies a three-dimensional geographic point location. The identifier is generated from geodetic coordinates and elevation data. For electronic storage, the ISO.NLI: prefix shall be retained (e.g., ISO.NLI:41TS8M-A8ELTQ-H2)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Natural Location Identifier (NLI) <https://eccma.org/enli-eccma-natural-location-identifier/> is a 14- or 15-character alphanumeric string standardized by ISO 8000-118 <https://www.iso.org/standard/85428.html> that uniquely identifies a three-dimensional geographic point location. The identifier is generated from geodetic coordinates and elevation data. For electronic storage, the ISO.NLI: prefix shall be retained (e.g., ISO.NLI:41TS8M-A8ELTQ-H2)."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/orcidid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "orcidid"@en ;
    rdfs:comment "Open Researcher and Contributor ID (ORCID) iD <https://info.orcid.org/what-is-orcid/> is a unique identifier for authors and contributors in scholarly communication; as a subset of the International Standard Name Identifier (ISNI), it typically appears as a URI such as https://orcid.org/0000-0002-1825-0097."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Open Researcher and Contributor ID (ORCID) iD <https://info.orcid.org/what-is-orcid/> is a unique identifier for authors and contributors in scholarly communication; as a subset of the International Standard Name Identifier (ISNI), it typically appears as a URI such as https://orcid.org/0000-0002-1825-0097."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/other> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "other"@en ;
    rdfs:comment "Used when the type does not match any of the other options."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Used when the type does not match any of the other options."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/packageUrl> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "packageUrl"@en ;
    rdfs:comment "Package-URL (PURL), as defined in ECMA-427 <https://ecma-international.org/publications-and-standards/standards/ecma-427/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Package-URL (PURL), as defined in ECMA-427 <https://ecma-international.org/publications-and-standards/standards/ecma-427/>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/phoneNumber> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "phoneNumber"@en ;
    rdfs:comment "Phone number; A string of decimal digits that uniquely indicates the network termination point defined in RFC 3966 <https://datatracker.ietf.org/doc/rfc3966/> Section 5."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Phone number; A string of decimal digits that uniquely indicates the network termination point defined in RFC 3966 <https://datatracker.ietf.org/doc/rfc3966/> Section 5."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/requirementUID> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "requirementUID"@en ;
    rdfs:comment "The unique identifier used by a requirements management or any other lifecycle management tool to uniquely identify a requirement item."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The unique identifier used by a requirements management or any other lifecycle management tool to uniquely identify a requirement item."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/rorid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "rorid"@en ;
    rdfs:comment "Research Organization Registry (ROR) identifier <https://ror.org/about/> is a unique identifier for research and funding organization, typically expressed in its preferred URI form such as https://ror.org/02mhbdp94."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Research Organization Registry (ROR) identifier <https://ror.org/about/> is a unique identifier for research and funding organization, typically expressed in its preferred URI form such as https://ror.org/02mhbdp94."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/securityOther> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "securityOther"@en ;
    rdfs:comment "Used when there is a security related identifier of unspecified type."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Used when there is a security related identifier of unspecified type."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/swhid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "swhid"@en ;
    rdfs:comment "SoftWare Hash IDentifier, a persistent intrinsic identifier for digital artifacts, such as files, trees (also known as directories or folders), commits, and other objects typically found in version control systems. The format of the identifiers is defined in the SWHID specification <https://www.swhid.org/swhid-specification/v1.2/> (ISO/IEC 18670 <https://www.iso.org/standard/89985.html>). They typically look like swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SoftWare Hash IDentifier, a persistent intrinsic identifier for digital artifacts, such as files, trees (also known as directories or folders), commits, and other objects typically found in version control systems. The format of the identifiers is defined in the SWHID specification <https://www.swhid.org/swhid-specification/v1.2/> (ISO/IEC 18670 <https://www.iso.org/standard/89985.html>). They typically look like swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/swid> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "swid"@en ;
    rdfs:comment "Concise Software Identification (CoSWID) tag, as defined in RFC 9393 <https://datatracker.ietf.org/doc/rfc9393/> Section 2.3."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Concise Software Identification (CoSWID) tag, as defined in RFC 9393 <https://datatracker.ietf.org/doc/rfc9393/> Section 2.3."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/urlScheme> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "urlScheme"@en ;
    rdfs:comment "Uniform Resource Identifier (URI) Schemes <https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml>. The scheme used in order to locate a resource."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Uniform Resource Identifier (URI) Schemes <https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml>. The scheme used in order to locate a resource."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/vatNumber> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "vatNumber"@en ;
    rdfs:comment "Value Added Tax (VAT) number, or Goods and Services Tax (GST) number, is an identifier assigned by tax authorities that uniquely identifies a business within a specific national border or tax jurisdiction for the collection and tracking of VAT/GST."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Value Added Tax (VAT) number, or Goods and Services Tax (GST) number, is an identifier assigned by tax authorities that uniquely identifies a business within a specific national border or tax jurisdiction for the collection and tracking of VAT/GST."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/verificationUID> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "verificationUID"@en ;
    rdfs:comment "The unique identifier used by a verification management system or any other lifecycle management tool to uniquely identify a verification item."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The unique identifier used by a verification management system or any other lifecycle management tool to uniquely identify a verification item."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/webpage> a owl:NamedIndividual,
        spdx-core:ExternalIdentifierType ;
    rdfs:label "webpage"@en ;
    rdfs:comment "A Uniform Resource Locator (URL) that can be used to locate a resource, as defined in RFC 9110 <https://datatracker.ietf.org/doc/rfc9110/> Section 4.2.1 or Section 4.2.2. It may include an optional fragment identifier as specified in RFC 3986 <https://datatracker.ietf.org/doc/rfc3986> Section 3.5."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A Uniform Resource Locator (URL) that can be used to locate a resource, as defined in RFC 9110 <https://datatracker.ietf.org/doc/rfc9110/> Section 4.2.1 or Section 4.2.2. It may include an optional fragment identifier as specified in RFC 3986 <https://datatracker.ietf.org/doc/rfc3986> Section 3.5."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/altDownloadLocation> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "altDownloadLocation"@en ;
    rdfs:comment "A reference to an alternative download location."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to an alternative download location."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/altWebPage> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "altWebPage"@en ;
    rdfs:comment "A reference to an alternative web page."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to an alternative web page."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/binaryArtifact> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "binaryArtifact"@en ;
    rdfs:comment "A reference to binary artifacts related to a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to binary artifacts related to a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/bom> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "bom"@en ;
    rdfs:comment "A reference to a bill of materials related to a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a bill of materials related to a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/bower> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "bower"@en ;
    rdfs:comment "A reference to a Bower package. The package locator format, looks like package#version, is defined in the \"install\" section of Bower API documentation <https://bower.io/docs/api/#install>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a Bower package. The package locator format, looks like package#version, is defined in the \"install\" section of Bower API documentation <https://bower.io/docs/api/#install>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/buildMeta> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "buildMeta"@en ;
    rdfs:comment "A reference to the build metadata related to a published package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the build metadata related to a published package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/buildSystem> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "buildSystem"@en ;
    rdfs:comment "A reference to the build system used to create or publish the package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the build system used to create or publish the package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/certificationReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "certificationReport"@en ;
    rdfs:comment "A reference to a certification report for a package from an accredited/independent body."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a certification report for a package from an accredited/independent body."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/chat> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "chat"@en ;
    rdfs:comment "A reference to the instant messaging system used by the maintainer for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the instant messaging system used by the maintainer for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/componentAnalysisReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "componentAnalysisReport"@en ;
    rdfs:comment "A reference to a Software Composition Analysis (SCA) report."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a Software Composition Analysis (SCA) report."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/cwe> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "cwe"@en ;
    rdfs:comment "Common Weakness Enumeration <https://csrc.nist.gov/glossary/term/common_weakness_enumeration>. A reference to a source of software flaws defined within the official CWE List <https://cwe.mitre.org/data/> that conforms to the CWE specification <https://cwe.mitre.org/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Common Weakness Enumeration <https://csrc.nist.gov/glossary/term/common_weakness_enumeration>. A reference to a source of software flaws defined within the official CWE List <https://cwe.mitre.org/data/> that conforms to the CWE specification <https://cwe.mitre.org/>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/documentation> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "documentation"@en ;
    rdfs:comment "A reference to the documentation for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the documentation for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/dynamicAnalysisReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "dynamicAnalysisReport"@en ;
    rdfs:comment "A reference to a dynamic analysis report for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a dynamic analysis report for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/eolNotice> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "eolNotice"@en ;
    rdfs:comment "A reference to the End Of Sale (EOS) and/or End Of Life (EOL) information related to a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the End Of Sale (EOS) and/or End Of Life (EOL) information related to a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/exportControlAssessment> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "exportControlAssessment"@en ;
    rdfs:comment "A reference to an export control assessment for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to an export control assessment for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/funding> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "funding"@en ;
    rdfs:comment "A reference to funding information related to a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to funding information related to a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/issueTracker> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "issueTracker"@en ;
    rdfs:comment "A reference to the issue tracker for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the issue tracker for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/license> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "license"@en ;
    rdfs:comment "A reference to additional license information related to an artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to additional license information related to an artifact."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/mailingList> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "mailingList"@en ;
    rdfs:comment "A reference to the mailing list used by the maintainer for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the mailing list used by the maintainer for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/mavenCentral> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "mavenCentral"@en ;
    rdfs:comment "A reference to a Maven repository artifact. The artifact locator format is defined in the Maven documentation <https://maven.apache.org/guides/mini/guide-naming-conventions.html> and looks like groupId:artifactId[:version]."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a Maven repository artifact. The artifact locator format is defined in the Maven documentation <https://maven.apache.org/guides/mini/guide-naming-conventions.html> and looks like groupId:artifactId[:version]."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/metrics> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "metrics"@en ;
    rdfs:comment "A reference to metrics related to a package such as OpenSSF scorecards."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to metrics related to a package such as OpenSSF scorecards."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/npm> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "npm"@en ;
    rdfs:comment "A reference to an npm package. The package locator format is defined in the npm documentation <https://docs.npmjs.com/cli/v10/configuring-npm/package-json> and looks like package@version."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to an npm package. The package locator format is defined in the npm documentation <https://docs.npmjs.com/cli/v10/configuring-npm/package-json> and looks like package@version."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/nuget> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "nuget"@en ;
    rdfs:comment "A reference to a NuGet package. The package locator format is defined in the NuGet documentation <https://docs.nuget.org> and looks like package/version."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a NuGet package. The package locator format is defined in the NuGet documentation <https://docs.nuget.org> and looks like package/version."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/other> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "other"@en ;
    rdfs:comment "Used when the type does not match any of the other options."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Used when the type does not match any of the other options."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/privacyAssessment> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "privacyAssessment"@en ;
    rdfs:comment "A reference to a privacy assessment for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a privacy assessment for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/productMetadata> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "productMetadata"@en ;
    rdfs:comment "A reference to additional product metadata such as a reference within an organization's product catalog."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to additional product metadata such as a reference within an organization's product catalog."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/purchaseOrder> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "purchaseOrder"@en ;
    rdfs:comment "A reference to a purchase order for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a purchase order for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/qualityAssessmentReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "qualityAssessmentReport"@en ;
    rdfs:comment "A reference to a quality assessment for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a quality assessment for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/releaseHistory> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "releaseHistory"@en ;
    rdfs:comment "A reference to a published list of releases for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a published list of releases for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/releaseNotes> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "releaseNotes"@en ;
    rdfs:comment "A reference to the release notes for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the release notes for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/riskAssessment> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "riskAssessment"@en ;
    rdfs:comment "A reference to a risk assessment for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a risk assessment for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/runtimeAnalysisReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "runtimeAnalysisReport"@en ;
    rdfs:comment "A reference to a runtime analysis report for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a runtime analysis report for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/secureSoftwareAttestation> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "secureSoftwareAttestation"@en ;
    rdfs:comment "A reference to information assuring that the software is developed using security practices as defined by NIST SP 800-218 Secure Software Development Framework (SSDF) Version 1.1 <https://csrc.nist.gov/pubs/sp/800/218/final> or CISA Secure Software Development Attestation Form <https://www.cisa.gov/resources-tools/resources/secure-software-development-attestation-form>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to information assuring that the software is developed using security practices as defined by NIST SP 800-218 Secure Software Development Framework (SSDF) Version 1.1 <https://csrc.nist.gov/pubs/sp/800/218/final> or CISA Secure Software Development Attestation Form <https://www.cisa.gov/resources-tools/resources/secure-software-development-attestation-form>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityAdversaryModel> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityAdversaryModel"@en ;
    rdfs:comment "A reference to the security adversary model for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the security adversary model for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityAdvisory> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityAdvisory"@en ;
    rdfs:comment "A reference to a published security advisory (where advisory is defined per ISO 29147:2018 <https://www.iso.org/standard/72311.html>) that may affect one or more elements, e.g., vendor advisories or specific NVD entries."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a published security advisory (where advisory is defined per ISO 29147:2018 <https://www.iso.org/standard/72311.html>) that may affect one or more elements, e.g., vendor advisories or specific NVD entries."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityFix> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityFix"@en ;
    rdfs:comment "A reference to the patch or source code that fixes a vulnerability."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the patch or source code that fixes a vulnerability."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityOther> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityOther"@en ;
    rdfs:comment "A reference to related security information of unspecified type."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to related security information of unspecified type."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityPenTestReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityPenTestReport"@en ;
    rdfs:comment "A reference to a penetration test <https://en.wikipedia.org/wiki/Penetration_test> report for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a penetration test <https://en.wikipedia.org/wiki/Penetration_test> report for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityPolicy> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityPolicy"@en ;
    rdfs:comment "A reference to instructions for reporting newly discovered security vulnerabilities for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to instructions for reporting newly discovered security vulnerabilities for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityThreatModel> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "securityThreatModel"@en ;
    rdfs:comment "A reference to the security threat model <https://en.wikipedia.org/wiki/Threat_model> for the package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the security threat model <https://en.wikipedia.org/wiki/Threat_model> for the package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/socialMedia> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "socialMedia"@en ;
    rdfs:comment "A reference to a social media channel for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a social media channel for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/sourceArtifact> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "sourceArtifact"@en ;
    rdfs:comment "A reference to an artifact containing the sources for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to an artifact containing the sources for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/staticAnalysisReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "staticAnalysisReport"@en ;
    rdfs:comment "A reference to a static analysis report for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a static analysis report for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/support> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "support"@en ;
    rdfs:comment "A reference to the software support channel or other support information for a package."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to the software support channel or other support information for a package."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/vcs> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "vcs"@en ;
    rdfs:comment "A reference to a version control system related to a software artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a version control system related to a software artifact."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/vulnerabilityDisclosureReport> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "vulnerabilityDisclosureReport"@en ;
    rdfs:comment "A reference to a Vulnerability Disclosure Report (VDR) which provides the software supplier's analysis and findings describing the impact (or lack of impact) that reported vulnerabilities have on packages or products in the supplier's SBOM as defined in NIST SP 800-161 Cybersecurity Supply Chain Risk Management Practices for Systems and Organizations <https://csrc.nist.gov/pubs/sp/800/161/r1/final>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a Vulnerability Disclosure Report (VDR) which provides the software supplier's analysis and findings describing the impact (or lack of impact) that reported vulnerabilities have on packages or products in the supplier's SBOM as defined in NIST SP 800-161 Cybersecurity Supply Chain Risk Management Practices for Systems and Organizations <https://csrc.nist.gov/pubs/sp/800/161/r1/final>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/vulnerabilityExploitabilityAssessment> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "vulnerabilityExploitabilityAssessment"@en ;
    rdfs:comment "A reference to a Vulnerability Exploitability eXchange (VEX) statement which provides information on whether a product is impacted by a specific vulnerability in an included package and, if affected, whether there are actions recommended to remediate. See also NTIA VEX one-page summary <https://ntia.gov/files/ntia/publications/vex_one-page_summary.pdf>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a Vulnerability Exploitability eXchange (VEX) statement which provides information on whether a product is impacted by a specific vulnerability in an included package and, if affected, whether there are actions recommended to remediate. See also NTIA VEX one-page summary <https://ntia.gov/files/ntia/publications/vex_one-page_summary.pdf>."@en .

<https://spdx.org/rdf/3/terms/Core/ExternalRefType/x509Cert> a owl:NamedIndividual,
        spdx-core:ExternalRefType ;
    rdfs:label "x509Cert"@en ;
    rdfs:comment "A reference to an X.509 certificate as defined in RFC 5280 <https://datatracker.ietf.org/doc/rfc5280/>. The primary media type shall be application/pkix-cert. The legacy media types application/x-x509-ca-cert and application/x-x509-user-cert may be used for backward compatibility, but shall not be used in new implementations. NOTE — RFC 5280 supersedes earlier X.509 profiles, including RFC 1422. Existing references based on RFC 1422 remain valid."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to an X.509 certificate as defined in RFC 5280 <https://datatracker.ietf.org/doc/rfc5280/>. The primary media type shall be application/pkix-cert. The legacy media types application/x-x509-ca-cert and application/x-x509-user-cert may be used for backward compatibility, but shall not be used in new implementations. NOTE — RFC 5280 supersedes earlier X.509 profiles, including RFC 1422. Existing references based on RFC 1422 remain valid."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/assistiveAutomation> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "assistiveAutomation"@en ;
    rdfs:comment "Level 1 - Assistive automation. The system assists an operator."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 1 - Assistive automation. The system assists an operator."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/autonomous> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "autonomous"@en ;
    rdfs:comment "Level 6 - Autonomous. The system is capable of modifying its intended domain of use or its goals without external intervention, control or oversight."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 6 - Autonomous. The system is capable of modifying its intended domain of use or its goals without external intervention, control or oversight."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/conditionalAutomation> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "conditionalAutomation"@en ;
    rdfs:comment "Level 3 - Conditional automation. The system can propose strategies and then automatically execute the approved plan, with an external agent being ready to take over when necessary."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 3 - Conditional automation. The system can propose strategies and then automatically execute the approved plan, with an external agent being ready to take over when necessary."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/fullAutomation> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "fullAutomation"@en ;
    rdfs:comment "Level 5 - Full automation. The system is capable of performing its entire mission without external intervention."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 5 - Full automation. The system is capable of performing its entire mission without external intervention."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/highAutomation> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "highAutomation"@en ;
    rdfs:comment "Level 4 - High automation. The system performs parts of its mission without external intervention."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 4 - High automation. The system performs parts of its mission without external intervention."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/notAutomated> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "notAutomated"@en ;
    rdfs:comment "Level 0 - Not automated. No automation. The operator fully controls the system."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 0 - Not automated. No automation. The operator fully controls the system."@en .

<https://spdx.org/rdf/3/terms/Core/IsoAutomationLevel/partialAutomation> a owl:NamedIndividual,
        spdx-core:IsoAutomationLevel ;
    rdfs:label "partialAutomation"@en ;
    rdfs:comment "Level 2 - Partial automation or task automation. Some sub-functions of the system are fully automated while the system remain under control of an external agent. The system can perform actions for an approved task without requiring the agent's continuous direct control."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Level 2 - Partial automation or task automation. Some sub-functions of the system are fully automated while the system remain under control of an external agent. The system can perform actions for an approved task without requiring the agent's continuous direct control."@en .

spdx-core:Person a owl:Class,
        sh:NodeShape ;
    rdfs:label "Person"@en ;
    rdfs:comment "An individual human being."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Agent ;
    skos:definition "An individual human being."@en ;
    skos:note "A Person is an individual human being."@en ;
    sh:nodeKind sh:IRI .

<https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/active> a owl:NamedIndividual,
        spdx-core:ProcessReadinessType ;
    rdfs:label "active"@en ;
    rdfs:comment "In use."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "In use."@en .

<https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/draft> a owl:NamedIndividual,
        spdx-core:ProcessReadinessType ;
    rdfs:label "draft"@en ;
    rdfs:comment "Not yet finalized; under development or review."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Not yet finalized; under development or review."@en .

<https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/obsoleted> a owl:NamedIndividual,
        spdx-core:ProcessReadinessType ;
    rdfs:label "obsoleted"@en ;
    rdfs:comment "Superseded or not valid at present."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Superseded or not valid at present."@en .

<https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/other> a owl:NamedIndividual,
        spdx-core:ProcessReadinessType ;
    rdfs:label "other"@en ;
    rdfs:comment "Other."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Other."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/ai> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "ai"@en ;
    rdfs:comment "The element follows the AI profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the AI profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/build> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "build"@en ;
    rdfs:comment "The element follows the Build profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Build profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/core> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "core"@en ;
    rdfs:comment "The element follows the Core profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Core profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/dataset> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "dataset"@en ;
    rdfs:comment "The element follows the Dataset profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Dataset profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/expandedLicensing> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "expandedLicensing"@en ;
    rdfs:comment "The element follows the ExpandedLicensing profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the ExpandedLicensing profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/extension> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "extension"@en ;
    rdfs:comment "The element follows the Extension profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Extension profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/functionalSafety> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "functionalSafety"@en ;
    rdfs:comment "The element follows the FunctionalSafety profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the FunctionalSafety profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/hardware> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "hardware"@en ;
    rdfs:comment "The element follows the Hardware profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Hardware profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/lite> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "lite"@en ;
    rdfs:comment "The element follows the Lite profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Lite profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/operations> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "operations"@en ;
    rdfs:comment "The element follows the Operations profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Operations profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/security> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "security"@en ;
    rdfs:comment "The element follows the Security profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Security profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/service> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "service"@en ;
    rdfs:comment "The element follows the Service profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Service profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/simpleLicensing> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "simpleLicensing"@en ;
    rdfs:comment "The element follows the SimpleLicensing profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the SimpleLicensing profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/software> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "software"@en ;
    rdfs:comment "The element follows the Software profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the Software profile specification."@en .

<https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/supplyChain> a owl:NamedIndividual,
        spdx-core:ProfileIdentifierType ;
    rdfs:label "supplyChain"@en ;
    rdfs:comment "The element follows the SupplyChain profile specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The element follows the SupplyChain profile specification."@en .

spdx-core:Regulation a owl:Class,
        sh:NodeShape ;
    rdfs:label "Regulation"@en ;
    rdfs:comment "Regulation represents a rule or directive maintained by an authority."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Specification ;
    skos:definition "Regulation represents a rule or directive maintained by an authority."@en ;
    skos:note """The Regulation class represents any rules or directives enforced by an official authority.
Regulations within this class can be either mandatory or voluntary.

Examples of these regulations include the EU Radio Equipment Directive, EU Cyber Resilience Act,
the Japan Cyber STAR, or the U.S. Cyber Trust Mark."""@en ;
    sh:nodeKind sh:IRI .

<https://spdx.org/rdf/3/terms/Core/RelationshipCompleteness/complete> a owl:NamedIndividual,
        spdx-core:RelationshipCompleteness ;
    rdfs:label "complete"@en ;
    rdfs:comment "The relationship is known to be exhaustive."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The relationship is known to be exhaustive."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipCompleteness/incomplete> a owl:NamedIndividual,
        spdx-core:RelationshipCompleteness ;
    rdfs:label "incomplete"@en ;
    rdfs:comment "The relationship is known not to be exhaustive."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The relationship is known not to be exhaustive."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipCompleteness/noAssertion> a owl:NamedIndividual,
        spdx-core:RelationshipCompleteness ;
    rdfs:label "noAssertion"@en ;
    rdfs:comment "No assertion can be made about the completeness of the relationship."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "No assertion can be made about the completeness of the relationship."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/amendedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "amendedBy"@en ;
    rdfs:comment "The from Element is amended by each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is amended by each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/ancestorOf> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "ancestorOf"@en ;
    rdfs:comment "The from Element is an ancestor of each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is an ancestor of each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/availableFrom> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "availableFrom"@en ;
    rdfs:comment "The from Element is available from the additional supplier described by each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is available from the additional supplier described by each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/contains> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "contains"@en ;
    rdfs:comment "The from Element contains each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element contains each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/copiedTo> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "copiedTo"@en ;
    rdfs:comment "The from Element has been copied to each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been copied to each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/descendantOf> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "descendantOf"@en ;
    rdfs:comment "The from Element is a descendant of each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is a descendant of each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/describes> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "describes"@en ;
    rdfs:comment "The from Element describes each to Element. To denote the root(s) of a tree of elements in a collection, the rootElement property shall be used."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element describes each to Element. To denote the root(s) of a tree of elements in a collection, the rootElement property shall be used."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/evaluatedOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "evaluatedOn"@en ;
    rdfs:comment "The from Element has been evaluated on the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been evaluated on the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/expandsTo> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "expandsTo"@en ;
    rdfs:comment "The from Element expands out as an artifact described by each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element expands out as an artifact described by each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/finetunedOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "finetunedOn"@en ;
    rdfs:comment "The from Element has been finetuned on the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been finetuned on the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/follows> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "follows"@en ;
    rdfs:comment "The to Element succeeds the from Element, establishing a unidirectional sequence. This succession is defined as chronological, procedural, or logical. It is used to represent either a temporal order (e.g., in a workflow) or a logical order for processing and traversal (e.g., in an ordered list)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The to Element succeeds the from Element, establishing a unidirectional sequence. This succession is defined as chronological, procedural, or logical. It is used to represent either a temporal order (e.g., in a workflow) or a logical order for processing and traversal (e.g., in an ordered list)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/generates> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "generates"@en ;
    rdfs:comment "The from Element generates each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element generates each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAddedFile> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasAddedFile"@en ;
    rdfs:comment "Every to Element is a file added to the from Element (from hasAddedFile to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a file added to the from Element (from hasAddedFile to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDataFile> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDataFile"@en ;
    rdfs:comment "The from Element treats each to Element as a data file. A data file is an artifact that stores data required or optional for the from Element's functionality. A data file can be a database file, an index file, a log file, an AI model file, a calibration data file, a temporary file, a backup file, and more. For AI training dataset, test dataset, test artifact, configuration data, build input data, and build output data, please consider using the more specific relationship types: trainedOn, testedOn, hasTest, configures, hasInput, and hasOutput, respectively. This relationship does not imply dependency."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element treats each to Element as a data file. A data file is an artifact that stores data required or optional for the from Element's functionality. A data file can be a database file, an index file, a log file, an AI model file, a calibration data file, a temporary file, a backup file, and more. For AI training dataset, test dataset, test artifact, configuration data, build input data, and build output data, please consider using the more specific relationship types: trainedOn, testedOn, hasTest, configures, hasInput, and hasOutput, respectively. This relationship does not imply dependency."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDeletedFile> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDeletedFile"@en ;
    rdfs:comment "Every to Element is a file deleted from the from Element (from hasDeletedFile to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a file deleted from the from Element (from hasDeletedFile to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDependencyManifest> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDependencyManifest"@en ;
    rdfs:comment "The from Element has manifest files that contain dependency information in each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has manifest files that contain dependency information in each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDistributionArtifact> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDistributionArtifact"@en ;
    rdfs:comment "The from Element is distributed as an artifact in each to Element (e.g. an RPM or archive file)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is distributed as an artifact in each to Element (e.g. an RPM or archive file)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDocumentation> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDocumentation"@en ;
    rdfs:comment "The from Element is documented by each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is documented by each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasEvidence> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasEvidence"@en ;
    rdfs:comment "Every to Element is considered as evidence for the from Element (from hasEvidence to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is considered as evidence for the from Element (from hasEvidence to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasExample> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasExample"@en ;
    rdfs:comment "Every to Element is an example for the from Element (from hasExample to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is an example for the from Element (from hasExample to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasMetadata> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasMetadata"@en ;
    rdfs:comment "Every to Element is metadata about the from Element (from hasMetadata to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is metadata about the from Element (from hasMetadata to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOptionalComponent> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasOptionalComponent"@en ;
    rdfs:comment "Every to Element is an optional component of the from Element (from hasOptionalComponent to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is an optional component of the from Element (from hasOptionalComponent to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasTestCase> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasTestCase"@en ;
    rdfs:comment "Every to Element is a test case for the from Element (from hasTestCase to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a test case for the from Element (from hasTestCase to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasVariant> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasVariant"@en ;
    rdfs:comment "Every to Element is a variant the from Element (from hasVariant to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a variant the from Element (from hasVariant to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/modifiedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "modifiedBy"@en ;
    rdfs:comment "The from Element is modified by each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is modified by each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/other> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "other"@en ;
    rdfs:comment "Every to Element is related to the from Element where the relationship type is not described by any of the SPDX relationship types (this relationship is directionless)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is related to the from Element where the relationship type is not described by any of the SPDX relationship types (this relationship is directionless)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/packagedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "packagedBy"@en ;
    rdfs:comment "Every to Element is a packaged instance of the from Element (from packagedBy to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a packaged instance of the from Element (from packagedBy to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/patchedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "patchedBy"@en ;
    rdfs:comment "Every to Element is a patch for the from Element (from patchedBy to)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a patch for the from Element (from patchedBy to)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/pretrainedOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "pretrainedOn"@en ;
    rdfs:comment "The from Element has been pretrained on the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been pretrained on the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/republishedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "republishedBy"@en ;
    rdfs:comment "Designates a from /Security/Vulnerability's details were tracked, aggregated, and/or enriched to improve context (i.e. NVD) by each to Agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Designates a from /Security/Vulnerability's details were tracked, aggregated, and/or enriched to improve context (i.e. NVD) by each to Agent."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/resolved> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "resolved"@en ;
    rdfs:comment "The to /SupplyChain/OutOfSpecAction is resolved in the from /SupplyChain/ResolutionAction."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The to /SupplyChain/OutOfSpecAction is resolved in the from /SupplyChain/ResolutionAction."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/testedOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "testedOn"@en ;
    rdfs:comment "The from Element has been tested on the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been tested on the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/trainedOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "trainedOn"@en ;
    rdfs:comment "The from Element has been trained on the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been trained on the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/validatedOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "validatedOn"@en ;
    rdfs:comment "The from Element has been validated on the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has been validated on the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RequirementStatusType/active> a owl:NamedIndividual,
        spdx-core:RequirementStatusType ;
    rdfs:label "active"@en ;
    rdfs:comment "A requirement has been approved by stakeholder, and can be include in traceability."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A requirement has been approved by stakeholder, and can be include in traceability."@en .

<https://spdx.org/rdf/3/terms/Core/RequirementStatusType/backlog> a owl:NamedIndividual,
        spdx-core:RequirementStatusType ;
    rdfs:label "backlog"@en ;
    rdfs:comment "A requirement has been captured and logged, but not yet ready to become a formal requirement draft. A backlog requirement may still be incomplete or ambiguous."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A requirement has been captured and logged, but not yet ready to become a formal requirement draft. A backlog requirement may still be incomplete or ambiguous."@en .

<https://spdx.org/rdf/3/terms/Core/RequirementStatusType/draft> a owl:NamedIndividual,
        spdx-core:RequirementStatusType ;
    rdfs:label "draft"@en ;
    rdfs:comment "A requirement is considered a draft state and may be modified before being submitted for review."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A requirement is considered a draft state and may be modified before being submitted for review."@en .

<https://spdx.org/rdf/3/terms/Core/RequirementStatusType/retired> a owl:NamedIndividual,
        spdx-core:RequirementStatusType ;
    rdfs:label "retired"@en ;
    rdfs:comment "A requirement is no longer active for a specific use."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A requirement is no longer active for a specific use."@en .

<https://spdx.org/rdf/3/terms/Core/RequirementStatusType/reviewable> a owl:NamedIndividual,
        spdx-core:RequirementStatusType ;
    rdfs:label "reviewable"@en ;
    rdfs:comment "A requirement is ready for formal review by stakeholders for a specific use."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A requirement is ready for formal review by stakeholders for a specific use."@en .

spdx-core:SoftwareAgent a owl:Class,
        sh:NodeShape ;
    rdfs:label "SoftwareAgent"@en ;
    rdfs:comment "A software agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Agent ;
    skos:definition "A software agent."@en ;
    skos:note """A SoftwareAgent is a software program that is given the authority (similar to a
user's authority) to act on a system."""@en ;
    sh:nodeKind sh:IRI .

<https://spdx.org/rdf/3/terms/Core/SpecificationType/formalStandard> a owl:NamedIndividual,
        spdx-core:SpecificationType ;
    rdfs:label "formalStandard"@en ;
    rdfs:comment "A formal standard is a standard ratified by a recognized standards-development organization and published as a normative reference."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A formal standard is a standard ratified by a recognized standards-development organization and published as a normative reference."@en .

<https://spdx.org/rdf/3/terms/Core/SpecificationType/other> a owl:NamedIndividual,
        spdx-core:SpecificationType ;
    rdfs:label "other"@en ;
    rdfs:comment "Any specification that does not fall under any of the other entries."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Any specification that does not fall under any of the other entries."@en .

<https://spdx.org/rdf/3/terms/Core/SpecificationType/regulation> a owl:NamedIndividual,
        spdx-core:SpecificationType ;
    rdfs:label "regulation"@en ;
    rdfs:comment "A mandatory legal specification issued by a governmental or regulatory authority. Compliance is enforceable by law."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A mandatory legal specification issued by a governmental or regulatory authority. Compliance is enforceable by law."@en .

<https://spdx.org/rdf/3/terms/Core/SpecificationType/specification> a owl:NamedIndividual,
        spdx-core:SpecificationType ;
    rdfs:label "specification"@en ;
    rdfs:comment "A specification is a detailed document (or set of documents) that describes the requirements, design, behavior, or other characteristics of a system, component, or process so that all stakeholders have a clear, unambiguous reference."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A specification is a detailed document (or set of documents) that describes the requirements, design, behavior, or other characteristics of a system, component, or process so that all stakeholders have a clear, unambiguous reference."@en .

spdx-core:actionLocation a owl:ObjectProperty ;
    rdfs:label "actionLocation"@en ;
    rdfs:comment "Location of a specific action."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Location ;
    skos:definition "Location of a specific action."@en ;
    skos:note "The location of an action is defined by the actionLocation. Action locations help define and validate a specific action."@en .

spdx-core:additionalInformation a owl:ObjectProperty ;
    rdfs:label "additionalInformation"@en ;
    rdfs:comment "Additional relevance information."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Additional relevance information."@en ;
    skos:note "This element provides relevant information to the action."@en .

spdx-core:annotationType a owl:ObjectProperty ;
    rdfs:label "annotationType"@en ;
    rdfs:comment "Describes the type of annotation."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:AnnotationType ;
    skos:definition "Describes the type of annotation."@en ;
    skos:note "An annotationType describes the type of an annotation."@en .

spdx-core:assignedBy a owl:ObjectProperty ;
    rdfs:label "assignedBy"@en ;
    rdfs:comment "assignedBy identifies the agent that grants or assigns the role to the target element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "assignedBy identifies the agent that grants or assigns the role to the target element."@en ;
    skos:note "assignedBy is an property that specifies the agent responsible for assigning the givenRole to the target element. This property tracks who assigned the role, providing accountability and traceability for role assignments."@en .

spdx-core:authorization a owl:DatatypeProperty ;
    rdfs:label "authorization"@en ;
    rdfs:comment "Authorization specifies the permissions, rights, privileges, or benefits granted to a Role, defining what the role is authorized to access, perform, or receive."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Authorization specifies the permissions, rights, privileges, or benefits granted to a Role, defining what the role is authorized to access, perform, or receive."@en ;
    skos:note "Authorization is a string property that captures the specific permissions, rights, privileges, or benefits that are associated with a Role. This property defines what the role is entitled to do or receive within a given context (e.g., build, system, distribution, supply chain, or lifecycle). For example, authorization might include access to certain resources, permissions to perform specific actions, or eligibility for particular benefits."@en .

spdx-core:beginIntegerRange a owl:DatatypeProperty ;
    rdfs:label "beginIntegerRange"@en ;
    rdfs:comment "Defines the beginning of a range."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:positiveInteger ;
    skos:definition "Defines the beginning of a range."@en ;
    skos:note "beginIntegerRange is a positive integer that defines the beginning of a range."@en .

spdx-core:builtTime a owl:DatatypeProperty ;
    rdfs:label "builtTime"@en ;
    rdfs:comment "Specifies the time an artifact was built."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Specifies the time an artifact was built."@en ;
    skos:note "A builtTime specifies the time an artifact was built."@en .

spdx-core:city a owl:DatatypeProperty ;
    rdfs:label "city"@en ;
    rdfs:comment "City is a specific name used to define a locality."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "City is a specific name used to define a locality."@en ;
    skos:note "City is a specific name used to define a locality."@en .

spdx-core:completeness a owl:ObjectProperty ;
    rdfs:label "completeness"@en ;
    rdfs:comment "Provides information about the completeness of relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:RelationshipCompleteness ;
    skos:definition "Provides information about the completeness of relationships."@en ;
    skos:note """Completeness gives information about whether the provided relationships are
complete, known to be incomplete or if no assertion is made either way."""@en .

spdx-core:contactType a owl:ObjectProperty ;
    rdfs:label "contactType"@en ;
    rdfs:comment "Identifies the nature of the contactPointRelationship."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ContactPointRelationshipType ;
    skos:definition "Identifies the nature of the contactPointRelationship."@en ;
    skos:note "Identifies the role of the Artifact to the contact point."@en .

spdx-core:context a owl:DatatypeProperty ;
    rdfs:label "context"@en ;
    rdfs:comment """Gives information about the circumstances or unifying properties
that Elements of the bundle have been assembled under."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """Gives information about the circumstances or unifying properties
that Elements of the bundle have been assembled under."""@en ;
    skos:note """A context gives information about the circumstances or unifying properties
that Elements of the bundle have been assembled under."""@en .

spdx-core:country a owl:DatatypeProperty ;
    rdfs:label "country"@en ;
    rdfs:comment "Specifies a country code of the location."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Specifies a country code of the location."@en ;
    skos:note "Specifies a country code of the location."@en .

spdx-core:countyCode a owl:DatatypeProperty ;
    rdfs:label "countyCode"@en ;
    rdfs:comment "A code that identifies a county."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A code that identifies a county."@en ;
    skos:note """A code that identifies a county. A county is a territorial division in some countries, often forming a primary unit of local administration.

In the US, a county is a political and administrative division of a state."""@en .

spdx-core:created a owl:DatatypeProperty ;
    rdfs:label "created"@en ;
    rdfs:comment "Identifies when the Element was originally created."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Identifies when the Element was originally created."@en ;
    skos:note """Created is a date that identifies when the Element was originally created.

The time stamp can serve as an indication as to whether the analysis needs to
be updated.

This is often the date of last change (e.g., a git commit date), not the date
when the SPDX data was created, as doing so supports reproducible builds."""@en .

spdx-core:createdBy a owl:ObjectProperty ;
    rdfs:label "createdBy"@en ;
    rdfs:comment "Identifies who or what created the Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "Identifies who or what created the Element."@en ;
    skos:note """CreatedBy identifies who or what created the Element.

The generation method will assist the recipient of the Element in assessing
the general reliability/accuracy of the analysis information."""@en .

spdx-core:createdUsing a owl:ObjectProperty ;
    rdfs:label "createdUsing"@en ;
    rdfs:comment "Identifies the tooling that was used during the creation of the Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Tool ;
    skos:definition "Identifies the tooling that was used during the creation of the Element."@en ;
    skos:note """CreatedUsing identifies the tooling that was used during the creation of the
Element.

The generation method will assist the recipient of the Element in assessing
the general reliability/accuracy of the analysis information."""@en .

spdx-core:creationInfo a owl:ObjectProperty ;
    rdfs:label "creationInfo"@en ;
    rdfs:comment "Provides information about the creation of the Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:CreationInfo ;
    skos:definition "Provides information about the creation of the Element."@en ;
    skos:note "CreationInfo provides information about the creation of the Element."@en .

spdx-core:dataLicense a owl:ObjectProperty ;
    rdfs:label "dataLicense"@en ;
    rdfs:comment """Provides the license under which the SPDX documentation of the Element can be
used."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition """Provides the license under which the SPDX documentation of the Element can be
used."""@en ;
    skos:note """The data license provides the license under which the SPDX documentation of the Element can be used.

This is to alleviate any concern that content (the data or database) in an SPDX file
is subject to any form of intellectual property right that could restrict the re-use
of the information or the creation of another SPDX file for the same project(s).

This approach avoids intellectual property and related restrictions over the SPDX file,
however individuals can still contract with each other to restrict release
of specific collections of SPDX files (which map to software bill of materials)
and the identification of the supplier of SPDX files.

Compliance with this document includes populating the SPDX fields therein
with data related to such fields ("SPDX-Metadata").

This document contains numerous fields where an SPDX file creator may provide
relevant explanatory text in SPDX-Metadata. Without opining on the lawfulness
of "database rights" (in jurisdictions where applicable),
such explanatory text is copyrightable subject matter in most Berne Convention countries.

By using the SPDX specification, or any portion hereof,
you hereby agree that any copyright rights (as determined by your jurisdiction)
in any SPDX-Metadata, including without limitation explanatory text,
shall be subject to the terms of the Creative Commons CC0 1.0 Universal license.

For SPDX-Metadata not containing any copyright rights,
you hereby agree and acknowledge that the SPDX-Metadata is provided to you "as-is"
and without any representations or warranties of any kind concerning the SPDX-Metadata,
express, implied, statutory or otherwise, including without limitation warranties
of title, merchantability, fitness for a particular purpose, non-infringement,
or the absence of latent or other defects, accuracy, or the presence or absence of errors,
whether or not discoverable, all to the greatest extent permissible under applicable law."""@en .

spdx-core:definingArtifact a owl:ObjectProperty ;
    rdfs:label "definingArtifact"@en ;
    rdfs:comment """Artifact representing a serialization instance of SPDX data containing the
definition of a particular Element."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Artifact ;
    skos:definition """Artifact representing a serialization instance of SPDX data containing the
definition of a particular Element."""@en ;
    skos:note """A definingArtifact property is used to link the Element identifier for an
Element defined external to a given SpdxDocument to an Artifact Element
representing the SPDX serialization instance which contains the definition for
the Element."""@en .

spdx-core:definitionSource a owl:ObjectProperty ;
    rdfs:label "definitionSource"@en ;
    rdfs:comment "It is the authoritative or credible entity, document, or body of knowledge that provides the meaning of a type, ensuring accuracy, context, and standardization."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Specification ;
    skos:definition "It is the authoritative or credible entity, document, or body of knowledge that provides the meaning of a type, ensuring accuracy, context, and standardization."@en ;
    skos:note """It is the authoritative or credible entity, document, or body of knowledge that provides the meaning of a type, ensuring accuracy, context, and standardization.
These are adopted to create uniformity and facilitate interoperability within industries."""@en .

spdx-core:description a owl:DatatypeProperty ;
    rdfs:label "description"@en ;
    rdfs:comment "Provides a detailed description of the Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Provides a detailed description of the Element."@en ;
    skos:note """This field is a detailed description of the Element. It may also be extracted
from the Element itself.

The intent is to provide recipients of the SPDX file with a detailed technical
explanation of the functionality, anticipated use, and anticipated
implementation of the Element.

This field may also include a description of improvements over prior versions
of the Element."""@en .

spdx-core:devLifecycleStage a owl:DatatypeProperty ;
    rdfs:label "devLifecycleStage"@en ;
    rdfs:comment "The product lifecycle phase, the requirement is applicable for."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:LifecycleScopeType ;
    skos:definition "The product lifecycle phase, the requirement is applicable for."@en ;
    skos:note "The development lifecycle stage specifies the phase or phases of a product’s lifecycle to which a given requirement applies. These may include requirements that govern the design phase, guide development activities, define constraints for the build environment, provide instructions for the decommissioning phase, etc."@en .

spdx-core:element a owl:ObjectProperty ;
    rdfs:label "element"@en ;
    rdfs:comment "Refers to one or more Elements that are part of an ElementCollection."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Element ;
    skos:definition "Refers to one or more Elements that are part of an ElementCollection."@en ;
    skos:note """This field refers to one or more Elements that are part of an
ElementCollection."""@en .

spdx-core:elementValue a owl:ObjectProperty ;
    rdfs:label "elementValue"@en ;
    rdfs:comment "A value used in a key-value pair with a generic key that refers to an Element"@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Element ;
    skos:definition "A value used in a key-value pair with a generic key that refers to an Element"@en ;
    skos:note """A value used in a key-value pair with a generic key that refers to an Element.

A key-value pair can be used to implement a dictionary which associates a key
with an Element."""@en .

spdx-core:endIntegerRange a owl:DatatypeProperty ;
    rdfs:label "endIntegerRange"@en ;
    rdfs:comment "Defines the end of a range."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:positiveInteger ;
    skos:definition "Defines the end of a range."@en ;
    skos:note "endIntegerRange is a positive integer that defines the end of a range."@en .

spdx-core:externalIdentifier a owl:ObjectProperty ;
    rdfs:label "externalIdentifier"@en ;
    rdfs:comment """Provides a reference to a resource outside the scope of SPDX 3 content
that uniquely identifies an Element."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ExternalIdentifier ;
    skos:definition """Provides a reference to a resource outside the scope of SPDX 3 content
that uniquely identifies an Element."""@en ;
    skos:note """ExternalIdentifier points to a resource outside the scope of SPDX 3 content
that uniquely identifies an Element."""@en .

spdx-core:externalIdentifierType a owl:ObjectProperty ;
    rdfs:label "externalIdentifierType"@en ;
    rdfs:comment "Specifies the type of the external identifier."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ExternalIdentifierType ;
    skos:definition "Specifies the type of the external identifier."@en ;
    skos:note "An externalIdentifierType specifies the type of the external identifier."@en .

spdx-core:externalRef a owl:ObjectProperty ;
    rdfs:label "externalRef"@en ;
    rdfs:comment """Points to a resource outside the scope of the SPDX 3 content
that provides additional characteristics of an Element."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ExternalRef ;
    skos:definition """Points to a resource outside the scope of the SPDX 3 content
that provides additional characteristics of an Element."""@en ;
    skos:note """This field points to a resource outside the scope of the SPDX 3 content
that provides additional characteristics of an Element."""@en .

spdx-core:externalRefType a owl:ObjectProperty ;
    rdfs:label "externalRefType"@en ;
    rdfs:comment "Specifies the type of the external reference."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ExternalRefType ;
    skos:definition "Specifies the type of the external reference."@en ;
    skos:note "An externalRefType specifies the type of the external reference."@en .

spdx-core:externalSpdxId a owl:DatatypeProperty ;
    rdfs:label "externalSpdxId"@en ;
    rdfs:comment """Identifies an external Element used within an SpdxDocument but defined
external to that SpdxDocument."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:anyURI ;
    skos:definition """Identifies an external Element used within an SpdxDocument but defined
external to that SpdxDocument."""@en ;
    skos:note """An externalSpdxId identifies an external Element used within an SpdxDocument but
defined external to that SpdxDocument."""@en .

spdx-core:geographicPointLocation a owl:DatatypeProperty ;
    rdfs:label "geographicPointLocation"@en ;
    rdfs:comment "A set of geographic point location coordinates."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A set of geographic point location coordinates."@en ;
    skos:note """Geographic point location coordinates expressed in the format defined by
ISO 6709:2022."""@en .

spdx-core:givenRole a owl:ObjectProperty ;
    rdfs:label "givenRole"@en ;
    rdfs:comment "givenRole is a property that specifies the role being assigned in a RoleRelationship. It links the relationship to an instance of the Role class, defining the function, responsibility, or position that the source element confers upon the target element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Role ;
    skos:definition "givenRole is a property that specifies the role being assigned in a RoleRelationship. It links the relationship to an instance of the Role class, defining the function, responsibility, or position that the source element confers upon the target element."@en ;
    skos:note "givenRole specific the role that is being assigned or defined by the relationship. This role represents the function, responsibility, or position that the source element (e.g., an organization, tool, or component) confers upon the target element (e.g., a person, team, or system)."@en .

spdx-core:headquartersLocation a owl:ObjectProperty ;
    rdfs:label "headquartersLocation"@en ;
    rdfs:comment "A location of the organization's headquarters."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A location of the organization's headquarters."@en ;
    skos:note """Headquarters denotes the location where most or all of the important functions
of an organization are coordinated. In some jurisdictions, it represents the
central entity of a corporation that assumes full responsibility for managing
all business activities.

Accurate identification of an organization's headquarters requires the
provision of relevant address data, including mailing, street, and geographic
point location."""@en .

spdx-core:identifier a owl:DatatypeProperty ;
    rdfs:label "identifier"@en ;
    rdfs:comment "Uniquely identifies an external element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Uniquely identifies an external element."@en ;
    skos:note "An identifier uniquely identifies an external element."@en .

spdx-core:identifierLocator a owl:DatatypeProperty ;
    rdfs:label "identifierLocator"@en ;
    rdfs:comment "Provides the location for more information regarding an external identifier."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Provides the location for more information regarding an external identifier."@en ;
    skos:note """Identifiers are not always structured as URIs. An identifierLocator is a
location hint (a URL) that provides contextual information relevant to the
identifier."""@en .

spdx-core:import a owl:ObjectProperty ;
    rdfs:label "import"@en ;
    rdfs:comment "Provides an ExternalMap of Element identifiers."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ExternalMap ;
    skos:definition "Provides an ExternalMap of Element identifiers."@en ;
    skos:note """An import provides an ExternalMap of an Element identifier that is used within a
document but defined external to that document."""@en .

spdx-core:inLanguage a owl:DatatypeProperty ;
    rdfs:label "inLanguage"@en ;
    rdfs:comment "Specifies a human language used within the content of an Element or a property."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Specifies a human language used within the content of an Element or a property."@en ;
    skos:note """Specifies a human language used within the content of an Element or a property.

The property value shall be an
IETF BCP 47 language tag <https://datatracker.ietf.org/doc/rfc5646/>
used to indicating human languages, dialects, scripts, regions, and variants."""@en .

spdx-core:intendedUse a owl:DatatypeProperty ;
    rdfs:label "intendedUse"@en ;
    rdfs:comment """A statement of how, or for what purpose, an item or artifact is intended
to be used."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """A statement of how, or for what purpose, an item or artifact is intended
to be used."""@en ;
    skos:note """A free-form textual description outlining the scope and boundaries of
appropriate or intended applications for the item or artifact."""@en .

spdx-core:isoAutomationLevel a owl:ObjectProperty ;
    rdfs:label "isoAutomationLevel"@en ;
    rdfs:comment "ISO level of automation."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:IsoAutomationLevel ;
    skos:definition "ISO level of automation."@en ;
    skos:note """The level of automation describes a spectrum of system capability, defining
the degree of control and decision-making authority a system possesses
relative to an external control.

This classification helps to define the roles and responsibilities of both the
human operator and the automated system. It is a critical component for risk
assessment, regulatory compliance, and user interface design."""@en .

spdx-core:issuingAuthority a owl:DatatypeProperty ;
    rdfs:label "issuingAuthority"@en ;
    rdfs:comment "An entity that is authorized to issue identification credentials."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "An entity that is authorized to issue identification credentials."@en ;
    skos:note """An issuingAuthority is an entity that is authorized to issue identification
credentials.

The entity may be a government, non-profit, educational institution, or
commercial enterprise.

The string provides a unique identifier for the issuing authority."""@en .

spdx-core:locationHint a owl:DatatypeProperty ;
    rdfs:label "locationHint"@en ;
    rdfs:comment "Provides an indication of where to retrieve an external Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Provides an indication of where to retrieve an external Element."@en ;
    skos:note "A locationHint provides an indication of where to retrieve an external Element."@en .

spdx-core:locationTime a owl:DatatypeProperty ;
    rdfs:label "locationTime"@en ;
    rdfs:comment "A known location is specified at this time."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "A known location is specified at this time."@en ;
    skos:note """The locationTime establishes the relationship between a specific time and location. For example, at 8:45 the company's headquarters is located at this location.
An action occurred at this location at this specific time."""@en .

spdx-core:locator a owl:DatatypeProperty ;
    rdfs:label "locator"@en ;
    rdfs:comment "Provides the location of an external reference."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Provides the location of an external reference."@en ;
    skos:note "A locator provides the location of an external reference."@en .

spdx-core:name a owl:DatatypeProperty ;
    rdfs:label "name"@en ;
    rdfs:comment "Identifies the name of an Element as designated by the creator."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Identifies the name of an Element as designated by the creator."@en ;
    skos:note """This field identifies the name of an Element as designated by the creator.

The name of an Element is an important convention and easier to refer to than
the URI."""@en .

spdx-core:namespace a owl:DatatypeProperty ;
    rdfs:label "namespace"@en ;
    rdfs:comment """Provides an unambiguous mechanism for conveying a URI fragment portion of an
Element ID."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:anyURI ;
    skos:definition """Provides an unambiguous mechanism for conveying a URI fragment portion of an
Element ID."""@en ;
    skos:note """A namespace provides an unambiguous mechanism for conveying a URI fragment
portion of an Element ID."""@en .

spdx-core:namespaceMap a owl:ObjectProperty ;
    rdfs:label "namespaceMap"@en ;
    rdfs:comment "Provides a NamespaceMap of prefixes and associated namespace partial URIs applicable to an SpdxDocument and independent of any specific serialization format or instance."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:NamespaceMap ;
    skos:definition "Provides a NamespaceMap of prefixes and associated namespace partial URIs applicable to an SpdxDocument and independent of any specific serialization format or instance."@en ;
    skos:note "This field provides a NamespaceMap of prefixes and associated namespace partial URIs applicable to an SpdxDocument and independent of any specific serialization format or instance."@en .

spdx-core:originatedBy a owl:ObjectProperty ;
    rdfs:label "originatedBy"@en ;
    rdfs:comment "Identifies from where or whom the Element originally came."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "Identifies from where or whom the Element originally came."@en ;
    skos:note "An originatedBy identifies from where or whom the Element originally came."@en .

spdx-core:packageVerificationCodeExcludedFile a owl:DatatypeProperty ;
    rdfs:label "packageVerificationCodeExcludedFile"@en ;
    rdfs:comment """The relative file name of a file to be excluded from the
PackageVerificationCode."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """The relative file name of a file to be excluded from the
PackageVerificationCode."""@en ;
    skos:note """A relative filename with the root of the package archive or directory
referencing a file to be excluded from the PackageVerificationCode.

Every filename is preceded with a ./."""@en .

spdx-core:postOfficeBoxNumber a owl:DatatypeProperty ;
    rdfs:label "postOfficeBoxNumber"@en ;
    rdfs:comment "The number that identifies a PO box. A PO box is a box in a post office or other postal service location assigned to an organization where postal items may be kept."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "The number that identifies a PO box. A PO box is a box in a post office or other postal service location assigned to an organization where postal items may be kept."@en ;
    skos:note "A postal box (P.O. Box) is a secure, numbered mailbox located at a post office or mail facility, used to receive mail. It provides a fixed mailing address, independent of a physical home or business location."@en .

spdx-core:postalCode a owl:DatatypeProperty ;
    rdfs:label "postalCode"@en ;
    rdfs:comment "Text specifying the postal code for an address."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Text specifying the postal code for an address."@en ;
    skos:note "Text specifying the postal code for an address."@en .

spdx-core:postalName a owl:DatatypeProperty ;
    rdfs:label "postalName"@en ;
    rdfs:comment "The name of the recipient expressed in text."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "The name of the recipient expressed in text."@en ;
    skos:note "postalName is a property that specifies the name of the organization, entity, or addressee to which mail or deliveries should be directed."@en .

spdx-core:prefix a owl:DatatypeProperty ;
    rdfs:label "prefix"@en ;
    rdfs:comment "A substitute for a URI."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A substitute for a URI."@en ;
    skos:note "A prefix is a substitute for a URI."@en .

spdx-core:processReadiness a owl:DatatypeProperty ;
    rdfs:label "processReadiness"@en ;
    rdfs:comment "The readiness of a process."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ProcessReadinessType ;
    skos:definition "The readiness of a process."@en ;
    skos:note """The readiness of a process, expressed using the ProcessReadinessType
enumeration."""@en .

spdx-core:profileConformance a owl:ObjectProperty ;
    rdfs:label "profileConformance"@en ;
    rdfs:comment """Describes one a profile which the creator of this ElementCollection intends to
conform to."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ProfileIdentifierType ;
    skos:definition """Describes one a profile which the creator of this ElementCollection intends to
conform to."""@en ;
    skos:note """Describes a profile to which the creator of this ElementCollection intends to
conform.

The profileConformance will apply to all Elements contained within the
collection as well as the collection itself.

Conformance to a profile is defined by the additional restrictions documented
in the profile specific documentation and schema files.

Use of this property allows the creator of an ElementCollection to communicate
to consumers their intent to adhere to the profile additional restrictions.

The profileConformance has a default value of "core" if no other
profileConformance is specified since all ElementCollections and Element shall
adhere to the Core profile."""@en .

spdx-core:provinceStateCode a owl:DatatypeProperty ;
    rdfs:label "provinceStateCode"@en ;
    rdfs:comment "Text specifying a province or state."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Text specifying a province or state."@en ;
    skos:note "Text specifying a province or state (e.g., Buenos Aires, California, Cebu)."@en .

spdx-core:quantity a owl:DatatypeProperty ;
    rdfs:label "quantity"@en ;
    rdfs:comment "Quantity is the amount in the selected QUDT unit."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Quantity is the amount in the selected QUDT unit."@en ;
    skos:note """Quantity is a property that defines the count, multitude or magnitude.

Express it as an xsd:decimal whenever possible.
If it is not an xsd:decimal, place the notation being used in the parent element's comment field."""@en .

spdx-core:referenceSpecification a owl:ObjectProperty ;
    rdfs:label "referenceSpecification"@en ;
    rdfs:comment "referenceSpecification provides a reference to a DefinedType that defines the specific meaning, structure, and semantics of a Role. It connects the role to its authoritative source definition, ensuring consistent interpretation across different contexts."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:DefinedType ;
    skos:definition "referenceSpecification provides a reference to a DefinedType that defines the specific meaning, structure, and semantics of a Role. It connects the role to its authoritative source definition, ensuring consistent interpretation across different contexts."@en ;
    skos:note "referenceSpecification is an object property that links a Role element to an instance of DefinedType. This property establishes the authoritative source and type specification that defines what the role represents, its boundaries, and its intended interpretation. It specifies the tasks, rights, and qualifications associated with the role."@en .

spdx-core:releaseTime a owl:DatatypeProperty ;
    rdfs:label "releaseTime"@en ;
    rdfs:comment "Specifies the time an artifact was released."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Specifies the time an artifact was released."@en ;
    skos:note "A releaseTime specifies the time an artifact was released."@en .

spdx-core:requirementStatement a owl:DatatypeProperty ;
    rdfs:label "requirementStatement"@en ;
    rdfs:comment "A textual expression describing the actual need defined by the requirement."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A textual expression describing the actual need defined by the requirement."@en ;
    skos:note """The text-based portion of a requirement. This statement typically adheres to
established rules and best practices of requirements engineering,
such as the Easy Approach to Requirements Syntax (EARS)."""@en .

spdx-core:requirementStatus a owl:DatatypeProperty ;
    rdfs:label "requirementStatus"@en ;
    rdfs:comment "The assessment of the state of a requirement."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:RequirementStatusType ;
    skos:definition "The assessment of the state of a requirement."@en ;
    skos:note "The status specifies the state of a requirement in its lifecycle."@en .

spdx-core:requirementUID a owl:DatatypeProperty ;
    rdfs:label "requirementUID"@en ;
    rdfs:comment "A requirementUID is a unique identifier assigned to a Requirement."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:ExternalIdentifier ;
    skos:definition "A requirementUID is a unique identifier assigned to a Requirement."@en ;
    skos:note """A unique identifier, as used by requirements management or other lifecycle
management tools, usually a string that follows a project specific naming
convention."""@en .

spdx-core:responsibility a owl:ObjectProperty ;
    rdfs:label "responsibility"@en ;
    rdfs:comment "Describes the specific responsibility of a Role."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Requirement ;
    skos:definition "Describes the specific responsibility of a Role."@en ;
    skos:note "Describes the specific responsibility of a Role."@en .

spdx-core:roleQualification a owl:ObjectProperty ;
    rdfs:label "roleQualification"@en ;
    rdfs:comment "roleQualification specifies the requirements, criteria, or conditions that must be met for an entity to be considered qualified to fulfill a particular role."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Requirement ;
    skos:definition "roleQualification specifies the requirements, criteria, or conditions that must be met for an entity to be considered qualified to fulfill a particular role."@en ;
    skos:note """roleQualification is an object property that links a Role to one or more Requirement elements.
It defines the qualifications—educational, experiential, certification, or competency-based—that an entity must possess to be considered capable of performing the responsibilities associated with the role."""@en .

spdx-core:rootElement a owl:ObjectProperty ;
    rdfs:label "rootElement"@en ;
    rdfs:comment "This property is used to denote the root Element(s) of a tree of elements contained in a BOM."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Element ;
    skos:definition "This property is used to denote the root Element(s) of a tree of elements contained in a BOM."@en ;
    skos:note """This property is used to denote the root Element(s) of a tree of elements contained in a BOM.
The tree consists of other elements directly and indirectly related through properties or Relationships from the root."""@en .

spdx-core:scope a owl:ObjectProperty ;
    rdfs:label "scope"@en ;
    rdfs:comment "Capture the scope of information about a specific relationship between elements."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:LifecycleScopeType ;
    skos:definition "Capture the scope of information about a specific relationship between elements."@en ;
    skos:note "A scope is additional context about a relationship, that clarifies the relationship between elements."@en .

spdx-core:specType a owl:DatatypeProperty ;
    rdfs:label "specType"@en ;
    rdfs:comment "A specification type defines the nature of a specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:SpecificationType ;
    skos:definition "A specification type defines the nature of a specification."@en ;
    skos:note "A specification type defines the nature of a specification."@en .

spdx-core:specVersion a owl:DatatypeProperty ;
    rdfs:label "specVersion"@en ;
    rdfs:comment """Provides a reference number that can be used to understand how to parse and
interpret an Element."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """Provides a reference number that can be used to understand how to parse and
interpret an Element."""@en ;
    skos:note """The specVersion provides a reference number that can be used to understand how
to parse and interpret an Element.
It will enable both future changes to the specification and to support backward
compatibility.

The major version number shall be incremented when incompatible changes between
versions are made (one or more sections are created, modified or deleted).
The minor version number shall be incremented when backwards compatible changes
are made.
The optional patch version number shall be incremented when backward compatible bug
fixes are made.
If no patch version is present, the latest released patch version can be assumed.

Here, parties exchanging information in accordance with the SPDX specification
need to provide 100% transparency as to which SPDX specification version such
information is conforming to."""@en .

spdx-core:standardName a owl:DatatypeProperty ;
    rdfs:label "standardName"@en ;
    rdfs:comment "The name of a relevant standard that may apply to an artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "The name of a relevant standard that may apply to an artifact."@en ;
    skos:note """Various standards may be relevant or useful to capture for specific artifacts.

This does not imply that the artifact is compliant with the standard,
but rather that the standard is used as a reference or guideline for
the design, implementation, production, or evaluation of the artifact.

For compliance with a standard, use the standardCompliance property instead."""@en .

spdx-core:statement a owl:DatatypeProperty ;
    rdfs:label "statement"@en ;
    rdfs:comment "Commentary on an assertion that an annotator has made."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Commentary on an assertion that an annotator has made."@en ;
    skos:note "A statement is a commentary on an assertion that an annotator has made."@en .

spdx-core:streetAddress a owl:DatatypeProperty ;
    rdfs:label "streetAddress"@en ;
    rdfs:comment "Street address includes a street number, name and unit ID to identify a specific street."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Street address includes a street number, name and unit ID to identify a specific street."@en ;
    skos:note "Street address includes a street number, name and unit ID to identify a specific street."@en .

spdx-core:subject a owl:ObjectProperty ;
    rdfs:label "subject"@en ;
    rdfs:comment "An Element an annotator has made an assertion about."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Element ;
    skos:definition "An Element an annotator has made an assertion about."@en ;
    skos:note "A subject is an Element an annotator has made an assertion about."@en .

spdx-core:summary a owl:DatatypeProperty ;
    rdfs:label "summary"@en ;
    rdfs:comment "A short description of an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A short description of an Element."@en ;
    skos:note """A summary is a short description of an Element. Here, the intent is to allow
the Element creator to provide concise information about the function or use of
the Element."""@en .

spdx-core:typeFromSource a owl:DatatypeProperty ;
    rdfs:label "typeFromSource"@en ;
    rdfs:comment "typeFromSource is a value used to define an item within the definitionSource."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "typeFromSource is a value used to define an item within the definitionSource."@en ;
    skos:note """A typeFromSource is a specific term or label assigned within a definitionSource to define or identify an item, concept, or category.
It represents a unique or standardized value within the classification system that helps categorize and describe the item's place or characteristics within the overall definitionSource."""@en .

spdx-core:unitQUDT a owl:DatatypeProperty ;
    rdfs:label "unitQUDT"@en ;
    rdfs:comment """A QUDT unit applied to measurement criteria based on product type, region,
and use."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """A QUDT unit applied to measurement criteria based on product type, region,
and use."""@en ;
    skos:note """QUDT (Quantity, Unit, Dimension and Type) specifies a standardized framework
for describing measurable quantities, units of measure, numerical values,
and their underlying data structures and types.

The QUDT ontology and specifications are available at https://www.qudt.org/."""@en .

spdx-core:validUntilTime a owl:DatatypeProperty ;
    rdfs:label "validUntilTime"@en ;
    rdfs:comment """Specifies until when the artifact can be used before its usage needs to be
reassessed."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition """Specifies until when the artifact can be used before its usage needs to be
reassessed."""@en ;
    skos:note """A validUntilTime specifies until when the artifact can be used before its usage
needs to be reassessed."""@en .

spdx-core:value a owl:DatatypeProperty ;
    rdfs:label "value"@en ;
    rdfs:comment "A value used in a generic key-value pair."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A value used in a generic key-value pair."@en ;
    skos:note """A value used in a generic key-value pair.

A key-value pair can be used to implement a dictionary which associates a key
with a value."""@en .

<https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/amber> a owl:NamedIndividual,
        spdx-dataset:ConfidentialityLevelType ;
    rdfs:label "amber"@en ;
    rdfs:comment "Limited distribution - organization and clients. The dataset shall be shared only with specific organizations and their clients on a need-to-know basis."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Limited distribution - organization and clients. The dataset shall be shared only with specific organizations and their clients on a need-to-know basis."@en .

<https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/amberStrict> a owl:NamedIndividual,
        spdx-dataset:ConfidentialityLevelType ;
    rdfs:label "amberStrict"@en ;
    rdfs:comment "Limited distribution - organization only. The dataset shall be shared only with specific organizations on a need-to-know basis."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Limited distribution - organization only. The dataset shall be shared only with specific organizations on a need-to-know basis."@en .

<https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/clear> a owl:NamedIndividual,
        spdx-dataset:ConfidentialityLevelType ;
    rdfs:label "clear"@en ;
    rdfs:comment "Unlimited. Subject to standard copyright rules, the dataset may be shared freely, without restriction."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Unlimited. Subject to standard copyright rules, the dataset may be shared freely, without restriction."@en .

<https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/green> a owl:NamedIndividual,
        spdx-dataset:ConfidentialityLevelType ;
    rdfs:label "green"@en ;
    rdfs:comment "Community wide. The dataset shall be shared only within a community of peers and partners."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Community wide. The dataset shall be shared only within a community of peers and partners."@en .

<https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/red> a owl:NamedIndividual,
        spdx-dataset:ConfidentialityLevelType ;
    rdfs:label "red"@en ;
    rdfs:comment "For named recipients only. The dataset is highly confidential and shall be shared only with named recipients."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "For named recipients only. The dataset is highly confidential and shall be shared only with named recipients."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/clickthrough> a owl:NamedIndividual,
        spdx-dataset:DatasetAvailabilityType ;
    rdfs:label "clickthrough"@en ;
    rdfs:comment "Dataset is not publicly available and can only be accessed after affirmatively accepting terms on a clickthrough webpage."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Dataset is not publicly available and can only be accessed after affirmatively accepting terms on a clickthrough webpage."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/directDownload> a owl:NamedIndividual,
        spdx-dataset:DatasetAvailabilityType ;
    rdfs:label "directDownload"@en ;
    rdfs:comment "Dataset is publicly available and can be downloaded directly."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Dataset is publicly available and can be downloaded directly."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/query> a owl:NamedIndividual,
        spdx-dataset:DatasetAvailabilityType ;
    rdfs:label "query"@en ;
    rdfs:comment "Dataset is publicly available, but not all at once, and can only be accessed through queries which return parts of the dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Dataset is publicly available, but not all at once, and can only be accessed through queries which return parts of the dataset."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/registration> a owl:NamedIndividual,
        spdx-dataset:DatasetAvailabilityType ;
    rdfs:label "registration"@en ;
    rdfs:comment "Dataset is not publicly available and an email registration is required before accessing the dataset, although without an affirmative acceptance of terms."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Dataset is not publicly available and an email registration is required before accessing the dataset, although without an affirmative acceptance of terms."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/scrapingScript> a owl:NamedIndividual,
        spdx-dataset:DatasetAvailabilityType ;
    rdfs:label "scrapingScript"@en ;
    rdfs:comment "Dataset provider is not making available the underlying data and the dataset shall be reassembled, typically using the provided script for scraping the data."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Dataset provider is not making available the underlying data and the dataset shall be reassembled, typically using the provided script for scraping the data."@en .

spdx-dataset:DatasetPackage a owl:Class,
        sh:NodeShape ;
    rdfs:label "DatasetPackage"@en ;
    rdfs:comment "A Package that contains a dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:subClassOf spdx-software:Package ;
    skos:definition "A Package that contains a dataset."@en ;
    skos:note """A Package that contains data used for the operation, training,
testing, evaluation, or calibration of software, hardware, or systems,
or for reporting, documentation, reference, and archival purposes."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/PresenceType/yes> <https://spdx.org/rdf/3/terms/Core/PresenceType/no> <https://spdx.org/rdf/3/terms/Core/PresenceType/noAssertion> ) ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:hasSensitivePersonalInformation ],
        [ sh:datatype xsd:string ;
            sh:path spdx-core:inLanguage ;
            sh:pattern "^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{1,8})*$" ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/red> <https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/amberStrict> <https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/amber> <https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/green> <https://spdx.org/rdf/3/terms/Dataset/ConfidentialityLevelType/clear> ) ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:confidentialityLevel ],
        [ sh:datatype xsd:string ;
            sh:path spdx-dataset:anonymizationMethodUsed ],
        [ sh:datatype xsd:string ;
            sh:path spdx-dataset:knownBias ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-dataset:sensor ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:dataCollectionProcess ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:intendedUse ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:datasetNoise ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Dataset/DatasetType/audio> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/categorical> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/graph> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/image> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/noAssertion> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/numeric> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/other> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/sensor> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/structured> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/syntactic> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/text> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/timeseries> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/timestamp> <https://spdx.org/rdf/3/terms/Dataset/DatasetType/video> ) ;
            sh:minCount 1 ;
            sh:path spdx-dataset:datasetType ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:datasetUpdateMechanism ],
        [ sh:datatype xsd:string ;
            sh:path spdx-dataset:dataPreprocessing ],
        [ sh:datatype xsd:nonNegativeInteger ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:datasetSize ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/clickthrough> <https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/directDownload> <https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/query> <https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/registration> <https://spdx.org/rdf/3/terms/Dataset/DatasetAvailabilityType/scrapingScript> ) ;
            sh:maxCount 1 ;
            sh:path spdx-dataset:datasetAvailability ] .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/audio> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "audio"@en ;
    rdfs:comment "Data is audio based, such as a collection of music from the 80s."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is audio based, such as a collection of music from the 80s."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/categorical> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "categorical"@en ;
    rdfs:comment "Data that is classified into a discrete number of categories, such as the eye color of a population of people."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data that is classified into a discrete number of categories, such as the eye color of a population of people."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/graph> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "graph"@en ;
    rdfs:comment "Data is in the form of a graph where entries are somehow related to each other through edges, such as a social network of friends."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is in the form of a graph where entries are somehow related to each other through edges, such as a social network of friends."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/image> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "image"@en ;
    rdfs:comment "Data is a collection of images such as pictures of animals."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is a collection of images such as pictures of animals."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/noAssertion> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "noAssertion"@en ;
    rdfs:comment "Data type is not known."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data type is not known."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/numeric> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "numeric"@en ;
    rdfs:comment "Data consists only of numeric entries."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data consists only of numeric entries."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/other> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "other"@en ;
    rdfs:comment "Data is of a type not included in this list."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is of a type not included in this list."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/sensor> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "sensor"@en ;
    rdfs:comment "Data is recorded from a physical sensor, such as a thermometer reading or biometric device."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is recorded from a physical sensor, such as a thermometer reading or biometric device."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/structured> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "structured"@en ;
    rdfs:comment "Data is stored in tabular format or retrieved from a relational database."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is stored in tabular format or retrieved from a relational database."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/syntactic> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "syntactic"@en ;
    rdfs:comment "Data describes the syntax or semantics of a language or text, such as a parse tree used for natural language processing."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data describes the syntax or semantics of a language or text, such as a parse tree used for natural language processing."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/text> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "text"@en ;
    rdfs:comment "Data consists of unstructured text, such as a book, a Wikipedia article (without images), or a transcript."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data consists of unstructured text, such as a book, a Wikipedia article (without images), or a transcript."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/timeseries> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "timeseries"@en ;
    rdfs:comment "Data is recorded in an ordered sequence of timestamped entries, such as the price of a stock over the course of a day."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is recorded in an ordered sequence of timestamped entries, such as the price of a stock over the course of a day."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/timestamp> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "timestamp"@en ;
    rdfs:comment "Data is recorded with a timestamp for each entry, but not necessarily ordered or at specific intervals, such as when a taxi ride starts and ends."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is recorded with a timestamp for each entry, but not necessarily ordered or at specific intervals, such as when a taxi ride starts and ends."@en .

<https://spdx.org/rdf/3/terms/Dataset/DatasetType/video> a owl:NamedIndividual,
        spdx-dataset:DatasetType ;
    rdfs:label "video"@en ;
    rdfs:comment "Data is video based, such as a collection of movie clips."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Data is video based, such as a collection of movie clips."@en .

spdx-dataset:anonymizationMethodUsed a owl:DatatypeProperty ;
    rdfs:label "anonymizationMethodUsed"@en ;
    rdfs:comment "Anonymization methods used."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition "Anonymization methods used."@en ;
    skos:note """A free-form text that describes the methods used to anonymize the dataset
or fields in the dataset."""@en .

spdx-dataset:confidentialityLevel a owl:ObjectProperty ;
    rdfs:label "confidentialityLevel"@en ;
    rdfs:comment "Confidentiality level of the data points contained in the dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range spdx-dataset:ConfidentialityLevelType ;
    skos:definition "Confidentiality level of the data points contained in the dataset."@en ;
    skos:note "Describes the levels of confidentiality of the data points contained in the dataset."@en .

spdx-dataset:dataCollectionProcess a owl:DatatypeProperty ;
    rdfs:label "dataCollectionProcess"@en ;
    rdfs:comment "How the dataset was collected."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition "How the dataset was collected."@en ;
    skos:note """A free-form text that describes how a dataset was collected.

Examples include the sources from which a dataset was scraped and
the interview protocol that was used for data collection."""@en .

spdx-dataset:dataPreprocessing a owl:DatatypeProperty ;
    rdfs:label "dataPreprocessing"@en ;
    rdfs:comment "Preprocessing steps that were applied to the raw data to create the given dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition "Preprocessing steps that were applied to the raw data to create the given dataset."@en ;
    skos:note """A free-form text that describes the various preprocessing steps
that were applied to the raw data to create the dataset.

Examples include standardization, normalization, deduplication, tokenization, and removal of tokens."""@en .

spdx-dataset:datasetAvailability a owl:ObjectProperty ;
    rdfs:label "datasetAvailability"@en ;
    rdfs:comment "Availability of a dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range spdx-dataset:DatasetAvailabilityType ;
    skos:definition "Availability of a dataset."@en ;
    skos:note "Some datasets are publicly available and can be downloaded directly. Others are only accessible behind a clickthrough, or after filling a registration form. This field will describe the dataset availability from that perspective."@en .

spdx-dataset:datasetNoise a owl:DatatypeProperty ;
    rdfs:label "datasetNoise"@en ;
    rdfs:comment "Potentially noisy elements of the dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition "Potentially noisy elements of the dataset."@en ;
    skos:note """Describes what kinds of noises a dataset can encompass.

The free-form text specifies fields or samples that can be noisy.

Alternatively, it can also be used to describe various noises that can
impact the whole dataset."""@en .

spdx-dataset:datasetSize a owl:DatatypeProperty ;
    rdfs:label "datasetSize"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use /Software/artifactSize
instead.

Size of the dataset."""@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:nonNegativeInteger ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use /Software/artifactSize
instead.

Size of the dataset."""@en ;
    skos:note """**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use
/Software/artifactSize
instead.

How large a dataset is.

The size is to be measured in bytes."""@en .

spdx-dataset:datasetType a owl:ObjectProperty ;
    rdfs:label "datasetType"@en ;
    rdfs:comment "Type of data in a dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range spdx-dataset:DatasetType ;
    skos:definition "Type of data in a dataset."@en ;
    skos:note """Describes the datatype contained in the dataset.

For example, a dataset can be an image dataset for computer vision applications, a text dataset such as the contents of a book or Wikipedia article, or sometimes a multimodal dataset that contains multiple types of data."""@en .

spdx-dataset:datasetUpdateMechanism a owl:DatatypeProperty ;
    rdfs:label "datasetUpdateMechanism"@en ;
    rdfs:comment "Mechanism to update the dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition "Mechanism to update the dataset."@en ;
    skos:note "A free-form text that describes a mechanism to update the dataset."@en .

spdx-dataset:hasSensitivePersonalInformation a owl:ObjectProperty ;
    rdfs:label "hasSensitivePersonalInformation"@en ;
    rdfs:comment "Describes if any sensitive personal information is present in the dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range spdx-core:PresenceType ;
    skos:definition "Describes if any sensitive personal information is present in the dataset."@en ;
    skos:note """Indicates the presence of sensitive personal data
or information that allows drawing conclusions about a person's identity.

Related: useSensitivePersonalInformation in /AI/AIPackage"""@en .

spdx-dataset:intendedUse a owl:DatatypeProperty ;
    rdfs:label "intendedUse"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use /Core/intendedUse instead.

The intended use of a given dataset."""@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use /Core/intendedUse instead.

The intended use of a given dataset."""@en ;
    skos:note """**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use
/Core/intendedUse
instead.

A free-form text that describes what the given dataset should be used for.

Some datasets are collected to be used only for particular purposes.

For example, medical data collected from a specific demography should only be applicable
for training machine learning models to make predictions for that demography.
In such a case, the intendedUse field would capture this information.
Similarly, if a dataset is collected for building a facial recognition model,
the intendedUse field would specify that."""@en .

spdx-dataset:knownBias a owl:DatatypeProperty ;
    rdfs:label "knownBias"@en ;
    rdfs:comment "Records the biases that the dataset is known to encompass."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range xsd:string ;
    skos:definition "Records the biases that the dataset is known to encompass."@en ;
    skos:note "A free-form text that describes the different biases that the dataset encompasses."@en .

spdx-dataset:sensor a owl:ObjectProperty ;
    rdfs:label "sensor"@en ;
    rdfs:comment "Describes a sensor used for collecting the data."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Describes a sensor used for collecting the data."@en ;
    skos:note """Describes a sensor that was used for collecting the data
and its calibration value as a key-value pair."""@en .

spdx-expandedlicensing:additionText a owl:DatatypeProperty ;
    rdfs:label "additionText"@en ;
    rdfs:comment "Identifies the full text of a LicenseAddition."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition "Identifies the full text of a LicenseAddition."@en ;
    skos:note """An additionText contains the plain text of the LicenseAddition, without
templating or other similar markup.

Users of the additionText for a License can apply the
SPDX License List Matching Guidelines
when comparing it to another text for matching purposes."""@en .

spdx-expandedlicensing:isDeprecatedAdditionId a owl:DatatypeProperty ;
    rdfs:label "isDeprecatedAdditionId"@en ;
    rdfs:comment "Specifies whether an additional text identifier has been marked as deprecated."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:boolean ;
    skos:definition "Specifies whether an additional text identifier has been marked as deprecated."@en ;
    skos:note """The isDeprecatedAdditionId property specifies whether an identifier for a
LicenseAddition has been marked as deprecated. If the property is not defined,
then it is presumed to be false (i.e., not deprecated).

If the LicenseAddition is included on the
SPDX License Exceptions <https://spdx.org/licenses/exceptions-index.html>,
then the deprecatedVersion property indicates on which version release of the
Exceptions List it was first marked as deprecated.

"Deprecated" in this context refers to deprecating the use of the
_identifier_, not the underlying license addition. In other words, even if a
LicenseAddition's author or steward has stated that a particular
LicenseAddition generally should not be used, that would _not_ mean that the
LicenseAddition's identifier is "deprecated." Rather, a LicenseAddition
operator is typically marked as "deprecated" when it is determined that use of
another identifier is preferable."""@en .

spdx-expandedlicensing:isDeprecatedLicenseId a owl:DatatypeProperty ;
    rdfs:label "isDeprecatedLicenseId"@en ;
    rdfs:comment """Specifies whether a license or additional text identifier has been marked as
deprecated."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:boolean ;
    skos:definition """Specifies whether a license or additional text identifier has been marked as
deprecated."""@en ;
    skos:note """The isDeprecatedLicenseId property specifies whether an identifier for a
License or LicenseAddition has been marked as deprecated. If the property
is not defined, then it is presumed to be false (i.e., not deprecated).

If the License or LicenseAddition is included on the
SPDX License List <https://spdx.org/licenses/>, then
the deprecatedVersion property indicates on which version release of the
License List it was first marked as deprecated.

"Deprecated" in this context refers to deprecating the use of the
_identifier_, not the underlying license. In other words, even if a License's
author or steward has stated that a particular License generally should not be
used, that would _not_ mean that the License's identifier is "deprecated."
Rather, a License or LicenseAddition operator is typically marked as
"deprecated" when it is determined that use of another identifier is
preferable."""@en .

spdx-expandedlicensing:isFsfLibre a owl:DatatypeProperty ;
    rdfs:label "isFsfLibre"@en ;
    rdfs:comment """Specifies whether the License is listed as free by the
Free Software Foundation (FSF)."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:boolean ;
    skos:definition """Specifies whether the License is listed as free by the
Free Software Foundation (FSF)."""@en ;
    skos:note """isFsfLibre specifies whether the
Free Software Foundation (FSF) <https://fsf.org>
has listed this License as "free" in their commentary on licenses, located at
the time of this writing at
Various Licenses and Comments about Them <https://www.gnu.org/licenses/license-list.en.html>.

A value of "true" indicates that the license is in the list of licenses that
FSF publishes as libre.

A value of "false" indicates that the license is explicitly not in the
corresponding list of FSF libre licenses (e.g., FSF has the license on a
non-free list).

If the isFsfLibre field is not specified, the SPDX data creator makes no
assertions about whether the License is listed in the FSF's commentary."""@en .

spdx-expandedlicensing:isOsiApproved a owl:DatatypeProperty ;
    rdfs:label "isOsiApproved"@en ;
    rdfs:comment """Specifies whether the License is listed as approved by the
Open Source Initiative (OSI)."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:boolean ;
    skos:definition """Specifies whether the License is listed as approved by the
Open Source Initiative (OSI)."""@en ;
    skos:note """isOsiApproved specifies whether the
Open Source Initiative (OSI) <https://opensource.org>
has listed this License as "approved" in their list of OSI Approved Licenses,
located at the time of this writing at
OSI Approved Licenses <https://opensource.org/licenses>.

A value of "true" indicates that the license is in the list of licenses that
OSI publishes as approved.

A value of "false" indicates that the license is explicitly not in the
corresponding list of OSI licenses (e.g., OSI has stated publicly that a
license is not approved).

If the isOsiApproved field is not specified, the SPDX data creator makes no
assertions about whether the License is approved by the OSI."""@en .

spdx-expandedlicensing:standardAdditionTemplate a owl:DatatypeProperty ;
    rdfs:label "standardAdditionTemplate"@en ;
    rdfs:comment "Identifies the full text of a LicenseAddition, in SPDX templating format."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition "Identifies the full text of a LicenseAddition, in SPDX templating format."@en ;
    skos:note """A standardAdditionTemplate contains a license addition template which describes
sections of the LicenseAddition text which can be varied.

See the Legacy Text Template format section of the
SPDX License List Matching Guidelines
for format information.

It is recommended to use licenseXml instead, as it can
capture all the text and metadata associated with a license."""@en .

spdx-expandedlicensing:standardLicenseHeader a owl:DatatypeProperty ;
    rdfs:label "standardLicenseHeader"@en ;
    rdfs:comment """Provides a License author's preferred text to indicate that a file is covered
by the License."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition """Provides a License author's preferred text to indicate that a file is covered
by the License."""@en ;
    skos:note """A standardLicenseHeader contains the plain text of the License author's
preferred wording to be used, typically in a source code file's header
comments or similar location, to indicate that the file is subject to
the specified License."""@en .

spdx-expandedlicensing:standardLicenseTemplate a owl:DatatypeProperty ;
    rdfs:label "standardLicenseTemplate"@en ;
    rdfs:comment "Identifies the full text of a License, in SPDX templating format."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition "Identifies the full text of a License, in SPDX templating format."@en ;
    skos:note """A standardLicenseTemplate contains a license template which describes sections
of the License text which can be varied.

See the Legacy Text Template format section of the
SPDX License List Matching Guidelines
for format information.

It is recommended to use licenseXml instead, as it can
capture all the text and metadata associated with a license."""@en .

spdx-expandedlicensing:subjectAddition a owl:ObjectProperty ;
    rdfs:label "subjectAddition"@en ;
    rdfs:comment "A LicenseAddition participating in a 'with addition' model."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range spdx-expandedlicensing:LicenseAddition ;
    skos:definition "A LicenseAddition participating in a 'with addition' model."@en ;
    skos:note """A subjectAddition is a LicenseAddition which is subject to a 'with additional
text' effect (WithAdditionOperator)."""@en .

spdx-expandedlicensing:subjectExtendableLicense a owl:ObjectProperty ;
    rdfs:label "subjectExtendableLicense"@en ;
    rdfs:comment "A License participating in a 'with addition' model."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range spdx-expandedlicensing:ExtendableLicense ;
    skos:definition "A License participating in a 'with addition' model."@en ;
    skos:note """A subjectExtendableLicense is a License which is subject to a 'with additional
text' effect (WithAdditionOperator)."""@en .

spdx-expandedlicensing:subjectLicense a owl:ObjectProperty ;
    rdfs:label "subjectLicense"@en ;
    rdfs:comment "A License participating in an 'or later' model."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range spdx-expandedlicensing:License ;
    skos:definition "A License participating in an 'or later' model."@en ;
    skos:note """A subjectLicense is a License which is subject an 'or later' effect
(OrLaterOperator)."""@en .

spdx-extension:CdxPropertiesExtension a owl:Class,
        sh:NodeShape ;
    rdfs:label "CdxPropertiesExtension"@en ;
    rdfs:comment "A type of extension consisting of a list of name value pairs."@en ;
    rdfs:isDefinedBy spdx-extension: ;
    rdfs:subClassOf spdx-extension:Extension ;
    skos:definition "A type of extension consisting of a list of name value pairs."@en ;
    skos:note """This extension provides a more structured extension using a name-value
approach.

Unlike key-value stores, properties in CdxPropertiesExtension support duplicate names, each
potentially having different values.

This is intended to be compatible with the CycloneDX property properties."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:class spdx-extension:CdxPropertyEntry ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-extension:cdxProperty ] .

spdx-extension:cdxPropName a owl:DatatypeProperty ;
    rdfs:label "cdxPropName"@en ;
    rdfs:comment "A name used in a CdxPropertyEntry name-value pair."@en ;
    rdfs:isDefinedBy spdx-extension: ;
    rdfs:range xsd:string ;
    skos:definition "A name used in a CdxPropertyEntry name-value pair."@en ;
    skos:note """A cdxPropName is used in a CdxPropertyEntry name-value pair.

Unlike key-value stores, properties in CdxPropertiesExtension support duplicate
names, each potentially having different values."""@en .

spdx-extension:cdxPropValue a owl:DatatypeProperty ;
    rdfs:label "cdxPropValue"@en ;
    rdfs:comment "A value used in a CdxPropertyEntry name-value pair."@en ;
    rdfs:isDefinedBy spdx-extension: ;
    rdfs:range xsd:string ;
    skos:definition "A value used in a CdxPropertyEntry name-value pair."@en ;
    skos:note """A cdxPropValue is used in a CdxPropertyEntry name-value pair.

Unlike key-value stores, properties in CdxPropertiesExtension support duplicate
names, each potentially having different values."""@en .

spdx-extension:cdxProperty a owl:ObjectProperty ;
    rdfs:label "cdxProperty"@en ;
    rdfs:comment "Provides a map of a property name to a value."@en ;
    rdfs:isDefinedBy spdx-extension: ;
    rdfs:range spdx-extension:CdxPropertyEntry ;
    skos:definition "Provides a map of a property name to a value."@en ;
    skos:note """This field provides a mapping of a name to a value.

This is intended to be compatible with the CycloneDX property properties.

Unlike key-value stores, properties in CdxPropertiesExtension support duplicate
names, each potentially having different values."""@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvaluationResultType/fail> a owl:NamedIndividual,
        spdx-functionalsafety:EvaluationResultType ;
    rdfs:label "fail"@en ;
    rdfs:comment "Indicates a failed evaluation where the requirement or condition is not met."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Indicates a failed evaluation where the requirement or condition is not met."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvaluationResultType/inconclusive> a owl:NamedIndividual,
        spdx-functionalsafety:EvaluationResultType ;
    rdfs:label "inconclusive"@en ;
    rdfs:comment "Inconclusive refers to a result or outcome from a verification, test, or analysis that cannot be clearly classified as either positive (successful, pass) or negative (failed, reject). An inconclusive result means there was not enough clear evidence, data, or signal to make a definitive determination, and further investigation or additional testing is necessary. An inconclusive result always shall need a comment on it."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Inconclusive refers to a result or outcome from a verification, test, or analysis that cannot be clearly classified as either positive (successful, pass) or negative (failed, reject). An inconclusive result means there was not enough clear evidence, data, or signal to make a definitive determination, and further investigation or additional testing is necessary. An inconclusive result always shall need a comment on it."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvaluationResultType/pass> a owl:NamedIndividual,
        spdx-functionalsafety:EvaluationResultType ;
    rdfs:label "pass"@en ;
    rdfs:comment "Indicates a successful evaluation where the requirement or condition is clearly met."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Indicates a successful evaluation where the requirement or condition is clearly met."@en .

spdx-functionalsafety:EvidenceRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "EvidenceRelationship"@en ;
    rdfs:comment "EvidenceRelationship defines the association between pieces of evidence and EvaluationResult."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:subClassOf spdx-core:Relationship ;
    skos:definition "EvidenceRelationship defines the association between pieces of evidence and EvaluationResult."@en ;
    skos:note "EvidenceRelationship defines the association between pieces of evidence and EvaluationResult. This establishes traceability and contextual linkage between evidence items, supporting certification, verification, and audit activities."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/report> <https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/log> <https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/recording> <https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/observation> <https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/other> ) ;
            sh:path spdx-functionalsafety:evidenceCategory ],
        [ sh:class spdx-core:ExternalIdentifier ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-functionalsafety:evidenceUID ] .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/log> a owl:NamedIndividual,
        spdx-functionalsafety:EvidenceType ;
    rdfs:label "log"@en ;
    rdfs:comment "Time-stamped records capturing system or operational data recorded as usually as a response to specific triggers in a specified environment."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Time-stamped records capturing system or operational data recorded as usually as a response to specific triggers in a specified environment."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/observation> a owl:NamedIndividual,
        spdx-functionalsafety:EvidenceType ;
    rdfs:label "observation"@en ;
    rdfs:comment "Documentation of direct monitoring or witnessing of the demonstration of processes, tests, or any kind of system responses during a specified timeframe under specified environmental conditions."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Documentation of direct monitoring or witnessing of the demonstration of processes, tests, or any kind of system responses during a specified timeframe under specified environmental conditions."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/other> a owl:NamedIndividual,
        spdx-functionalsafety:EvidenceType ;
    rdfs:label "other"@en ;
    rdfs:comment "Any other relevant type of proof or documentation not covered above."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Any other relevant type of proof or documentation not covered above."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/recording> a owl:NamedIndividual,
        spdx-functionalsafety:EvidenceType ;
    rdfs:label "recording"@en ;
    rdfs:comment "Captured datastream like audio, video, or any other kind of continuous electronic capture of events, behavior or conditions."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Captured datastream like audio, video, or any other kind of continuous electronic capture of events, behavior or conditions."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/EvidenceType/report> a owl:NamedIndividual,
        spdx-functionalsafety:EvidenceType ;
    rdfs:label "report"@en ;
    rdfs:comment "Structured documentation of test results, inspections, or analyses."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Structured documentation of test results, inspections, or analyses."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/analysis> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "analysis"@en ;
    rdfs:comment "Analytical evaluating of data, designs, or processes methodically to verify correctness against standards or expectations. Typical analysis methods are FMEA, FTA, STPA, static analysis for MISRA compliance etc."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Analytical evaluating of data, designs, or processes methodically to verify correctness against standards or expectations. Typical analysis methods are FMEA, FTA, STPA, static analysis for MISRA compliance etc."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/assessment> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "assessment"@en ;
    rdfs:comment "A systematic examination of a system, process, or outcome to evaluate compliance of specific work products with a specific expectation with a specification, regulation or standard. Often involves judgement and a rationale of this judgement."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "A systematic examination of a system, process, or outcome to evaluate compliance of specific work products with a specific expectation with a specification, regulation or standard. Often involves judgement and a rationale of this judgement."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/audit> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "audit"@en ;
    rdfs:comment "An examination typically focusing on compliance with policies, standards, or regulations. Usually this is done during an audit meeting, while the assessment also involves deep and detailed reviews of work products (e.g. requirements, verification specifications, reports etc.)"@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "An examination typically focusing on compliance with policies, standards, or regulations. Usually this is done during an audit meeting, while the assessment also involves deep and detailed reviews of work products (e.g. requirements, verification specifications, reports etc.)"@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/demonstration> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "demonstration"@en ;
    rdfs:comment "Demonstrating and monitoring or recording that the item under verification to confirm that a requirement is met by the item under verification."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Demonstrating and monitoring or recording that the item under verification to confirm that a requirement is met by the item under verification."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/inspection> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "inspection"@en ;
    rdfs:comment "A thorough examination or checking of documentation, records, processes, or systems to confirm compliance or adherence. An inspection needs to have a defined set of acceptance criteria (e.g. a checklist), a documentation of roles involved in the inspection (e.g. to document the inspector's independence) and a clear documentation of when and how it was performed."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "A thorough examination or checking of documentation, records, processes, or systems to confirm compliance or adherence. An inspection needs to have a defined set of acceptance criteria (e.g. a checklist), a documentation of roles involved in the inspection (e.g. to document the inspector's independence) and a clear documentation of when and how it was performed."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/other> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "other"@en ;
    rdfs:comment "Any other specialized or custom verification method that fits the context."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Any other specialized or custom verification method that fits the context."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/review> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "review"@en ;
    rdfs:comment "A examination or checking of documentation, records, processes, or systems to confirm compliance or adherence with an upper level requirement. Typically done as peer review, offline review or review meeting."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "A examination or checking of documentation, records, processes, or systems to confirm compliance or adherence with an upper level requirement. Typically done as peer review, offline review or review meeting."@en .

<https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/test> a owl:NamedIndividual,
        spdx-functionalsafety:VerificationType ;
    rdfs:label "test"@en ;
    rdfs:comment "Conducting controlled tests, experiments or simulations to verify that specific requirements regarding performance, functionality, robustness, etc. are met."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Conducting controlled tests, experiments or simulations to verify that specific requirements regarding performance, functionality, robustness, etc. are met."@en .

spdx-functionalsafety:assumptionStatement a owl:DatatypeProperty ;
    rdfs:label "assumptionStatement"@en ;
    rdfs:comment "A text describing the design constraint defined by the assumption."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range xsd:string ;
    skos:definition "A text describing the design constraint defined by the assumption."@en ;
    skos:note "The text describing a constraint is imposed by the intended design, the requirement context, or the operational context."@en .

spdx-functionalsafety:assumptionUID a owl:ObjectProperty ;
    rdfs:label "assumptionUID"@en ;
    rdfs:comment "An assumptionUID is a unique identifier assigned to an Assumption item."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-core:ExternalIdentifier ;
    skos:definition "An assumptionUID is a unique identifier assigned to an Assumption item."@en ;
    skos:note """An assumptionUID is a unique identifier assigned to an item that represents
a design constraint."""@en .

spdx-functionalsafety:evaluation a owl:DatatypeProperty ;
    rdfs:label "evaluation"@en ;
    rdfs:comment "Evaluation is an outcome considering results of a verification."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-functionalsafety:EvaluationResultType ;
    skos:definition "Evaluation is an outcome considering results of a verification."@en ;
    skos:note "Evaluation is the judgement, assessment or opinion regarding the compliance of a verification outcome with the expectations of this verification to meet the verification's acceptance criteria."@en .

spdx-functionalsafety:evaluationBasedOn a owl:ObjectProperty ;
    rdfs:label "evaluationBasedOn"@en ;
    rdfs:comment "Indicates the specific RequirementVerification instance on which the EvaluationResult is based."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-functionalsafety:RequirementVerification ;
    skos:definition "Indicates the specific RequirementVerification instance on which the EvaluationResult is based."@en ;
    skos:note "The evaluationBasedOn property represents the linkage to the particular RequirementVerification that serves as the foundation for generating an EvaluationResult. It connects the evaluation outcome to the defined process or activity that verified the requirement, enabling traceability and verification of the evaluation’s basis. This linkage is critical in systems engineering to ensure that evaluation conclusions clearly reference the verified requirements and their verification methods, supporting auditability, compliance, and quality control."@en .

spdx-functionalsafety:evidenceCategory a owl:ObjectProperty ;
    rdfs:label "evidenceCategory"@en ;
    rdfs:comment "evidenceCategory refers to a category of documented or observable proof."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-functionalsafety:EvidenceType ;
    skos:definition "evidenceCategory refers to a category of documented or observable proof."@en ;
    skos:note """evidenceCategory refers to a category of documented or observable proof
used to verify compliance, qualification, or performance."""@en .

spdx-functionalsafety:evidenceUID a owl:ObjectProperty ;
    rdfs:label "evidenceUID"@en ;
    rdfs:comment """A evidenceUID is a unique identifier assigned to an entity, item,
or requirement."""@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-core:ExternalIdentifier ;
    skos:definition """A evidenceUID is a unique identifier assigned to an entity, item,
or requirement."""@en ;
    skos:note """A evidenceUID is a unique identifier assigned to an entity, item,
or any other kind of evaluated verification outcome."""@en .

spdx-functionalsafety:verificationMethod a owl:DatatypeProperty ;
    rdfs:label "verificationMethod"@en ;
    rdfs:comment "verificationMethod refers to the specific approach used for a checking an element's conformance with its requirements."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-functionalsafety:VerificationType ;
    skos:definition "verificationMethod refers to the specific approach used for a checking an element's conformance with its requirements."@en ;
    skos:note "verificationMethod refers to the specific approach used to confirm that a (lower level) requirement or implemented system element complies with its higher level requirement."@en .

spdx-functionalsafety:verificationPostcondition a owl:DatatypeProperty ;
    rdfs:label "verificationPostcondition"@en ;
    rdfs:comment "Verification postcondition that are true immediately after a verification method has been performed"@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range xsd:string ;
    skos:definition "Verification postcondition that are true immediately after a verification method has been performed"@en ;
    skos:note "Verification postcondition are explicit criteria, states, or conditions that are true immediately after a verification method (such as a test, inspection, or analysis) has been performed, confirming the successful execution and complete outcomes of the verification."@en .

spdx-functionalsafety:verificationPrecondition a owl:DatatypeProperty ;
    rdfs:label "verificationPrecondition"@en ;
    rdfs:comment "Verification preconditions are initial criteria that are to be met prior to initiating the verification method."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range xsd:string ;
    skos:definition "Verification preconditions are initial criteria that are to be met prior to initiating the verification method."@en ;
    skos:note "Verification preconditions are specific conditions, requirements, or initial states that are to be satisfied before a verification will be executed."@en .

spdx-functionalsafety:verificationUID a owl:ObjectProperty ;
    rdfs:label "verificationUID"@en ;
    rdfs:comment "A verificationUID is a unique identifier assigned to a Verification item."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:range spdx-core:ExternalIdentifier ;
    skos:definition "A verificationUID is a unique identifier assigned to a Verification item."@en ;
    skos:note """A verificationUID is a unique identifier assigned to an entity, item,
or verification requirement."""@en .

spdx-hardware:ProductSpecification a owl:Class,
        sh:NodeShape ;
    rdfs:label "ProductSpecification"@en ;
    rdfs:comment "A product specification (product spec) is a detailed document that outlines the technical, functional, and design requirements of a product."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:subClassOf spdx-core:Specification ;
    skos:definition "A product specification (product spec) is a detailed document that outlines the technical, functional, and design requirements of a product."@en ;
    skos:note "A product specification (product spec) is a detailed document that outlines the technical, functional, and design requirements of a product. It serves as a guide for engineers, designers, and manufacturers to ensure the final product meets expectations."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:DefinedType ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:hazard ],
        [ sh:datatype xsd:string ;
            sh:minCount 1 ;
            sh:path spdx-hardware:partNumber ],
        [ sh:datatype xsd:string ;
            sh:path spdx-core:version ] .

<https://spdx.org/rdf/3/terms/Hardware/VirtualHardwareModelType/cycle> a owl:NamedIndividual,
        spdx-hardware:VirtualHardwareModelType ;
    rdfs:label "cycle"@en ;
    rdfs:comment "Simulation architectures with precise cycle-level accuracy."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    skos:definition "Simulation architectures with precise cycle-level accuracy."@en .

<https://spdx.org/rdf/3/terms/Hardware/VirtualHardwareModelType/function> a owl:NamedIndividual,
        spdx-hardware:VirtualHardwareModelType ;
    rdfs:label "function"@en ;
    rdfs:comment "Simulation the function of the hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    skos:definition "Simulation the function of the hardware."@en .

<https://spdx.org/rdf/3/terms/Hardware/VirtualHardwareModelType/other> a owl:NamedIndividual,
        spdx-hardware:VirtualHardwareModelType ;
    rdfs:label "other"@en ;
    rdfs:comment "All other simulation types."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    skos:definition "All other simulation types."@en .

spdx-hardware:additionalInformation a owl:ObjectProperty ;
    rdfs:label "additionalInformation"@en ;
    rdfs:comment "Additional relevance information."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "Additional relevance information."@en ;
    skos:note "This element provides relevant information about the product."@en .

spdx-hardware:additionalInformationSpecification a owl:ObjectProperty ;
    rdfs:label "additionalInformationSpecification"@en ;
    rdfs:comment "It is the authoritative or credible entity, document, or body of knowledge that provides the meaning of an additionalInformation key and/or its values, ensuring accuracy, context, and standardization."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:Specification ;
    skos:definition "It is the authoritative or credible entity, document, or body of knowledge that provides the meaning of an additionalInformation key and/or its values, ensuring accuracy, context, and standardization."@en ;
    skos:note """It is the authoritative or credible entity, document, or body of knowledge that provides the meaning of an additionalInformation key and/or its values, ensuring accuracy, context, and standardization.
These are adopted to create uniformity and facilitate interoperability within industries."""@en .

spdx-hardware:batchNumber a owl:DatatypeProperty ;
    rdfs:label "batchNumber"@en ;
    rdfs:comment "Identifier for product production batch."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range xsd:string ;
    skos:definition "Identifier for product production batch."@en ;
    skos:note "A group of products produced in a common process is called a batch. Batches are identified by batch numbers."@en .

spdx-hardware:bulkQuantity a owl:ObjectProperty ;
    rdfs:label "bulkQuantity"@en ;
    rdfs:comment "The amount or measure of a bulk product."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:UnitOfMeasure ;
    skos:definition "The amount or measure of a bulk product."@en ;
    skos:note "The amount or measure of a bulk product includes the quantity and unit of measure."@en .

spdx-hardware:category a owl:ObjectProperty ;
    rdfs:label "category"@en ;
    rdfs:comment "The category describes the hardware item in a DefinedType."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:DefinedType ;
    skos:definition "The category describes the hardware item in a DefinedType."@en ;
    skos:note "The category describes the hardware item in a DefinedType."@en .

spdx-hardware:centerOfMass a owl:ObjectProperty ;
    rdfs:label "centerOfMass"@en ;
    rdfs:comment "A point representing the mean position of the matter in a body or system."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-hardware:Dimensions ;
    skos:definition "A point representing the mean position of the matter in a body or system."@en ;
    skos:note "The mass-center is a fixed property for a given rigid body (e.g. with no slosh or articulation), whereas the center-of-gravity may, in addition, depend upon its orientation in a non-uniform gravitational field."@en .

spdx-hardware:dimensions a owl:ObjectProperty ;
    rdfs:label "dimensions"@en ;
    rdfs:comment "Information related to hardware dimension."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-hardware:Dimensions ;
    skos:definition "Information related to hardware dimension."@en ;
    skos:note "Product dimensions describe the physical characteristics of a specific product."@en .

spdx-hardware:massOfHardware a owl:DatatypeProperty ;
    rdfs:label "massOfHardware"@en ;
    rdfs:comment "Information related to massOfHardware physical hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:MeasureOfMass ;
    skos:definition "Information related to massOfHardware physical hardware."@en ;
    skos:note "Mass is defined as an intrinsic property of a body for describing a physical hardware component."@en .

spdx-hardware:productAgent a owl:ObjectProperty ;
    rdfs:label "productAgent"@en ;
    rdfs:comment """An Agent responsible for product identification,
such as an original equipment manufacturer (OEM)."""@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:Agent ;
    skos:definition """An Agent responsible for product identification,
such as an original equipment manufacturer (OEM)."""@en ;
    skos:note """An Agent responsible for defining the partNumber, batchNumber
or serialNumber of the unit of hardware."""@en .

spdx-hardware:releaseDate a owl:ObjectProperty ;
    rdfs:label "releaseDate"@en ;
    rdfs:comment "Date of product release."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Date of product release."@en ;
    skos:note "This is the first date associated to a specific product release."@en .

spdx-hardware:serialNumber a owl:DatatypeProperty ;
    rdfs:label "serialNumber"@en ;
    rdfs:comment "Identifier for specific product is called a serial number."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range xsd:string ;
    skos:definition "Identifier for specific product is called a serial number."@en ;
    skos:note "This is a specific identifier assigned to a specific product."@en .

spdx-hardware:virtualHardwareModel a owl:DatatypeProperty ;
    rdfs:label "virtualHardwareModel"@en ;
    rdfs:comment "Information related to virtual hardware simulation."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-hardware:VirtualHardwareModelType ;
    skos:definition "Information related to virtual hardware simulation."@en ;
    skos:note "Information related to virtual hardware simulation modelling process."@en .

spdx-hardware:xAxisLength a owl:ObjectProperty ;
    rdfs:label "xAxisLength"@en ;
    rdfs:comment "Information related to hardware dimension."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:MeasureOfLength ;
    skos:definition "Information related to hardware dimension."@en ;
    skos:note "Information related to xAxis measurement of an object."@en .

spdx-hardware:yAxisLength a owl:ObjectProperty ;
    rdfs:label "yAxisLength"@en ;
    rdfs:comment "Information related to hardware dimension."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:MeasureOfLength ;
    skos:definition "Information related to hardware dimension."@en ;
    skos:note "Information related to yAxis measurement of an object."@en .

spdx-hardware:zAxisLength a owl:ObjectProperty ;
    rdfs:label "zAxisLength"@en ;
    rdfs:comment "Information related to hardware dimension."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:MeasureOfLength ;
    skos:definition "Information related to hardware dimension."@en ;
    skos:note """Information related to zAxis measurement of an object.

Z axis is the height of the object."""@en .

spdx-operations:assessedElement a owl:DatatypeProperty ;
    rdfs:label "assessedElement"@en ;
    rdfs:comment "Specifies an Element as subject of an assessment."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-core:Element ;
    skos:definition "Specifies an Element as subject of an assessment."@en ;
    skos:note "Specifies an Element as subject of an assessment."@en .

spdx-operations:assessmentContext a owl:DatatypeProperty ;
    rdfs:label "assessmentContext"@en ;
    rdfs:comment "Sets the context for an assessment by specifying the related project."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-operations:Project ;
    skos:definition "Sets the context for an assessment by specifying the related project."@en ;
    skos:note "Sets the context for an assessment by specifying the related project."@en .

spdx-operations:assessmentResult a owl:DatatypeProperty ;
    rdfs:label "assessmentResult"@en ;
    rdfs:comment "Specifies an Element as subject of an assessment."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-operations:ExportControlClassification ;
    skos:definition "Specifies an Element as subject of an assessment."@en ;
    skos:note "Specifies an Element as subject of an assessment."@en .

spdx-operations:assessmentTime a owl:DatatypeProperty ;
    rdfs:label "assessmentTime"@en ;
    rdfs:comment "Timestamp, when an assessment was conducted."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Timestamp, when an assessment was conducted."@en ;
    skos:note "Timestamp, when an assessment was conducted."@en .

spdx-operations:assessor a owl:DatatypeProperty ;
    rdfs:label "assessor"@en ;
    rdfs:comment "An entity providing an assessment."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "An entity providing an assessment."@en ;
    skos:note "An entity providing an assessment."@en .

spdx-operations:exportClassification a owl:DatatypeProperty ;
    rdfs:label "exportClassification"@en ;
    rdfs:comment "Expression for the export control classification."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range xsd:string ;
    skos:definition "Expression for the export control classification."@en ;
    skos:note "Expression for the export control classification, e.g. \"EAR99\"."@en .

spdx-operations:exportControlSpecification a owl:DatatypeProperty ;
    rdfs:label "exportControlSpecification"@en ;
    rdfs:comment "Specification basis for the export control classification."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-core:Specification ;
    skos:definition "Specification basis for the export control classification."@en ;
    skos:note "Specification basis for the export control classification."@en .

spdx-operations:exportingCountry a owl:DatatypeProperty ;
    rdfs:label "exportingCountry"@en ;
    rdfs:comment "Country for which export controls must be taken into account."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range xsd:string ;
    skos:definition "Country for which export controls must be taken into account."@en ;
    skos:note "Country for which export controls must be taken into account."@en .

spdx-operations:projectContract a owl:DatatypeProperty ;
    rdfs:label "projectContract"@en ;
    rdfs:comment "Link to the project contract."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Link to the project contract."@en ;
    skos:note "Link to the project contract."@en .

spdx-operations:projectOwner a owl:DatatypeProperty ;
    rdfs:label "projectOwner"@en ;
    rdfs:comment "Owner or lead of the project."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "Owner or lead of the project."@en ;
    skos:note "Agent responsible for the project."@en .

spdx-operations:projectSponsor a owl:DatatypeProperty ;
    rdfs:label "projectSponsor"@en ;
    rdfs:comment "Sponsor of the project."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "Sponsor of the project."@en ;
    skos:note "Sponsor of the project."@en .

spdx-operations:projectTitle a owl:DatatypeProperty ;
    rdfs:label "projectTitle"@en ;
    rdfs:comment "Title of the project."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range xsd:string ;
    skos:definition "Title of the project."@en ;
    skos:note "Title of the project."@en .

spdx-operations:weight a owl:ObjectProperty ;
    rdfs:label "weight"@en ;
    rdfs:comment "Weight to express relevance in de minimis consideration."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:range xsd:positiveInteger ;
    skos:definition "Weight to express relevance in de minimis consideration."@en ;
    skos:note "Weight to express relevance in de minimis consideration."@en .

<https://spdx.org/rdf/3/terms/Security/ExploitCatalogType/kev> a owl:NamedIndividual,
        spdx-security:ExploitCatalogType ;
    rdfs:label "kev"@en ;
    rdfs:comment "CISA's Known Exploited Vulnerability (KEV) catalog."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "CISA's Known Exploited Vulnerability (KEV) catalog."@en .

<https://spdx.org/rdf/3/terms/Security/ExploitCatalogType/other> a owl:NamedIndividual,
        spdx-security:ExploitCatalogType ;
    rdfs:label "other"@en ;
    rdfs:comment "Other exploit catalogs."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "Other exploit catalogs."@en .

<https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/act> a owl:NamedIndividual,
        spdx-security:SsvcDecisionType ;
    rdfs:label "act"@en ;
    rdfs:comment "The vulnerability requires attention from the organization's internal, supervisory-level and leadership-level individuals. Necessary actions include requesting assistance or information about the vulnerability, as well as publishing a notification either internally and/or externally. Typically, internal groups would meet to determine the overall response and then execute agreed upon actions. CISA recommends remediating Act vulnerabilities as soon as possible."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The vulnerability requires attention from the organization's internal, supervisory-level and leadership-level individuals. Necessary actions include requesting assistance or information about the vulnerability, as well as publishing a notification either internally and/or externally. Typically, internal groups would meet to determine the overall response and then execute agreed upon actions. CISA recommends remediating Act vulnerabilities as soon as possible."@en .

<https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/attend> a owl:NamedIndividual,
        spdx-security:SsvcDecisionType ;
    rdfs:label "attend"@en ;
    rdfs:comment "The vulnerability requires attention from the organization's internal, supervisory-level individuals. Necessary actions include requesting assistance or information about the vulnerability, and may involve publishing a notification either internally and/or externally. CISA recommends remediating Attend vulnerabilities sooner than standard update timelines."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The vulnerability requires attention from the organization's internal, supervisory-level individuals. Necessary actions include requesting assistance or information about the vulnerability, and may involve publishing a notification either internally and/or externally. CISA recommends remediating Attend vulnerabilities sooner than standard update timelines."@en .

<https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/track> a owl:NamedIndividual,
        spdx-security:SsvcDecisionType ;
    rdfs:label "track"@en ;
    rdfs:comment "The vulnerability does not require action at this time. The organization would continue to track the vulnerability and reassess it if new information becomes available. CISA recommends remediating Track vulnerabilities within standard update timelines."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The vulnerability does not require action at this time. The organization would continue to track the vulnerability and reassess it if new information becomes available. CISA recommends remediating Track vulnerabilities within standard update timelines."@en .

<https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/trackStar> a owl:NamedIndividual,
        spdx-security:SsvcDecisionType ;
    rdfs:label "trackStar"@en ;
    rdfs:comment "(\"Track\\*\" in the SSVC spec) The vulnerability contains specific characteristics that may require closer monitoring for changes. CISA recommends remediating Track\\* vulnerabilities within standard update timelines."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "(\"Track\\*\" in the SSVC spec) The vulnerability contains specific characteristics that may require closer monitoring for changes. CISA recommends remediating Track\\* vulnerabilities within standard update timelines."@en .

<https://spdx.org/rdf/3/terms/Security/VexJustificationType/componentNotPresent> a owl:NamedIndividual,
        spdx-security:VexJustificationType ;
    rdfs:label "componentNotPresent"@en ;
    rdfs:comment "The software is not affected because the vulnerable component is not in the product."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The software is not affected because the vulnerable component is not in the product."@en .

<https://spdx.org/rdf/3/terms/Security/VexJustificationType/inlineMitigationsAlreadyExist> a owl:NamedIndividual,
        spdx-security:VexJustificationType ;
    rdfs:label "inlineMitigationsAlreadyExist"@en ;
    rdfs:comment "Built-in inline controls or mitigations prevent an adversary from leveraging the vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "Built-in inline controls or mitigations prevent an adversary from leveraging the vulnerability."@en .

<https://spdx.org/rdf/3/terms/Security/VexJustificationType/vulnerableCodeCannotBeControlledByAdversary> a owl:NamedIndividual,
        spdx-security:VexJustificationType ;
    rdfs:label "vulnerableCodeCannotBeControlledByAdversary"@en ;
    rdfs:comment "The vulnerable component is present, and the component contains the vulnerable code. However, vulnerable code is used in such a way that an attacker cannot mount any anticipated attack."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The vulnerable component is present, and the component contains the vulnerable code. However, vulnerable code is used in such a way that an attacker cannot mount any anticipated attack."@en .

<https://spdx.org/rdf/3/terms/Security/VexJustificationType/vulnerableCodeNotInExecutePath> a owl:NamedIndividual,
        spdx-security:VexJustificationType ;
    rdfs:label "vulnerableCodeNotInExecutePath"@en ;
    rdfs:comment "The affected code is not reachable through the execution of the code, including non-anticipated states of the product."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The affected code is not reachable through the execution of the code, including non-anticipated states of the product."@en .

<https://spdx.org/rdf/3/terms/Security/VexJustificationType/vulnerableCodeNotPresent> a owl:NamedIndividual,
        spdx-security:VexJustificationType ;
    rdfs:label "vulnerableCodeNotPresent"@en ;
    rdfs:comment "The product is not affected because the code underlying the vulnerability is not present in the product."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "The product is not affected because the code underlying the vulnerability is not present in the product."@en .

spdx-security:actionStatement a owl:DatatypeProperty ;
    rdfs:label "actionStatement"@en ;
    rdfs:comment """Provides advise on how to mitigate or remediate a vulnerability when a VEX product
is affected by it."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:string ;
    skos:definition """Provides advise on how to mitigate or remediate a vulnerability when a VEX product
is affected by it."""@en ;
    skos:note """When an element is referenced with a VexAffectedVulnAssessmentRelationship,
the relationship shall include one actionStatement that should describe actions
to remediate or mitigate the vulnerability."""@en .

spdx-security:actionStatementTime a owl:DatatypeProperty ;
    rdfs:label "actionStatementTime"@en ;
    rdfs:comment """Records the time when a recommended action was communicated in a VEX statement
to mitigate a vulnerability."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition """Records the time when a recommended action was communicated in a VEX statement
to mitigate a vulnerability."""@en ;
    skos:note """When a VEX statement communicates an affected status, the author shall
include an action statement with a recommended action to help mitigate the
vulnerability's impact. The actionStatementTime property records the time
when the action statement was first communicated."""@en .

spdx-security:assessedElement a owl:ObjectProperty ;
    rdfs:label "assessedElement"@en ;
    rdfs:comment "Specifies an Element where a vulnerability was found."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range spdx-core:Artifact ;
    skos:definition "Specifies an Element where a vulnerability was found."@en ;
    skos:note """Specifies components, subpackages, files or snippets referenced by a security assessment
to specify the precise location where a vulnerability was found."""@en .

spdx-security:catalogType a owl:ObjectProperty ;
    rdfs:label "catalogType"@en ;
    rdfs:comment "Specifies the exploit catalog type."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range spdx-security:ExploitCatalogType ;
    skos:definition "Specifies the exploit catalog type."@en ;
    skos:note """A catalogType is a mandatory value and shall select one of the existing entries
in the ExploitCatalogType vocabulary."""@en .

spdx-security:decisionType a owl:ObjectProperty ;
    rdfs:label "decisionType"@en ;
    rdfs:comment """Provide the enumeration of possible decisions in the
Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree <https://www.cisa.gov/stakeholder-specific-vulnerability-categorization-ssvc>."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range spdx-security:SsvcDecisionType ;
    skos:definition """Provide the enumeration of possible decisions in the
Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree <https://www.cisa.gov/stakeholder-specific-vulnerability-categorization-ssvc>."""@en ;
    skos:note """A decisionType is a mandatory value and shall select one of the four entries in
the SsvcDecisionType vocabulary."""@en .

spdx-security:exploited a owl:DatatypeProperty ;
    rdfs:label "exploited"@en ;
    rdfs:comment "Denote whether a CVE is present in an exploit catalog."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:boolean ;
    skos:definition "Denote whether a CVE is present in an exploit catalog."@en ;
    skos:note "This field is set to True when a CVE is present in an exploit catalog and False when the CVE is not present."@en .

spdx-security:impactStatement a owl:DatatypeProperty ;
    rdfs:label "impactStatement"@en ;
    rdfs:comment """Explains why a VEX product is not affected by a vulnerability. It is an
alternative in VexNotAffectedVulnAssessmentRelationship to the machine-readable
justification label."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:string ;
    skos:definition """Explains why a VEX product is not affected by a vulnerability. It is an
alternative in VexNotAffectedVulnAssessmentRelationship to the machine-readable
justification label."""@en ;
    skos:note """When a VEX product element is related with a VexNotAffectedVulnAssessmentRelationship
and a machine readable justification label is not provided, then an impactStatement
that further explains how or why the product(s) are not affected by the vulnerability
shall be provided."""@en .

spdx-security:impactStatementTime a owl:DatatypeProperty ;
    rdfs:label "impactStatementTime"@en ;
    rdfs:comment "Timestamp of impact statement."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Timestamp of impact statement."@en ;
    skos:note "Specifies the time when the impact statement was recorded."@en .

spdx-security:justificationType a owl:ObjectProperty ;
    rdfs:label "justificationType"@en ;
    rdfs:comment """Impact justification label to be used when linking a vulnerability to an element
representing a VEX product with a VexNotAffectedVulnAssessmentRelationship
relationship."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range spdx-security:VexJustificationType ;
    skos:definition """Impact justification label to be used when linking a vulnerability to an element
representing a VEX product with a VexNotAffectedVulnAssessmentRelationship
relationship."""@en ;
    skos:note """When stating that an element is not affected by a vulnerability, the
VexNotAffectedVulnAssessmentRelationship shall include a justification from the
machine-readable labels catalog informing the reason the element is not impacted.

impactStatement which is a string with English prose can be used instead or as
complementary to the justification label, but one of both shall be defined."""@en .

spdx-security:locator a owl:DatatypeProperty ;
    rdfs:label "locator"@en ;
    rdfs:comment "Provides the location of an exploit catalog."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Provides the location of an exploit catalog."@en ;
    skos:note "A locator provides the location of an exploit catalog."@en .

spdx-security:percentile a owl:DatatypeProperty ;
    rdfs:label "percentile"@en ;
    rdfs:comment "The percentile of the current probability score."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:decimal ;
    skos:definition "The percentile of the current probability score."@en ;
    skos:note """The percentile between 0 and 1 (0 and 100%) of the current probability score,
the proportion of all scored vulnerabilities with the same or a lower
probability score. The definition follows "percentile" in
EPSS Data <https://www.first.org/epss/data_stats>."""@en .

spdx-security:probability a owl:DatatypeProperty ;
    rdfs:label "probability"@en ;
    rdfs:comment "A probability score between 0 and 1 of a vulnerability being exploited."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:decimal ;
    skos:definition "A probability score between 0 and 1 of a vulnerability being exploited."@en ;
    skos:note """The probability score between 0 and 1 (0 and 100%) estimating the likelihood of
exploitation in the wild in the next 30 days (following score publication).
The definition follows "epss" in
EPSS Data <https://www.first.org/epss/data_stats>."""@en .

spdx-security:statusNotes a owl:DatatypeProperty ;
    rdfs:label "statusNotes"@en ;
    rdfs:comment "Conveys information about how VEX status was determined."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:string ;
    skos:definition "Conveys information about how VEX status was determined."@en ;
    skos:note "A VEX statement may convey information about how status was determined and may reference other VEX information."@en .

spdx-security:vexVersion a owl:DatatypeProperty ;
    rdfs:label "vexVersion"@en ;
    rdfs:comment "Specifies the version of a VEX statement."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the version of a VEX statement."@en ;
    skos:note """The statement version default value is zero.
When any VEX-related content changes, the version shall be incremented."""@en .

<https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/crl> a owl:NamedIndividual,
        spdx-service:AuthenticationProtocolType ;
    rdfs:label "crl"@en ;
    rdfs:comment "Certificate Revocation List, or CRL, is a list of revoked certificates that is downloaded from the Certificate Authority (CA)."@en ;
    rdfs:isDefinedBy spdx-service: ;
    skos:definition "Certificate Revocation List, or CRL, is a list of revoked certificates that is downloaded from the Certificate Authority (CA)."@en .

<https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/ocsp> a owl:NamedIndividual,
        spdx-service:AuthenticationProtocolType ;
    rdfs:label "ocsp"@en ;
    rdfs:comment "Online Certificate Status Protocol, or OCSP, is a common scheme used to maintain the security of a server and other network resources."@en ;
    rdfs:isDefinedBy spdx-service: ;
    skos:definition "Online Certificate Status Protocol, or OCSP, is a common scheme used to maintain the security of a server and other network resources."@en .

<https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/other> a owl:NamedIndividual,
        spdx-service:AuthenticationProtocolType ;
    rdfs:label "other"@en ;
    rdfs:comment "An authentication protocol not covered by one of the other AuthenticationProtocolTypes."@en ;
    rdfs:isDefinedBy spdx-service: ;
    skos:definition "An authentication protocol not covered by one of the other AuthenticationProtocolTypes."@en .

<https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/tls> a owl:NamedIndividual,
        spdx-service:AuthenticationProtocolType ;
    rdfs:label "tls"@en ;
    rdfs:comment "Transport Layer Security, or TLS, is a widely adopted security protocol designed to facilitate privacy and data security for communications over the Internet."@en ;
    rdfs:isDefinedBy spdx-service: ;
    skos:definition "Transport Layer Security, or TLS, is a widely adopted security protocol designed to facilitate privacy and data security for communications over the Internet."@en .

spdx-service:serverAuthenticationProtocol a owl:ObjectProperty ;
    rdfs:label "serverAuthenticationProtocol"@en ;
    rdfs:comment "Authentication protocol used by a server."@en ;
    rdfs:isDefinedBy spdx-service: ;
    rdfs:range spdx-service:AuthenticationProtocolType ;
    skos:definition "Authentication protocol used by a server."@en ;
    skos:note "Authentication protocols used by a server or a software service to authenticate the server to the consumer."@en .

spdx-service:serviceHostingCountry a owl:DatatypeProperty ;
    rdfs:label "serviceHostingCountry"@en ;
    rdfs:comment "Specifies a country code where a software service is hosted."@en ;
    rdfs:isDefinedBy spdx-service: ;
    rdfs:range xsd:string ;
    skos:definition "Specifies a country code where a software service is hosted."@en ;
    skos:note """Specifies a country or territory where a software service is located.
This includes indirect locations (e.g., where the data may be hosted).

The string shall be in the ISO 3166-1 alpha-3 <https://www.iso.org/obp/ui/#iso:std:iso:3166:-1> three-letter format.
See the ISO 3166-1 alpha-3 Wikipedia page <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3> for more information."""@en .

spdx-simplelicensing:customIdToLicense a owl:ObjectProperty ;
    rdfs:label "customIdToLicense"@en ;
    rdfs:comment """Maps a "LicenseRef-" string for a custom license or a "AdditionRef-" string for
a custom license addition to a CustomLicense, a CustomLicenseAddition, or a
SimpleLicensingText."""@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:range spdx-core:ElementMap ;
    skos:definition """Maps a "LicenseRef-" string for a custom license or a "AdditionRef-" string for
a custom license addition to a CustomLicense, a CustomLicenseAddition, or a
SimpleLicensingText."""@en ;
    skos:note """Within a license expression, references can be made to a custom license or a
custom license addition.

The License Expression syntax
dictates any reference starting with a
"LicenseRef-" or "AdditionRef-" refers to license or addition text not found in
the official SPDX License List <https://spdx.org/licenses/>.

The key for the ElementMap is the string used in the license expression
and the elementValue is the target Element, which must be a CustomLicense,
CustomLicenseAddition, or SimpleLicensingText.

The key for the ElementMap shall be matched against the license expression
in a case-insensitive manner.
This is required because the entire license expression string is itself
case-insensitive."""@en .

spdx-simplelicensing:customIdToUri a owl:ObjectProperty ;
    rdfs:label "customIdToUri"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use customIdToLicense instead.

Maps a "LicenseRef-" string for a custom license or a "AdditionRef-" string for
a custom license addition to its URI identifier.

**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use customIdToLicense instead."""@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use customIdToLicense instead.

Maps a "LicenseRef-" string for a custom license or a "AdditionRef-" string for
a custom license addition to its URI identifier.

**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use customIdToLicense instead."""@en ;
    skos:note """Within a License Expression, references can be made to a Custom License or a
Custom License Addition.

The License Expression syntax
dictates any reference starting with a
"LicenseRef-" or "AdditionRef-" refers to license or addition text not found in
the official SPDX License List <https://spdx.org/licenses/>.

These custom licenses shall be a CustomLicense, a CustomLicenseAddition, or a
SimpleLicensingText which are identified with a unique URI identifier.

The key for the DictionaryEntry is the string used in the license expression
and the value is the URI for the corresponding CustomLicense,
CustomLicenseAddition, or SimpleLicensingText."""@en .

spdx-simplelicensing:licenseExpression a owl:DatatypeProperty ;
    rdfs:label "licenseExpression"@en ;
    rdfs:comment "A string in the license expression format."@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:range xsd:string ;
    skos:definition "A string in the license expression format."@en ;
    skos:note """A licenseExpression enables the representation, in a single string, of a
combination of one or more licenses, together with additions such as license
exceptions.

The syntax for a licenseExpression string is set forth in the corresponding
Annex of this document
("SPDX license expressions").
A licenseExpression string is not valid if it does not conform to the grammar
set forth in that Annex.

The ExpandedLicensing profile can be used to represent the complete parsed
license expression as a combination of license objects."""@en .

spdx-simplelicensing:licenseListVersion a owl:DatatypeProperty ;
    rdfs:label "licenseListVersion"@en ;
    rdfs:comment "The version of the SPDX License List used in the license expression."@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:range xsd:string ;
    skos:definition "The version of the SPDX License List used in the license expression."@en ;
    skos:note """Recognizing that licenses are added to the
SPDX License List <https://spdx.org/licenses/> with each
subsequent version, the intent is to provide consumers with the version of the
SPDX License List used.

This anticipates that in the future, license expression can used a
version of the SPDX License List that is older than the then current one.

The specified version of the SPDX License List shall include all listed licenses
and exceptions referenced in the expression."""@en .

<https://spdx.org/rdf/3/terms/Software/ContentIdentifierType/gitoid> a owl:NamedIndividual,
        spdx-software:ContentIdentifierType ;
    rdfs:label "gitoid"@en ;
    rdfs:comment "Gitoid <https://www.iana.org/assignments/uri-schemes/prov/gitoid>, stands for Git Object ID <https://git-scm.com/book/en/v2/Git-Internals-Git-Objects>. A gitoid of type blob is a unique hash of a binary artifact. A gitoid may represent either an Artifact Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-identifier-types> for the software artifact or an Input Manifest Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#input-manifest-identifier> for the software artifact's associated Artifact Input Manifest <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-input-manifest>; this ambiguity exists because the Artifact Input Manifest is itself an artifact, and the gitoid of that artifact is its valid identifier. Gitoids calculated on software artifacts (Snippet, File, or Package Elements) should be recorded in the SPDX 3 SoftwareArtifact's contentIdentifier property. Gitoids calculated on the Artifact Input Manifest (Input Manifest Identifier) should be recorded in the SPDX 3 Element's externalIdentifier property. See OmniBOR Specification <https://github.com/omnibor/spec/>, a minimalistic specification for describing software Artifact Dependency Graphs <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-dependency-graph-adg>."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "Gitoid <https://www.iana.org/assignments/uri-schemes/prov/gitoid>, stands for Git Object ID <https://git-scm.com/book/en/v2/Git-Internals-Git-Objects>. A gitoid of type blob is a unique hash of a binary artifact. A gitoid may represent either an Artifact Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-identifier-types> for the software artifact or an Input Manifest Identifier <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#input-manifest-identifier> for the software artifact's associated Artifact Input Manifest <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-input-manifest>; this ambiguity exists because the Artifact Input Manifest is itself an artifact, and the gitoid of that artifact is its valid identifier. Gitoids calculated on software artifacts (Snippet, File, or Package Elements) should be recorded in the SPDX 3 SoftwareArtifact's contentIdentifier property. Gitoids calculated on the Artifact Input Manifest (Input Manifest Identifier) should be recorded in the SPDX 3 Element's externalIdentifier property. See OmniBOR Specification <https://github.com/omnibor/spec/>, a minimalistic specification for describing software Artifact Dependency Graphs <https://github.com/omnibor/spec/blob/eb1ee5c961c16215eb8709b2975d193a2007a35d/spec/SPEC.md#artifact-dependency-graph-adg>."@en .

<https://spdx.org/rdf/3/terms/Software/ContentIdentifierType/swhid> a owl:NamedIndividual,
        spdx-software:ContentIdentifierType ;
    rdfs:label "swhid"@en ;
    rdfs:comment "SoftWare Hash IDentifier, a persistent intrinsic identifier for digital artifacts, such as files, trees (also known as directories or folders), commits, and other objects typically found in version control systems. The format of the identifiers is defined in the SWHID specification <https://www.swhid.org/swhid-specification/v1.2/> (ISO/IEC 18670 <https://www.iso.org/standard/89985.html>). They typically look like swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SoftWare Hash IDentifier, a persistent intrinsic identifier for digital artifacts, such as files, trees (also known as directories or folders), commits, and other objects typically found in version control systems. The format of the identifiers is defined in the SWHID specification <https://www.swhid.org/swhid-specification/v1.2/> (ISO/IEC 18670 <https://www.iso.org/standard/89985.html>). They typically look like swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2."@en .

<https://spdx.org/rdf/3/terms/Software/FileKindType/directory> a owl:NamedIndividual,
        spdx-software:FileKindType ;
    rdfs:label "directory"@en ;
    rdfs:comment "The file represents a directory and all content stored in that directory."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The file represents a directory and all content stored in that directory."@en .

<https://spdx.org/rdf/3/terms/Software/FileKindType/file> a owl:NamedIndividual,
        spdx-software:FileKindType ;
    rdfs:label "file"@en ;
    rdfs:comment "The file represents a single file (default)."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The file represents a single file (default)."@en .

<https://spdx.org/rdf/3/terms/Software/FileKindType/symlink> a owl:NamedIndividual,
        spdx-software:FileKindType ;
    rdfs:label "symlink"@en ;
    rdfs:comment "This file represents a symbolic link (soft link)."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "This file represents a symbolic link (soft link)."@en .

spdx-software:Sbom a owl:Class,
        sh:NodeShape ;
    rdfs:label "Sbom"@en ;
    rdfs:comment "A collection of SPDX Elements describing a single package."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:subClassOf spdx-core:Bom ;
    skos:definition "A collection of SPDX Elements describing a single package."@en ;
    skos:note """A Software Bill of Materials (SBOM) is a collection of SPDX Elements describing
a single package.

This could include details of the content and composition of the product,
provenance details of the product and/or its composition, licensing
information, known quality or security issues, etc."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Software/SbomType/design> <https://spdx.org/rdf/3/terms/Software/SbomType/source> <https://spdx.org/rdf/3/terms/Software/SbomType/build> <https://spdx.org/rdf/3/terms/Software/SbomType/deployed> <https://spdx.org/rdf/3/terms/Software/SbomType/runtime> <https://spdx.org/rdf/3/terms/Software/SbomType/analyzed> ) ;
            sh:path spdx-software:sbomType ] .

<https://spdx.org/rdf/3/terms/Software/SbomType/analyzed> a owl:NamedIndividual,
        spdx-software:SbomType ;
    rdfs:label "analyzed"@en ;
    rdfs:comment "SBOM generated through analysis of artifacts (e.g., executables, packages, containers, and virtual machine images) after its build. Such analysis generally requires a variety of heuristics. In some contexts, this may also be referred to as a \"3rd party\" SBOM."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SBOM generated through analysis of artifacts (e.g., executables, packages, containers, and virtual machine images) after its build. Such analysis generally requires a variety of heuristics. In some contexts, this may also be referred to as a \"3rd party\" SBOM."@en .

<https://spdx.org/rdf/3/terms/Software/SbomType/build> a owl:NamedIndividual,
        spdx-software:SbomType ;
    rdfs:label "build"@en ;
    rdfs:comment "SBOM generated as part of the process of building the software to create a releasable artifact (e.g., executable or package) from data such as source files, dependencies, built components, build process ephemeral data, and other SBOMs."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SBOM generated as part of the process of building the software to create a releasable artifact (e.g., executable or package) from data such as source files, dependencies, built components, build process ephemeral data, and other SBOMs."@en .

<https://spdx.org/rdf/3/terms/Software/SbomType/deployed> a owl:NamedIndividual,
        spdx-software:SbomType ;
    rdfs:label "deployed"@en ;
    rdfs:comment "SBOM provides an inventory of software that is present on a system. This may be an assembly of other SBOMs that combines analysis of configuration options, and examination of execution behavior in a (potentially simulated) deployment environment."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SBOM provides an inventory of software that is present on a system. This may be an assembly of other SBOMs that combines analysis of configuration options, and examination of execution behavior in a (potentially simulated) deployment environment."@en .

<https://spdx.org/rdf/3/terms/Software/SbomType/design> a owl:NamedIndividual,
        spdx-software:SbomType ;
    rdfs:label "design"@en ;
    rdfs:comment "SBOM of intended, planned software project or product with included components (some of which may not yet exist) for a new software artifact."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SBOM of intended, planned software project or product with included components (some of which may not yet exist) for a new software artifact."@en .

<https://spdx.org/rdf/3/terms/Software/SbomType/runtime> a owl:NamedIndividual,
        spdx-software:SbomType ;
    rdfs:label "runtime"@en ;
    rdfs:comment "SBOM generated through instrumenting the system running the software, to capture only components present in the system, as well as external call-outs or dynamically loaded components. In some contexts, this may also be referred to as an \"Instrumented\" or \"Dynamic\" SBOM."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SBOM generated through instrumenting the system running the software, to capture only components present in the system, as well as external call-outs or dynamically loaded components. In some contexts, this may also be referred to as an \"Instrumented\" or \"Dynamic\" SBOM."@en .

<https://spdx.org/rdf/3/terms/Software/SbomType/source> a owl:NamedIndividual,
        spdx-software:SbomType ;
    rdfs:label "source"@en ;
    rdfs:comment "SBOM created directly from the development environment, source files, and included dependencies used to build a product artifact."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "SBOM created directly from the development environment, source files, and included dependencies used to build a product artifact."@en .

spdx-software:additionalPurpose a owl:ObjectProperty ;
    rdfs:label "additionalPurpose"@en ;
    rdfs:comment "Provides additional purpose information of the software artifact."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:SoftwarePurpose ;
    skos:definition "Provides additional purpose information of the software artifact."@en ;
    skos:note """An additionalPurpose provides information about the additional purpose of the
software artifact in addition to the primaryPurpose."""@en .

spdx-software:artifactSize a owl:DatatypeProperty ;
    rdfs:label "artifactSize"@en ;
    rdfs:comment "Identifies the size of a software Artifact, in bytes."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:nonNegativeInteger ;
    skos:definition "Identifies the size of a software Artifact, in bytes."@en ;
    skos:note "Identifies the size of a software Artifact, in bytes."@en .

spdx-software:attributionText a owl:DatatypeProperty ;
    rdfs:label "attributionText"@en ;
    rdfs:comment """Provides a place for the SPDX data creator to record acknowledgement text for
a software Package, File or Snippet."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:string ;
    skos:definition """Provides a place for the SPDX data creator to record acknowledgement text for
a software Package, File or Snippet."""@en ;
    skos:note """An attributionText for a software Package, File or Snippet provides a consumer
of SPDX data with acknowledgement content, to assist redistributors of the
Package, File or Snippet with reproducing those acknowledgements.

For example, this field may include a statement that is required by a
particular license to be reproduced in end-user documentation, advertising
materials, or another form.

This field may describe where, or in which contexts, the acknowledgements
need to be reproduced, but it is not required to do so. The SPDX data creator
may also explain elsewhere (such as in a comment field) how they intend for
data in this field to be used.

An attributionText is not meant to include the software Package, File or
Snippet's actual complete license text. Use hasConcludedLicense to identify the
corresponding license."""@en .

spdx-software:byteRange a owl:DatatypeProperty ;
    rdfs:label "byteRange"@en ;
    rdfs:comment """Defines the byte range in the original host file that the snippet information
applies to."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-core:PositiveIntegerRange ;
    skos:definition """Defines the byte range in the original host file that the snippet information
applies to."""@en ;
    skos:note """This field defines the byte range in the original host file that the snippet
information applies to.

A range of bytes is independent of various formatting concerns, and the most
accurate way of referring to the differences. The choice was made to start the
numbering of the byte range at 1 to be consistent with the W3C pointer method
vocabulary."""@en .

spdx-software:contentIdentifier a owl:DatatypeProperty ;
    rdfs:label "contentIdentifier"@en ;
    rdfs:comment """A canonical, unique, immutable identifier of the artifact content, that may be
used for verifying its identity and/or integrity."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:ContentIdentifier ;
    skos:definition """A canonical, unique, immutable identifier of the artifact content, that may be
used for verifying its identity and/or integrity."""@en ;
    skos:note """A contentIdentifier is a canonical, unique, immutable identifier of the content
of a software artifact, such as a package, a file, or a snippet.

It may be used for verifying its identity and/or integrity."""@en .

spdx-software:contentIdentifierType a owl:ObjectProperty ;
    rdfs:label "contentIdentifierType"@en ;
    rdfs:comment "Specifies the type of the content identifier."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:ContentIdentifierType ;
    skos:definition "Specifies the type of the content identifier."@en ;
    skos:note "A contentIdentifierType specifies the type of the content identifier."@en .

spdx-software:contentIdentifierValue a owl:DatatypeProperty ;
    rdfs:label "contentIdentifierValue"@en ;
    rdfs:comment "Specifies the value of the content identifier."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Specifies the value of the content identifier."@en ;
    skos:note "A contentIdentifierValue specifies the value of a content identifier."@en .

spdx-software:copyrightText a owl:DatatypeProperty ;
    rdfs:label "copyrightText"@en ;
    rdfs:comment """Identifies the text of one or more copyright notices for a software Package,
File or Snippet, if any."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:string ;
    skos:definition """Identifies the text of one or more copyright notices for a software Package,
File or Snippet, if any."""@en ;
    skos:note """A copyrightText consists of the text(s) of the copyright notice(s) found
for a software Package, File or Snippet, if any.

If a copyrightText contains text, then it may contain any text related to
one or more copyright notices (even if not complete) for that software
Package, File or Snippet.

If a copyrightText has a "NONE" value, this indicates that the software
Package, File or Snippet contains no copyright notice whatsoever.

If a copyrightText has a "NOASSERTION" value, this indicates that one of the
following applies:

- the SPDX data creator has attempted to but cannot reach a reasonable
  objective determination;
- the SPDX data creator has made no attempt to determine this field; or
- the SPDX data creator has intentionally provided no information (no
  meaning shall be implied by doing so).

If a copyrightText is present, but consists of solely an empty string or a
string with no substantive content (e.g., a string that contains only
whitespace), then this shall be interpreted as equivalent to a "NOASSERTION"
value as described above."""@en .

spdx-software:downloadLocation a owl:DatatypeProperty ;
    rdfs:label "downloadLocation"@en ;
    rdfs:comment """Identifies the download Uniform Resource Identifier for the package at the time
that the document was created."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:anyURI ;
    skos:definition """Identifies the download Uniform Resource Identifier for the package at the time
that the document was created."""@en ;
    skos:note """A downloadLocation identifies the download Uniform Resource Identifier
for the package at the time that the document was created.

Where and how to download the exact package being referenced
is critical for verification and tracking data."""@en .

spdx-software:fileKind a owl:ObjectProperty ;
    rdfs:label "fileKind"@en ;
    rdfs:comment "Describes if a given file is a directory or non-directory kind of file."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:FileKindType ;
    skos:definition "Describes if a given file is a directory or non-directory kind of file."@en ;
    skos:note """An SPDX file may represent a specific file or a directory of files.

In the future, this may be extended to other kinds (e.g. network based files)."""@en .

spdx-software:homePage a owl:DatatypeProperty ;
    rdfs:label "homePage"@en ;
    rdfs:comment """A place for the SPDX document creator to record a website that serves as the
package's home page."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:anyURI ;
    skos:definition """A place for the SPDX document creator to record a website that serves as the
package's home page."""@en ;
    skos:note """A homePage is a place for the SPDX document creator to record a website that
serves as the package's home page.

This saves the recipient of the SPDX document who is looking for more info from
having to search for and verify a match between the package and the associated
project home page.

This link can also be used to reference further information about the package
referenced by the SPDX document creator."""@en .

spdx-software:lineRange a owl:DatatypeProperty ;
    rdfs:label "lineRange"@en ;
    rdfs:comment """Defines the line range in the original host file that the snippet information
applies to."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-core:PositiveIntegerRange ;
    skos:definition """Defines the line range in the original host file that the snippet information
applies to."""@en ;
    skos:note """This field defines the line range in the original host file that the snippet
information applies to.

If there is a disagreement between the byte range and line range, the byte
range values will take precedence.

A range of lines is a convenient reference for those files where there is a
known line delimiter.
The choice was made to start the numbering of the lines at 1 to be consistent
with the W3C pointer method vocabulary."""@en .

spdx-software:packageUrl a owl:DatatypeProperty ;
    rdfs:label "packageUrl"@en ;
    rdfs:comment """Provides a place for the SPDX data creator to record the Package-URL
for a software Package."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:anyURI ;
    skos:definition """Provides a place for the SPDX data creator to record the Package-URL
for a software Package."""@en ;
    skos:note """A packageUrl property specifies a Package-URL (PURL).
The PURL shall be a valid Uniform Resource Identifier (URI) and
Uniform Resource Locator (URL) that identifies a software package independent
of its ecosystem or distribution channel, in accordance with
ECMA-427 <https://ecma-international.org/publications-and-standards/standards/ecma-427/>.

The PURL contains a type component that defines the ecosystem-specific
structure and semantics for the remaining PURL components.

The registered PURL type definitions are maintained in the Package-URL type
registry available at https://packageurl.org/docs/purl/purl-types."""@en .

spdx-software:packageVersion a owl:DatatypeProperty ;
    rdfs:label "packageVersion"@en ;
    rdfs:comment """**DEPRECATED in SPDX 3.1.**
Use /Core/version instead.

Identify the version of a package."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:string ;
    skos:definition """**DEPRECATED in SPDX 3.1.**
Use /Core/version instead.

Identify the version of a package."""@en ;
    skos:note """**NOTE:**
This property is deprecated and only included for backward compatibility.
New documents should use
/Core/version
instead.

A packageVersion is useful for identification purposes and for indicating later
changes of the package version."""@en .

spdx-software:primaryPurpose a owl:ObjectProperty ;
    rdfs:label "primaryPurpose"@en ;
    rdfs:comment "Provides information about the primary purpose of the software artifact."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:SoftwarePurpose ;
    skos:definition "Provides information about the primary purpose of the software artifact."@en ;
    skos:note """primaryPurpose provides information about the primary purpose of the software
artifact."""@en .

spdx-software:sbomType a owl:ObjectProperty ;
    rdfs:label "sbomType"@en ;
    rdfs:comment "Provides information about the type of an SBOM."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:SbomType ;
    skos:definition "Provides information about the type of an SBOM."@en ;
    skos:note """This field is a reasonable estimation of the type of SBOM created from a
creator perspective.

It is intended to be used to give guidance on the elements that may be
contained within it.

Aligning with the guidance produced in
Types of Software Bill of Material (SBOM) Documents <https://www.cisa.gov/sites/default/files/2023-04/sbom-types-document-508c.pdf>."""@en .

spdx-software:snippetFromFile a owl:ObjectProperty ;
    rdfs:label "snippetFromFile"@en ;
    rdfs:comment "Defines the original host file that the snippet information applies to."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range spdx-software:File ;
    skos:definition "Defines the original host file that the snippet information applies to."@en ;
    skos:note "The field identifies the file which contains the snippet."@en .

spdx-software:sourceInfo a owl:DatatypeProperty ;
    rdfs:label "sourceInfo"@en ;
    rdfs:comment """Records any relevant background information or additional comments
about the origin of the package."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:range xsd:string ;
    skos:definition """Records any relevant background information or additional comments
about the origin of the package."""@en ;
    skos:note """A sourceInfo records any relevant background information or additional comments
about the origin of the package.

For example, this field can include comments indicating whether the package
was pulled from a source code management system or has been repackaged.

The creator can provide additional information to describe any anomalies or
discoveries in the determination of the origin of the package."""@en .

spdx-supplychain:boundaryParameter a owl:ObjectProperty ;
    rdfs:label "boundaryParameter"@en ;
    rdfs:comment "The boundary parameters define the area or region needed to describe a boundary."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:DictionaryEntry ;
    skos:definition "The boundary parameters define the area or region needed to describe a boundary."@en ;
    skos:note "A boundary parameter refers to a limiting condition, constraint, or predefined value that determines area or region boundaries."@en .

spdx-supplychain:current a owl:ObjectProperty ;
    rdfs:label "current"@en ;
    rdfs:comment "This is the individual, business, or organization who currently manages goods, services, or assets."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "This is the individual, business, or organization who currently manages goods, services, or assets."@en ;
    skos:note "This is the individual, business, or organization who currently manages goods, services, or assets."@en .

spdx-supplychain:currentState a owl:ObjectProperty ;
    rdfs:label "currentState"@en ;
    rdfs:comment "This is the state of an affected Element."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-supplychain:State ;
    skos:definition "This is the state of an affected Element."@en ;
    skos:note "The state of an object refers to a string assigned to its attributes (or properties) at a given moment in time. The state describes the current condition or behavior of the object."@en .

spdx-supplychain:decisionProcess a owl:ObjectProperty ;
    rdfs:label "decisionProcess"@en ;
    rdfs:comment "This is how the currentState of an affected Element is found."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-supplychain:DefinedStateProcess ;
    skos:definition "This is how the currentState of an affected Element is found."@en ;
    skos:note "This is how the currentState of an affected Element is found."@en .

spdx-supplychain:destructionPerformedBy a owl:ObjectProperty ;
    rdfs:label "destructionPerformedBy"@en ;
    rdfs:comment "This is the agent that performed the act of destroying the item."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "This is the agent that performed the act of destroying the item."@en ;
    skos:note "This is the agent that performed the act of destroying the item."@en .

spdx-supplychain:dropoffLocation a owl:ObjectProperty ;
    rdfs:label "dropoffLocation"@en ;
    rdfs:comment "A location where a package or an item is being dropped off or delivered."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A location where a package or an item is being dropped off or delivered."@en ;
    skos:note """A specific location where a package or an item was dropped off or delivered.

For a location that is being designated for dropping off,
see forDropoffLocation."""@en .

spdx-supplychain:forDropoffLocation a owl:ObjectProperty ;
    rdfs:label "forDropoffLocation"@en ;
    rdfs:comment "A location where a package or an item will be dropped off or delivered."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A location where a package or an item will be dropped off or delivered."@en ;
    skos:note """A designated location for dropping off or delivering a package or an item.

For a location where an item was dropped off,
see dropoffLocation."""@en .

spdx-supplychain:forPickupLocation a owl:ObjectProperty ;
    rdfs:label "forPickupLocation"@en ;
    rdfs:comment "A location where a package or an item will be picked up."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A location where a package or an item will be picked up."@en ;
    skos:note """A designated location for picking up a package or an item.

For a location where an item was picked up,
see pickupLocation."""@en .

spdx-supplychain:pickupLocation a owl:ObjectProperty ;
    rdfs:label "pickupLocation"@en ;
    rdfs:comment "A location where a package or an item is being picked up."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A location where a package or an item is being picked up."@en ;
    skos:note """A specific location where a package or an item was picked up.

For a location that is being designated for picking up,
see forPickupLocation."""@en .

spdx-supplychain:plannedCurrent a owl:ObjectProperty ;
    rdfs:label "plannedCurrent"@en ;
    rdfs:comment "This is the planned individual, business, or organization who currently manages goods, services, or assets."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "This is the planned individual, business, or organization who currently manages goods, services, or assets."@en ;
    skos:note "This is the planned individual, business, or organization who currently manages goods, services, or assets."@en .

spdx-supplychain:plannedInspectionLocation a owl:ObjectProperty ;
    rdfs:label "plannedInspectionLocation"@en ;
    rdfs:comment "A planned location where a good, product, or material is inspected."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A planned location where a good, product, or material is inspected."@en ;
    skos:note "A planned location related to the inspection of a good, product, or material."@en .

spdx-supplychain:plannedPrevious a owl:ObjectProperty ;
    rdfs:label "plannedPrevious"@en ;
    rdfs:comment "This is the planned individual, business, or organization who was previously managing goods, services, or assets."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "This is the planned individual, business, or organization who was previously managing goods, services, or assets."@en ;
    skos:note "This is the planned individual, business, or organization who was previously managing goods, services, or assets."@en .

spdx-supplychain:plannedProductOfResponsibilityChange a owl:ObjectProperty ;
    rdfs:label "plannedProductOfResponsibilityChange"@en ;
    rdfs:comment "This is the planned product associated with the change of responsibility."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Element ;
    skos:definition "This is the planned product associated with the change of responsibility."@en ;
    skos:note "The planned product or service related to a responsibility change is identified in this field."@en .

spdx-supplychain:plannedStorageLocation a owl:ObjectProperty ;
    rdfs:label "plannedStorageLocation"@en ;
    rdfs:comment "A planned location where a good, product, or material is stored."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Location ;
    skos:definition "A planned location where a good, product, or material is stored."@en ;
    skos:note "A planned location related to the storage of a good, product, or material."@en .

spdx-supplychain:plannedTransportRoute a owl:DatatypeProperty ;
    rdfs:label "plannedTransportRoute"@en ;
    rdfs:comment """A planned path used to move people, goods, data, or resources
from one location to another."""@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range xsd:string ;
    skos:definition """A planned path used to move people, goods, data, or resources
from one location to another."""@en ;
    skos:note """A planned path or network taken by people, products, goods, data, or resources.
The route varies depending on product type, safety requirements, business
constraints, or other factors."""@en .

spdx-supplychain:previous a owl:ObjectProperty ;
    rdfs:label "previous"@en ;
    rdfs:comment "This is the individual, business, or organization who was previously managing goods, services, or assets."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Agent ;
    skos:definition "This is the individual, business, or organization who was previously managing goods, services, or assets."@en ;
    skos:note "This is the individual, business, or organization who was previously managing goods, services, or assets."@en .

spdx-supplychain:responsibilityChangedOn a owl:ObjectProperty ;
    rdfs:label "responsibilityChangedOn"@en ;
    rdfs:comment "The element that has its responsibility changed."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-core:Element ;
    skos:definition "The element that has its responsibility changed."@en ;
    skos:note """The element that has its responsibility changed.

For example, "This product is associated with the change of ownership.\""""@en .

spdx-supplychain:transportRoute a owl:DatatypeProperty ;
    rdfs:label "transportRoute"@en ;
    rdfs:comment "A transport route refers to the specific path or network used to move people, goods, data, or resources from one location to another."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range xsd:string ;
    skos:definition "A transport route refers to the specific path or network used to move people, goods, data, or resources from one location to another."@en ;
    skos:note "A transport route is the path taken by people, products, goods, data or resources. Transport routes vary by product type, safety requirements, business constraints or other factors."@en .

spdx-supplychain:validState a owl:ObjectProperty ;
    rdfs:label "validState"@en ;
    rdfs:comment "The valid state for DefinedStateProcess."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-supplychain:State ;
    skos:definition "The valid state for DefinedStateProcess."@en ;
    skos:note "The valid state for DefinedStateProcess."@en .

spdx:creationInfo_NoAssertionElement a spdx-core:CreationInfo ;
    rdfs:comment "This individual element was defined by the spec."@en ;
    spdx-core:createdBy spdx-core:SpdxOrganization .

spdx:creationInfo_NoAssertionLicense a spdx-core:CreationInfo ;
    rdfs:comment "This individual element was defined by the spec."@en ;
    spdx-core:createdBy spdx-core:SpdxOrganization .

spdx:creationInfo_NoneElement a spdx-core:CreationInfo ;
    rdfs:comment "This individual element was defined by the spec."@en ;
    spdx-core:createdBy spdx-core:SpdxOrganization .

spdx:creationInfo_NoneLicense a spdx-core:CreationInfo ;
    rdfs:comment "This individual element was defined by the spec."@en ;
    spdx-core:createdBy spdx-core:SpdxOrganization .

spdx:creationInfo_SpdxOrganization a spdx-core:CreationInfo ;
    rdfs:comment "This individual element was defined by the spec."@en ;
    spdx-core:createdBy spdx-core:SpdxOrganization .

spdx-core:Annotation a owl:Class,
        sh:NodeShape ;
    rdfs:label "Annotation"@en ;
    rdfs:comment "An assertion made in relation to one or more elements."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "An assertion made in relation to one or more elements."@en ;
    skos:note """An Annotation is an assertion made in relation to one or more elements.

The contentType property describes the format of the statement property."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/AnnotationType/other> <https://spdx.org/rdf/3/terms/Core/AnnotationType/review> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:annotationType ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:statement ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:contentType ;
            sh:pattern "^[^\\/]+\\/[^\\/]+$" ],
        [ sh:class spdx-core:Element ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:subject ] .

spdx-core:Bom a owl:Class,
        sh:NodeShape ;
    rdfs:label "Bom"@en ;
    rdfs:comment """A container for a grouping of SPDX 3 content characterizing details
(provenance, composition, licensing, etc.) about a product."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Bundle ;
    skos:definition """A container for a grouping of SPDX 3 content characterizing details
(provenance, composition, licensing, etc.) about a product."""@en ;
    skos:note """A Bill of Materials (BOM) is a container for a grouping of SPDX 3 content
characterizing details about a product.

This could include details of the content and composition of the product,
provenance details of the product and/or
its composition, licensing information, known quality or security issues, etc."""@en ;
    sh:nodeKind sh:IRI .

spdx-core:ContactPointRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "ContactPointRelationship"@en ;
    rdfs:comment "A contact point from an Artifact to an Agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Relationship ;
    skos:definition "A contact point from an Artifact to an Agent."@en ;
    skos:note "Specifies a point of contact specific to an Artifact. For example, a software package may have a security contact point that researchers should use for reporting security vulnerabilities. This relationship is restricted to using the hasContactPoint relationship type."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/compliance> <https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/other> <https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/securityVulnerability> <https://spdx.org/rdf/3/terms/Core/ContactPointRelationshipType/support> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:contactType ] .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/adler32> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "adler32"@en ;
    rdfs:comment "Adler-32 checksum is part of the widely used zlib compression library as defined in RFC 1950 <https://datatracker.ietf.org/doc/rfc1950/> Section 2.3."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Adler-32 checksum is part of the widely used zlib compression library as defined in RFC 1950 <https://datatracker.ietf.org/doc/rfc1950/> Section 2.3."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b256> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "blake2b256"@en ;
    rdfs:comment "BLAKE2b algorithm with a digest size of 256, as defined in RFC 7693 <https://datatracker.ietf.org/doc/rfc7693/> Section 4."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "BLAKE2b algorithm with a digest size of 256, as defined in RFC 7693 <https://datatracker.ietf.org/doc/rfc7693/> Section 4."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b384> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "blake2b384"@en ;
    rdfs:comment "BLAKE2b algorithm with a digest size of 384, as defined in RFC 7693 <https://datatracker.ietf.org/doc/rfc7693/> Section 4."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "BLAKE2b algorithm with a digest size of 384, as defined in RFC 7693 <https://datatracker.ietf.org/doc/rfc7693/> Section 4."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b512> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "blake2b512"@en ;
    rdfs:comment "BLAKE2b algorithm with a digest size of 512, as defined in RFC 7693 <https://datatracker.ietf.org/doc/rfc7693/> Section 4."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "BLAKE2b algorithm with a digest size of 512, as defined in RFC 7693 <https://datatracker.ietf.org/doc/rfc7693/> Section 4."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake3> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "blake3"@en ;
    rdfs:comment "BLAKE3 <https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf>"@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "BLAKE3 <https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf>"@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/crystalsDilithium> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "crystalsDilithium"@en ;
    rdfs:comment "Dilithium <https://pq-crystals.org/dilithium/>"@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Dilithium <https://pq-crystals.org/dilithium/>"@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/crystalsKyber> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "crystalsKyber"@en ;
    rdfs:comment "Kyber <https://pq-crystals.org/kyber/>"@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Kyber <https://pq-crystals.org/kyber/>"@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/falcon> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "falcon"@en ;
    rdfs:comment "FALCON <https://falcon-sign.info/falcon.pdf>"@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "FALCON <https://falcon-sign.info/falcon.pdf>"@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md2> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "md2"@en ;
    rdfs:comment "MD2 message-digest algorithm, as defined in RFC 1319 <https://datatracker.ietf.org/doc/rfc1319/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "MD2 message-digest algorithm, as defined in RFC 1319 <https://datatracker.ietf.org/doc/rfc1319/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md4> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "md4"@en ;
    rdfs:comment "MD4 message-digest algorithm, as defined in RFC 1186 <https://datatracker.ietf.org/doc/rfc1186/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "MD4 message-digest algorithm, as defined in RFC 1186 <https://datatracker.ietf.org/doc/rfc1186/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md5> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "md5"@en ;
    rdfs:comment "MD5 message-digest algorithm, as defined in RFC 1321 <https://datatracker.ietf.org/doc/rfc1321/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "MD5 message-digest algorithm, as defined in RFC 1321 <https://datatracker.ietf.org/doc/rfc1321/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md6> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "md6"@en ;
    rdfs:comment "MD6 hash function <https://people.csail.mit.edu/rivest/pubs/RABCx08.pdf>"@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "MD6 hash function <https://people.csail.mit.edu/rivest/pubs/RABCx08.pdf>"@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/other> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "other"@en ;
    rdfs:comment "any hashing algorithm that does not exist in this list of entries"@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "any hashing algorithm that does not exist in this list of entries"@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha1> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha1"@en ;
    rdfs:comment "SHA-1, a secure hashing algorithm, as defined in RFC 3174 <https://datatracker.ietf.org/doc/rfc3174/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-1, a secure hashing algorithm, as defined in RFC 3174 <https://datatracker.ietf.org/doc/rfc3174/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha224> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha224"@en ;
    rdfs:comment "SHA-2 with a digest length of 224, as defined in RFC 3874 <https://datatracker.ietf.org/doc/rfc3874/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-2 with a digest length of 224, as defined in RFC 3874 <https://datatracker.ietf.org/doc/rfc3874/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha256> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha256"@en ;
    rdfs:comment "SHA-2 with a digest length of 256, as defined in RFC 6234 <https://datatracker.ietf.org/doc/rfc6234/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-2 with a digest length of 256, as defined in RFC 6234 <https://datatracker.ietf.org/doc/rfc6234/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha384> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha384"@en ;
    rdfs:comment "SHA-2 with a digest length of 384, as defined in RFC 6234 <https://datatracker.ietf.org/doc/rfc6234/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-2 with a digest length of 384, as defined in RFC 6234 <https://datatracker.ietf.org/doc/rfc6234/>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_224> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha3_224"@en ;
    rdfs:comment "SHA-3 with a digest length of 224, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-3 with a digest length of 224, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_256> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha3_256"@en ;
    rdfs:comment "SHA-3 with a digest length of 256, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-3 with a digest length of 256, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_384> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha3_384"@en ;
    rdfs:comment "SHA-3 with a digest length of 384, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-3 with a digest length of 384, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_512> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha3_512"@en ;
    rdfs:comment "SHA-3 with a digest length of 512, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-3 with a digest length of 512, as defined in FIPS 202 <https://csrc.nist.gov/pubs/fips/202/final>."@en .

<https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha512> a owl:NamedIndividual,
        spdx-core:HashAlgorithm ;
    rdfs:label "sha512"@en ;
    rdfs:comment "SHA-2 with a digest length of 512, as defined in RFC 6234 <https://datatracker.ietf.org/doc/rfc6234/>."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "SHA-2 with a digest length of 512, as defined in RFC 6234 <https://datatracker.ietf.org/doc/rfc6234/>."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/build> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "build"@en ;
    rdfs:comment "A relationship has specific context implications during an element's build phase, during development."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications during an element's build phase, during development."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/decommission> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "decommission"@en ;
    rdfs:comment "A relationship has specific context implications for a product's retirement and/or decommissioning."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications for a product's retirement and/or decommissioning."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/design> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "design"@en ;
    rdfs:comment "A relationship has specific context implications during an element's design."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications during an element's design."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/development> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "development"@en ;
    rdfs:comment "A relationship has specific context implications during development phase of an element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications during development phase of an element."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/other> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "other"@en ;
    rdfs:comment "A relationship has other specific context information necessary to capture that the above set of enumerations does not handle."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has other specific context information necessary to capture that the above set of enumerations does not handle."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/runtime> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "runtime"@en ;
    rdfs:comment "A relationship has specific context implications during the execution phase of an element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications during the execution phase of an element."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/test> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "test"@en ;
    rdfs:comment "A relationship has specific context implications during an element's testing phase, during development."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications during an element's testing phase, during development."@en .

<https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/update> a owl:NamedIndividual,
        spdx-core:LifecycleScopeType ;
    rdfs:label "update"@en ;
    rdfs:comment "A relationship has specific context implications for a product update."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A relationship has specific context implications for a product update."@en .

spdx-core:Organization a owl:Class,
        sh:NodeShape ;
    rdfs:label "Organization"@en ;
    rdfs:comment "A group of people who work together in an organized way for a shared purpose."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Agent ;
    skos:definition "A group of people who work together in an organized way for a shared purpose."@en ;
    skos:note "An Organization is a group of people who work together in an organized way for a shared purpose."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:headquartersLocation ] .

spdx-core:PackageVerificationCode a owl:Class,
        sh:NodeShape ;
    rdfs:label "PackageVerificationCode"@en ;
    rdfs:comment "An SPDX version 2.X compatible verification method for software packages."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:IntegrityMethod ;
    skos:definition "An SPDX version 2.X compatible verification method for software packages."@en ;
    skos:note """This verification method is provided for compatibility with SPDX 2.X.

Use of this verification code method is discouraged except for scenarios where the contentIdentifier property on Artifact can not be used.

This verification method provides an independently reproducible mechanism identifying specific contents of a package based on the actual files (except the SPDX document itself, if it is included in the package) that make up each package and that correlates to the data in this SPDX document.

This identifier enables a recipient to determine if any file in the original package (that the analysis was done on) has been changed and permits inclusion of an SPDX document as part of a package.

Algorithm:

    templist = ""

    for all files in the package {
        if file is a packageVerificationCodeExcludedFile
            skip it  /* exclude SPDX analysis file */
        else
            append "algorithm(file)/n" to templist
    }

    sort templist in ascending order by value

    /* remove separators from ordered sequence */
    valueslist = remove "/n"s from templist

    if valueslist is empty
       hashValue = 0
    else
       hashValue = algorithm(valueslist)

where algorithm(string) applies a hash algorithm on a string and returns the result in lowercase hexadecimal digits.

Required sort order: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' (ASCII order)"""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:path spdx-core:packageVerificationCodeExcludedFile ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:hashValue ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/adler32> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b256> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b384> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b512> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake3> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/crystalsDilithium> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/crystalsKyber> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/falcon> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md2> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md4> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md5> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md6> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/other> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha1> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha224> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha256> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha384> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha512> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_224> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_256> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_384> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_512> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:algorithm ] .

spdx-core:PhysicalLocation a owl:Class,
        sh:NodeShape ;
    rdfs:label "PhysicalLocation"@en ;
    rdfs:comment "A physical location is a tangible, geographically identifiable place where objects, people, or assets exist or operate."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Location ;
    skos:definition "A physical location is a tangible, geographically identifiable place where objects, people, or assets exist or operate."@en ;
    skos:note "A physical location is a tangible, geographically identifiable place where objects, people, or assets exist or operate."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:postalName ],
        [ sh:datatype xsd:string ;
            sh:path spdx-core:geographicPointLocation ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:streetAddress ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:country ;
            sh:pattern "^[A-Z]{3}$" ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:countyCode ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:postOfficeBoxNumber ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:postalCode ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:provinceStateCode ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:city ] .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/affects> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "affects"@en ;
    rdfs:comment "The from /Security/Vulnerability, Action or DefinedProcess affects each to Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Security/Vulnerability, Action or DefinedProcess affects each to Element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/assumes> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "assumes"@en ;
    rdfs:comment "The from Element assumes each to /FunctionalSafety/Assumption."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element assumes each to /FunctionalSafety/Assumption."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/configures> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "configures"@en ;
    rdfs:comment "The from Element is a configuration applied to each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element is a configuration applied to each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/conformsTo> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "conformsTo"@en ;
    rdfs:comment "The from Element conforms to each to /FunctionalSafety/Assumption or Specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element conforms to each to /FunctionalSafety/Assumption or Specification."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/coordinatedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "coordinatedBy"@en ;
    rdfs:comment "The from /Security/Vulnerability is coordinatedBy the to Agent(s) (vendor, researcher, or consumer agent)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Security/Vulnerability is coordinatedBy the to Agent(s) (vendor, researcher, or consumer agent)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/createdBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "createdBy"@en ;
    rdfs:comment "The from Action or DefinedProcess is createdBy to Agent(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Action or DefinedProcess is createdBy to Agent(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/delegatedTo> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "delegatedTo"@en ;
    rdfs:comment "The from Agent is delegating an action to the Agent of the to Relationship (which shall be of type invokedBy), during a LifecycleScopeType period (e.g. the to invokedBy Relationship is being done on behalf of from)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Agent is delegating an action to the Agent of the to Relationship (which shall be of type invokedBy), during a LifecycleScopeType period (e.g. the to invokedBy Relationship is being done on behalf of from)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/dependsOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "dependsOn"@en ;
    rdfs:comment "The from Element depends on each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element depends on each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/doesNotAffect> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "doesNotAffect"@en ;
    rdfs:comment "The from /Security/Vulnerability has no impact on each to Element. The use of the doesNotAffect is constrained to /Security/VexNotAffectedVulnAssessmentRelationship classed relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Security/Vulnerability has no impact on each to Element. The use of the doesNotAffect is constrained to /Security/VexNotAffectedVulnAssessmentRelationship classed relationships."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/exploitCreatedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "exploitCreatedBy"@en ;
    rdfs:comment "The from /Security/Vulnerability has had an exploit created against it by each to Agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Security/Vulnerability has had an exploit created against it by each to Agent."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/fixedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "fixedBy"@en ;
    rdfs:comment "Designates a from /Security/Vulnerability has been fixed by the to Agent(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Designates a from /Security/Vulnerability has been fixed by the to Agent(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/fixedIn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "fixedIn"@en ;
    rdfs:comment "A from /Security/Vulnerability has been fixed in each to Element. The use of the fixedIn type is constrained to /Security/VexFixedVulnAssessmentRelationship classed relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A from /Security/Vulnerability has been fixed in each to Element. The use of the fixedIn type is constrained to /Security/VexFixedVulnAssessmentRelationship classed relationships."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/foundBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "foundBy"@en ;
    rdfs:comment "Designates a from /Security/Vulnerability was originally discovered by the to Agent(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Designates a from /Security/Vulnerability was originally discovered by the to Agent(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAssessmentFor> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasAssessmentFor"@en ;
    rdfs:comment "Relates a from /Security/Vulnerability and each to Element with a security assessment. The use of the hasAssessmentFor type is constrained to /Security/VulnAssessmentRelationship classed relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Relates a from /Security/Vulnerability and each to Element with a security assessment. The use of the hasAssessmentFor type is constrained to /Security/VulnAssessmentRelationship classed relationships."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAssociatedVulnerability> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasAssociatedVulnerability"@en ;
    rdfs:comment "Used to associate a from Artifact with each to /Security/Vulnerability."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Used to associate a from Artifact with each to /Security/Vulnerability."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasConcludedLicense> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasConcludedLicense"@en ;
    rdfs:comment "The from Artifact is concluded by the SPDX data creator to be governed by each to /SimpleLicensing/AnyLicenseInfo. If the to of an Artifact's hasConcludedLicense is not the same as the to of its hasDeclaredLicense, a written explanation should be provided in the comment field of the hasConcludedLicense relationship."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Artifact is concluded by the SPDX data creator to be governed by each to /SimpleLicensing/AnyLicenseInfo. If the to of an Artifact's hasConcludedLicense is not the same as the to of its hasDeclaredLicense, a written explanation should be provided in the comment field of the hasConcludedLicense relationship."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasContactPoint> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasContactPoint"@en ;
    rdfs:comment "The from Artifact has each to Agent as a contact point. The use of the hasContactPoint type is constrained to ContactPointRelationship classed relationships. The type of contact (i.e. security) may be specified using a ContactPointRelationship element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Artifact has each to Agent as a contact point. The use of the hasContactPoint type is constrained to ContactPointRelationship classed relationships. The type of contact (i.e. security) may be specified using a ContactPointRelationship element."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDeclaredLicense> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDeclaredLicense"@en ;
    rdfs:comment "The from Artifact was discovered to actually contain each to /SimpleLicensing/AnyLicenseInfo (for example, as detected by automated tooling)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Artifact was discovered to actually contain each to /SimpleLicensing/AnyLicenseInfo (for example, as detected by automated tooling)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDynamicLink> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasDynamicLink"@en ;
    rdfs:comment "The from Element dynamically links in each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element dynamically links in each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasHost> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasHost"@en ;
    rdfs:comment "The from /Build/Build was run on the to Element during a LifecycleScopeType period (e.g. the host that the build runs on)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Build/Build was run on the to Element during a LifecycleScopeType period (e.g. the host that the build runs on)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasInput> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasInput"@en ;
    rdfs:comment "The from /Build/Build, DefinedProcess or Action element has each to Element as an input."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Build/Build, DefinedProcess or Action element has each to Element as an input."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOptionalDependency> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasOptionalDependency"@en ;
    rdfs:comment "The from Element optionally depends on each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element optionally depends on each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOutput> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasOutput"@en ;
    rdfs:comment "The from /Build/Build, DefinedProcess or Action element generates each to Element as an output."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Build/Build, DefinedProcess or Action element generates each to Element as an output."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasPrerequisite> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasPrerequisite"@en ;
    rdfs:comment "The from Element has a prerequisite on each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has a prerequisite on each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasProvidedDependency> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasProvidedDependency"@en ;
    rdfs:comment "The from Element has a dependency on each to Element, dependency is not in the distributed artifact, but assumed to be provided, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has a dependency on each to Element, dependency is not in the distributed artifact, but assumed to be provided, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasRequirement> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasRequirement"@en ;
    rdfs:comment "The from Element has a requirement on each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has a requirement on each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasResolution> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasResolution"@en ;
    rdfs:comment "The from /SupplyChain/ResolutionAction points to the to /SupplyChain/OutOfSpecAction that is addressed."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /SupplyChain/ResolutionAction points to the to /SupplyChain/OutOfSpecAction that is addressed."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasRoleIn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasRoleIn"@en ;
    rdfs:comment "The from Element has a role in the to Element. The use of the hasRoleIn is constrained to RoleRelationship classed relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element has a role in the to Element. The use of the hasRoleIn is constrained to RoleRelationship classed relationships."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasSpecification> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasSpecification"@en ;
    rdfs:comment "Every to Element is a specification for the from Element (from hasSpecification to), during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a specification for the from Element (from hasSpecification to), during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasStaticLink> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasStaticLink"@en ;
    rdfs:comment "The from Element statically links in each to Element, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element statically links in each to Element, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/hasTest> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "hasTest"@en ;
    rdfs:comment "Every to Element is a test artifact for the from Element (from hasTest to), during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every to Element is a test artifact for the from Element (from hasTest to), during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/implementedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "implementedBy"@en ;
    rdfs:comment "The from Requirement is implemented in the to Element(s)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Requirement is implemented in the to Element(s)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/invokedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "invokedBy"@en ;
    rdfs:comment "The from Element was invoked by the to Agent, during a LifecycleScopeType period (for example, a /Build/Build element that describes a build step)."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element was invoked by the to Agent, during a LifecycleScopeType period (for example, a /Build/Build element that describes a build step)."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/locatedAt> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "locatedAt"@en ;
    rdfs:comment "from Element located at a specific to Location. A time period is optional."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "from Element located at a specific to Location. A time period is optional."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/performedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "performedBy"@en ;
    rdfs:comment "Every from Action is performedBy to Agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Every from Action is performedBy to Agent."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/providesSupportFor> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "providesSupportFor"@en ;
    rdfs:comment "The from Agent provides support for each to Artifact. The use of the providesSupportFor type is constrained to SupportRelationship classed relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Agent provides support for each to Artifact. The use of the providesSupportFor type is constrained to SupportRelationship classed relationships."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/publishedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "publishedBy"@en ;
    rdfs:comment "Designates a from /Security/Vulnerability was made available for public use or reference by each to Agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Designates a from /Security/Vulnerability was made available for public use or reference by each to Agent."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/reportedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "reportedBy"@en ;
    rdfs:comment "Designates a from /Security/Vulnerability was first reported to a project, vendor, or tracking database for formal identification by each to Agent."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Designates a from /Security/Vulnerability was first reported to a project, vendor, or tracking database for formal identification by each to Agent."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/runsOn> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "runsOn"@en ;
    rdfs:comment "The from Element (the instructions) runs on each to /Hardware/Hardware (processing element), during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element (the instructions) runs on each to /Hardware/Hardware (processing element), during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/serializedInArtifact> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "serializedInArtifact"@en ;
    rdfs:comment "The from SpdxDocument can be found in a serialized form in each to Artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from SpdxDocument can be found in a serialized form in each to Artifact."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/tracedToDetail> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "tracedToDetail"@en ;
    rdfs:comment "The from Requirement is refined and further elaborated by each to Requirement, which contains more detailed implementation information."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Requirement is refined and further elaborated by each to Requirement, which contains more detailed implementation information."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/underInvestigationFor> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "underInvestigationFor"@en ;
    rdfs:comment "The from /Security/Vulnerability impact is being investigated for each to Element. The use of the underInvestigationFor type is constrained to /Security/VexUnderInvestigationVulnAssessmentRelationship classed relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from /Security/Vulnerability impact is being investigated for each to Element. The use of the underInvestigationFor type is constrained to /Security/VexUnderInvestigationVulnAssessmentRelationship classed relationships."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/usesTool> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "usesTool"@en ;
    rdfs:comment "The from Element uses each to Element as a tool, during a LifecycleScopeType period."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Element uses each to Element as a tool, during a LifecycleScopeType period."@en .

<https://spdx.org/rdf/3/terms/Core/RelationshipType/verifiedBy> a owl:NamedIndividual,
        spdx-core:RelationshipType ;
    rdfs:label "verifiedBy"@en ;
    rdfs:comment "The from Requirement that has verification (test, review, analysis etc.) details defined in the to /FunctionalSafety/RequirementVerification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The from Requirement that has verification (test, review, analysis etc.) details defined in the to /FunctionalSafety/RequirementVerification."@en .

spdx-core:RoleRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "RoleRelationship"@en ;
    rdfs:comment "RoleRelationship represents a relationship between an entity holding a role and the scope or context in which that role applies. The givenRole property specifies the role assigned."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Relationship ;
    skos:definition "RoleRelationship represents a relationship between an entity holding a role and the scope or context in which that role applies. The givenRole property specifies the role assigned."@en ;
    skos:note """RoleRelationship is a concrete subclass of Relationship that captures the connection between an entities (such as a person, organization, tool, or component) and the specific position, function, or responsibility it fulfills. This relationship type is used when documenting roles that are not implicitly defined by the SPDX document structure, allowing explicit modeling of organizational responsibilities, tooling involvement, or component functions across systems or contexts.
RoleRelationship inherits the from and to properties from Relationship, where:

- relationshipType = hasRoleIn.
- from: The element to which the role is assigned (the role recipient).
- to: The context, system, element or domain within which the role exists."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Role ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:givenRole ],
        [ sh:class spdx-core:Agent ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:assignedBy ] .

spdx-core:SupportRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "SupportRelationship"@en ;
    rdfs:comment "Describes how an Agent provides support for an Artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Relationship ;
    skos:definition "Describes how an Agent provides support for an Artifact."@en ;
    skos:note """Specifies how an Agent supports a given Artifact. The relationship type shall be
providesSupportFor. The from of the relationship is the Agent providing
support, and the to are the Artifact for which support is being provided.

startTime and endTime are mandatory when using this class."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/SupportType/development> <https://spdx.org/rdf/3/terms/Core/SupportType/support> <https://spdx.org/rdf/3/terms/Core/SupportType/deployed> <https://spdx.org/rdf/3/terms/Core/SupportType/limitedSupport> <https://spdx.org/rdf/3/terms/Core/SupportType/endOfSupport> <https://spdx.org/rdf/3/terms/Core/SupportType/noSupport> <https://spdx.org/rdf/3/terms/Core/SupportType/noAssertion> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:supportLevel ] .

<https://spdx.org/rdf/3/terms/Core/SupportType/deployed> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "deployed"@en ;
    rdfs:comment "In addition to being supported by the supplier, the software is known to have been deployed and is in use. For a software as a service provider, this implies the software is now available as a service."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "In addition to being supported by the supplier, the software is known to have been deployed and is in use. For a software as a service provider, this implies the software is now available as a service."@en .

<https://spdx.org/rdf/3/terms/Core/SupportType/development> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "development"@en ;
    rdfs:comment "The artifact is in active development and is not considered ready for formal support from the supplier."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The artifact is in active development and is not considered ready for formal support from the supplier."@en .

<https://spdx.org/rdf/3/terms/Core/SupportType/endOfSupport> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "endOfSupport"@en ;
    rdfs:comment "There is a defined end of support for the artifact from the supplier. This may also be referred to as end of life. There is a validUntilDate that can be used to signal when support ends for the artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "There is a defined end of support for the artifact from the supplier. This may also be referred to as end of life. There is a validUntilDate that can be used to signal when support ends for the artifact."@en .

<https://spdx.org/rdf/3/terms/Core/SupportType/limitedSupport> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "limitedSupport"@en ;
    rdfs:comment "The artifact has been released, and there is limited support available from the supplier. There is a validUntilDate that can provide additional information about the duration of support."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The artifact has been released, and there is limited support available from the supplier. There is a validUntilDate that can provide additional information about the duration of support."@en .

<https://spdx.org/rdf/3/terms/Core/SupportType/noAssertion> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "noAssertion"@en ;
    rdfs:comment "No assertion about the type of support is made. This is considered the default if no other support type is used."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "No assertion about the type of support is made. This is considered the default if no other support type is used."@en .

<https://spdx.org/rdf/3/terms/Core/SupportType/noSupport> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "noSupport"@en ;
    rdfs:comment "There is no support for the artifact from the supplier, consumer assumes any support obligations."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "There is no support for the artifact from the supplier, consumer assumes any support obligations."@en .

<https://spdx.org/rdf/3/terms/Core/SupportType/support> a owl:NamedIndividual,
        spdx-core:SupportType ;
    rdfs:label "support"@en ;
    rdfs:comment "The artifact has been released, and is supported from the supplier. There is a validUntilDate that can provide additional information about the duration of support."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The artifact has been released, and is supported from the supplier. There is a validUntilDate that can provide additional information about the duration of support."@en .

spdx-core:algorithm a owl:ObjectProperty ;
    rdfs:label "algorithm"@en ;
    rdfs:comment "Specifies the algorithm used for calculating the hash value."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:HashAlgorithm ;
    skos:definition "Specifies the algorithm used for calculating the hash value."@en ;
    skos:note """An algorithm specifies the algorithm that was used for calculating the hash
value."""@en .

spdx-core:extension a owl:ObjectProperty ;
    rdfs:label "extension"@en ;
    rdfs:comment "Specifies an Extension characterization of some aspect of an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-extension:Extension ;
    skos:definition "Specifies an Extension characterization of some aspect of an Element."@en ;
    skos:note """extension specifies an Extension-based characterization of a particular
aspect of an Element."""@en .

spdx-core:hashValue a owl:DatatypeProperty ;
    rdfs:label "hashValue"@en ;
    rdfs:comment "The result of applying a hash algorithm to an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "The result of applying a hash algorithm to an Element."@en ;
    skos:note "A hashValue is the result of applying a hash algorithm to an Element."@en .

spdx-core:key a owl:DatatypeProperty ;
    rdfs:label "key"@en ;
    rdfs:comment "A key used in a generic key-value pair."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "A key used in a generic key-value pair."@en ;
    skos:note """A key used in generic a key-value pair.

A key-value pair can be used to implement a dictionary which associates a key
with a value."""@en .

spdx-core:suppliedBy a owl:ObjectProperty ;
    rdfs:label "suppliedBy"@en ;
    rdfs:comment """Identifies who or what supplied the artifact or VulnAssessmentRelationship
referenced by the Element."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Agent ;
    skos:definition """Identifies who or what supplied the artifact or VulnAssessmentRelationship
referenced by the Element."""@en ;
    skos:note """Identify the actual distribution source for the artifact (e.g., snippet, file,
package, vulnerability) or VulnAssessmentRelationship being referenced.

This may or may not be different from the originating distribution source
for the artifact (e.g., snippet, file, package, vulnerability) or
VulnAssessmentRelationship."""@en .

spdx-core:supportLevel a owl:ObjectProperty ;
    rdfs:label "supportLevel"@en ;
    rdfs:comment "Specifies the level of support associated with an artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:SupportType ;
    skos:definition "Specifies the level of support associated with an artifact."@en ;
    skos:note """supportLevel provides an indication of what support expectations that the
supplier of an artifact is providing to the user."""@en .

spdx-core:verifiedUsing a owl:ObjectProperty ;
    rdfs:label "verifiedUsing"@en ;
    rdfs:comment """Provides an IntegrityMethod with which the integrity of an Element can be
asserted."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:IntegrityMethod ;
    skos:definition """Provides an IntegrityMethod with which the integrity of an Element can be
asserted."""@en ;
    skos:note """A verifiedUsing provides an IntegrityMethod with which the integrity of an
Element can be asserted.

Please note that different profiles may also provide additional methods for
verifying the integrity of specific subclasses of Elements."""@en .

spdx-expandedlicensing:ConjunctiveLicenseSet a owl:Class,
        sh:NodeShape ;
    rdfs:label "ConjunctiveLicenseSet"@en ;
    rdfs:comment """Portion of an AnyLicenseInfo representing a set of licensing information
where all elements apply."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition """Portion of an AnyLicenseInfo representing a set of licensing information
where all elements apply."""@en ;
    skos:note """A ConjunctiveLicenseSet indicates that _each_ of its subsidiary
AnyLicenseInfos apply. In other words, a ConjunctiveLicenseSet of two or
more licenses represents a licensing situation where _all_ of the specified
licenses are to be complied with. It is represented in the SPDX License
Expression Syntax by the AND operator.

It is syntactically correct to specify a ConjunctiveLicenseSet where the
subsidiary AnyLicenseInfos may be "incompatible" according to a particular
interpretation of the corresponding Licenses.
The
SPDX License Expression Syntax
does not take into account interpretation of license texts, which is
left to the consumer of SPDX data to determine for themselves."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-simplelicensing:AnyLicenseInfo ;
            sh:minCount 2 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-expandedlicensing:member ] .

spdx-expandedlicensing:CustomLicense a owl:Class,
        sh:NodeShape ;
    rdfs:label "CustomLicense"@en ;
    rdfs:comment "A license that is not listed on the SPDX License List."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-expandedlicensing:License ;
    skos:definition "A license that is not listed on the SPDX License List."@en ;
    skos:note """A CustomLicense represents a License that is not listed on the
SPDX License List <https://spdx.org/licenses>,
and is therefore defined by an SPDX data creator."""@en ;
    sh:nodeKind sh:IRI .

spdx-expandedlicensing:CustomLicenseAddition a owl:Class,
        sh:NodeShape ;
    rdfs:label "CustomLicenseAddition"@en ;
    rdfs:comment "A license addition that is not listed on the SPDX Exceptions List."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-expandedlicensing:LicenseAddition ;
    skos:definition "A license addition that is not listed on the SPDX Exceptions List."@en ;
    skos:note """A CustomLicenseAddition represents an addition to a License that is not listed
on the
SPDX License Exceptions <https://spdx.org/licenses/exceptions-index.html>,
and is therefore defined by an SPDX data creator.

It is intended to represent additional language which is meant to be added to
a License, but which is not itself a standalone License."""@en ;
    sh:nodeKind sh:IRI .

spdx-expandedlicensing:DisjunctiveLicenseSet a owl:Class,
        sh:NodeShape ;
    rdfs:label "DisjunctiveLicenseSet"@en ;
    rdfs:comment """Portion of an AnyLicenseInfo representing a set of licensing information where
only one of the elements applies."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition """Portion of an AnyLicenseInfo representing a set of licensing information where
only one of the elements applies."""@en ;
    skos:note """A DisjunctiveLicenseSet indicates that _only one_ of its subsidiary
AnyLicenseInfos is required to apply. In other words, a DisjunctiveLicenseSet
of two or more licenses represents a licensing situation where _only one_ of
the specified licenses are to be complied with.

A consumer of SPDX data would typically understand this to permit the recipient
of the licensed content to choose which of the corresponding license they would
prefer to use. It is represented in the SPDX License Expression Syntax by the
OR operator."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-simplelicensing:AnyLicenseInfo ;
            sh:minCount 2 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-expandedlicensing:member ] .

spdx-expandedlicensing:ListedLicense a owl:Class,
        sh:NodeShape ;
    rdfs:label "ListedLicense"@en ;
    rdfs:comment "A license that is listed on the SPDX License List."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-expandedlicensing:License ;
    skos:definition "A license that is listed on the SPDX License List."@en ;
    skos:note """A ListedLicense represents a License that is listed on the
SPDX License List <https://spdx.org/licenses>."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:deprecatedVersion ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:listVersionAdded ] .

spdx-expandedlicensing:ListedLicenseException a owl:Class,
        sh:NodeShape ;
    rdfs:label "ListedLicenseException"@en ;
    rdfs:comment "A license exception that is listed on the SPDX Exceptions list."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-expandedlicensing:LicenseAddition ;
    skos:definition "A license exception that is listed on the SPDX Exceptions list."@en ;
    skos:note """A ListedLicenseException represents an exception to a License (in other words,
an exception to a license condition or an additional permission beyond those
granted in a License) which is listed on the
SPDX License Exceptions <https://spdx.org/licenses/exceptions-index.html>."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:listVersionAdded ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:deprecatedVersion ] .

spdx-expandedlicensing:OrLaterOperator a owl:Class,
        sh:NodeShape ;
    rdfs:label "OrLaterOperator"@en ;
    rdfs:comment """Portion of an AnyLicenseInfo representing this version, or any later version,
of the indicated License."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-expandedlicensing:ExtendableLicense ;
    skos:definition """Portion of an AnyLicenseInfo representing this version, or any later version,
of the indicated License."""@en ;
    skos:note """An OrLaterOperator indicates that this portion of the AnyLicenseInfo
represents either (1) the specified version of the corresponding License, or
(2) any later version of that License. It is represented in the SPDX License
Expression Syntax by the + operator.

It is context-dependent, and unspecified by SPDX, as to what constitutes a
"later version" of any particular License. Some Licenses may not be versioned,
or may not have clearly-defined ordering for versions. The consumer of SPDX
data will need to determine for themselves what meaning to attribute to a
"later version" operator for a particular License."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-expandedlicensing:License ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-expandedlicensing:subjectLicense ] .

spdx-expandedlicensing:WithAdditionOperator a owl:Class,
        sh:NodeShape ;
    rdfs:label "WithAdditionOperator"@en ;
    rdfs:comment """Portion of an AnyLicenseInfo representing a License which has additional
text applied to it."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition """Portion of an AnyLicenseInfo representing a License which has additional
text applied to it."""@en ;
    skos:note """A WithAdditionOperator indicates that the designated License is subject to the
designated LicenseAddition, which can be a license exception on the
SPDX License Exceptions <https://spdx.org/licenses/exceptions-index.html>
(ListedLicenseException) or may be other additional text
(CustomLicenseAddition). It is represented in the SPDX License Expression
Syntax by the WITH operator."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-expandedlicensing:LicenseAddition ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-expandedlicensing:subjectAddition ],
        [ sh:class spdx-expandedlicensing:ExtendableLicense ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-expandedlicensing:subjectExtendableLicense ] .

spdx-expandedlicensing:deprecatedVersion a owl:DatatypeProperty ;
    rdfs:label "deprecatedVersion"@en ;
    rdfs:comment """Specifies the SPDX License List version in which this license or exception
identifier was deprecated."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition """Specifies the SPDX License List version in which this license or exception
identifier was deprecated."""@en ;
    skos:note """A deprecatedVersion, for a ListedLicense on the
SPDX License List <https://spdx.org/licenses/>
or a ListedLicenseException on the
SPDX License Exceptions <https://spdx.org/licenses/exceptions-index.html>,
specifies which version release of the License List was the first
one in which it was marked as deprecated."""@en .

spdx-expandedlicensing:licenseXml a owl:DatatypeProperty ;
    rdfs:label "licenseXml"@en ;
    rdfs:comment """Identifies all the text and metadata associated with a license in the license
XML format."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition """Identifies all the text and metadata associated with a license in the license
XML format."""@en ;
    skos:note """The license XML format is defined and used by the SPDX legal team.

The formal schema definition is available at
SPDX License List XML Schema <https://github.com/spdx/license-list-XML/blob/v3.25.0/schema/ListedLicense.xsd>.

For a text description of the XML fields, see
XML template fields <https://github.com/spdx/license-list-XML/blob/v3.25.0/DOCS/xml-fields.md>."""@en .

spdx-expandedlicensing:listVersionAdded a owl:DatatypeProperty ;
    rdfs:label "listVersionAdded"@en ;
    rdfs:comment """Specifies the SPDX License List version in which this ListedLicense or
ListedLicenseException identifier was first added."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition """Specifies the SPDX License List version in which this ListedLicense or
ListedLicenseException identifier was first added."""@en ;
    skos:note """A listVersionAdded for a ListedLicense or ListedLicenseException on the
SPDX License List <https://spdx.org/licenses/>
specifies which version release of the License List was the first
one in which it was included."""@en .

spdx-expandedlicensing:member a owl:ObjectProperty ;
    rdfs:label "member"@en ;
    rdfs:comment "A license expression participating in a license set."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition "A license expression participating in a license set."@en ;
    skos:note """A member is a license expression participating in a conjunctive (of type
ConjunctiveLicenseSet) or a disjunctive (of type DisjunctiveLicenseSet)
license set."""@en .

spdx-expandedlicensing:obsoletedBy a owl:DatatypeProperty ;
    rdfs:label "obsoletedBy"@en ;
    rdfs:comment """Specifies the licenseId that is preferred to be used in place of a deprecated
License or LicenseAddition."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:string ;
    skos:definition """Specifies the licenseId that is preferred to be used in place of a deprecated
License or LicenseAddition."""@en ;
    skos:note """An obsoletedBy value for a deprecated License or LicenseAddition specifies
the licenseId of the replacement License or LicenseAddition that is preferred
to be used in its place. It shall use the same format as specified for a
licenseId.

The License's or LicenseAddition's comment value may include more information
about the reason why the licenseId specified in the obsoletedBy value is
preferred."""@en .

spdx-expandedlicensing:seeAlso a owl:DatatypeProperty ;
    rdfs:label "seeAlso"@en ;
    rdfs:comment "Contains a URL where the License or LicenseAddition can be found in use."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:range xsd:anyURI ;
    skos:definition "Contains a URL where the License or LicenseAddition can be found in use."@en ;
    skos:note """A seeAlso defines a cross-reference with a URL where the License or
LicenseAddition can be found in use by one or a few projects.

If applicable, it should include a URL where the license text is posted by
the license steward, particularly if the license steward has made available a
"canonical" primary URL for the license text.

If the license is OSI approved, a seeAlso should be included with the URL for
the license's listing on the OSI website.

The seeAlso URL may refer to a previously-available URL for the License or
LicenseAddition which is no longer active.

Where applicable, the seeAlso URL should include the license text in its
native language. seeAlso URLs to English or other translations may be included
where multiple, equivalent official translations exist."""@en .

spdx-functionalsafety:EvaluationResult a owl:Class,
        sh:NodeShape ;
    rdfs:label "EvaluationResult"@en ;
    rdfs:comment "EvaluationResult is the result of an evaluation."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "EvaluationResult is the result of an evaluation."@en ;
    skos:note """EvaluationResult represents the documented outcome of assessing a work product, like a requirement, system, component, or process against specified criteria. It records whether the evaluated subject has met, failed, or yielded an inconclusive result based on the applied EvaluationResultType. The EvaluationResult captures the rationale behind the conclusion, providing necessary context and justification while referencing the specific RequirementVerification upon which the evaluation was based. This structure ensures clear traceability and supports compliance with standards for rigorous verification and validation processes.

An EvaluationResult with an evaluation value of "inconclusive" should have a value in its comment property.

A rationale is a detailed explanation or reasoning that supports the
EvaluationResult. It provides the underlying justification for why
an evaluation was deemed to have passed, failed, or been inconclusive.
This clarifies the decision-making process, citing evidence, criteria,
analysis methods, and any considerations of uncertainties or risks."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-functionalsafety:RequirementVerification ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-functionalsafety:evaluationBasedOn ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/FunctionalSafety/EvaluationResultType/pass> <https://spdx.org/rdf/3/terms/FunctionalSafety/EvaluationResultType/fail> <https://spdx.org/rdf/3/terms/FunctionalSafety/EvaluationResultType/inconclusive> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-functionalsafety:evaluation ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:rationale ] .

spdx-hardware:BulkHardware a owl:Class,
        sh:NodeShape ;
    rdfs:label "BulkHardware"@en ;
    rdfs:comment "Products or commodities produced as a bulk unit are called bulk products. Commodities are often sold in bulk."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:subClassOf spdx-hardware:Hardware ;
    skos:definition "Products or commodities produced as a bulk unit are called bulk products. Commodities are often sold in bulk."@en ;
    skos:note """Products or commodities produced as a bulk unit are called bulk products. Commodities are often sold in bulk based on a batch or bulk ID number associated with the bulk unit.
Bulk units defined in the QUDT Units standards."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:UnitOfMeasure ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:bulkQuantity ] .

spdx-hardware:PhysicalHardware a owl:Class,
        sh:NodeShape ;
    rdfs:label "PhysicalHardware"@en ;
    rdfs:comment "Class that describes a physical instance of Hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:subClassOf spdx-hardware:Hardware ;
    skos:definition "Class that describes a physical instance of Hardware."@en ;
    skos:note "A PhysicalHardware artifact describes a distinct physical unit."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-hardware:Dimensions ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:dimensions ],
        [ sh:class spdx-hardware:Dimensions ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:centerOfMass ],
        [ sh:class spdx-core:MeasureOfMass ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:massOfHardware ] .

spdx-hardware:VirtualHardware a owl:Class,
        sh:NodeShape ;
    rdfs:label "VirtualHardware"@en ;
    rdfs:comment "Class that describes an instance of VirtualHardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:subClassOf spdx-hardware:Hardware ;
    skos:definition "Class that describes an instance of VirtualHardware."@en ;
    skos:note """A VirtualHardware is a distinct article related to simulation or emulation hardware.
This is used to assist in recording "Digital Twinning".

An FPGA simulation of hardware is a VirtualHardware.
Virtual hardware requires instantiation involving specific hardware and software."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Hardware/VirtualHardwareModelType/function> <https://spdx.org/rdf/3/terms/Hardware/VirtualHardwareModelType/cycle> <https://spdx.org/rdf/3/terms/Hardware/VirtualHardwareModelType/other> ) ;
            sh:maxCount 1 ;
            sh:path spdx-hardware:virtualHardwareModel ] .

spdx-hardware:hazard a owl:ObjectProperty ;
    rdfs:label "hazard"@en ;
    rdfs:comment "Hazards are potential sources of harm, danger, or adverse effects to people, property, the environment, or systems within or related to a specific piece of hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range spdx-core:DefinedType ;
    skos:definition "Hazards are potential sources of harm, danger, or adverse effects to people, property, the environment, or systems within or related to a specific piece of hardware."@en ;
    skos:note "Hazards are potential sources of harm, danger, or adverse effects to people, property, the environment, or systems within or related to a specific piece of hardware. For example, a lithium battery is a hazardous hardware item."@en .

spdx-hardware:partNumber a owl:DatatypeProperty ;
    rdfs:label "partNumber"@en ;
    rdfs:comment "Product Part Number as defined by OEM."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:range xsd:string ;
    skos:definition "Product Part Number as defined by OEM."@en ;
    skos:note "Product Part Number as defined by manufacturer. Can be used for an SKU."@en .

spdx-operations:ExportControlClassificationAssessment a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExportControlClassificationAssessment"@en ;
    rdfs:comment "Assessment of an Element for export control classification."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "Assessment of an Element for export control classification."@en ;
    skos:note """Assessment of an Element for export control classification
according to the classification schema of one or multiple countries."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Element ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-operations:assessedElement ],
        [ sh:class spdx-operations:ExportControlClassification ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-operations:assessmentResult ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-operations:assessmentTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-operations:Project ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-operations:assessmentContext ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-operations:assessor ] .

<https://spdx.org/rdf/3/terms/Security/CvssSeverityType/critical> a owl:NamedIndividual,
        spdx-security:CvssSeverityType ;
    rdfs:label "critical"@en ;
    rdfs:comment "When a CVSS score is between 9.0 - 10.0."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "When a CVSS score is between 9.0 - 10.0."@en .

<https://spdx.org/rdf/3/terms/Security/CvssSeverityType/high> a owl:NamedIndividual,
        spdx-security:CvssSeverityType ;
    rdfs:label "high"@en ;
    rdfs:comment "When a CVSS score is between 7.0 - 8.9."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "When a CVSS score is between 7.0 - 8.9."@en .

<https://spdx.org/rdf/3/terms/Security/CvssSeverityType/low> a owl:NamedIndividual,
        spdx-security:CvssSeverityType ;
    rdfs:label "low"@en ;
    rdfs:comment "When a CVSS score is between 0.1 - 3.9."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "When a CVSS score is between 0.1 - 3.9."@en .

<https://spdx.org/rdf/3/terms/Security/CvssSeverityType/medium> a owl:NamedIndividual,
        spdx-security:CvssSeverityType ;
    rdfs:label "medium"@en ;
    rdfs:comment "When a CVSS score is between 4.0 - 6.9."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "When a CVSS score is between 4.0 - 6.9."@en .

<https://spdx.org/rdf/3/terms/Security/CvssSeverityType/none> a owl:NamedIndividual,
        spdx-security:CvssSeverityType ;
    rdfs:label "none"@en ;
    rdfs:comment "When a CVSS score is 0.0."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "When a CVSS score is 0.0."@en .

spdx-security:CvssV2VulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "CvssV2VulnAssessmentRelationship"@en ;
    rdfs:comment "Provides a CVSS version 2.0 assessment for a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Provides a CVSS version 2.0 assessment for a vulnerability."@en ;
    skos:note """A CvssV2VulnAssessmentRelationship relationship describes the determined score
and vector of a vulnerability as defined in
A Complete Guide to the Common Vulnerability Scoring System Version 2.0 <https://www.first.org/cvss/v2/guide>.

It is intended to communicate the results of using a CVSS calculator.

*Constraints*

- The relationship type shall be set to hasAssessmentFor.

*Example*

{
  "type": "security_CvssV2VulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:cvssv2-cve-2020-28498",
  "relationshipType": "hasAssessmentFor",
  "security_score": "4.3",
  "security_vectorString": "AV:N/AC:M/Au:N/C:P/I:N/A:N",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.2",
  "externalRef": [
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": "https://nvd.nist.gov/vuln/detail/CVE-2020-28498"
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": "https://snyk.io/vuln/SNYK-JS-ELLIPTIC-1064899"
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityFix",
      "locator": "https://github.com/indutny/elliptic/commit/441b742"
    }
  ],
  "suppliedBy": "urn:spdx.dev:agent-my-security-vendor",
  "security_publishedTime": "2023-05-06T10:06:13Z"
},
{
  "type": "Relationship",
  "spdxId": "urn:spdx.dev:vulnAgentRel-1",
  "relationshipType": "publishedBy",
  "from": "urn:spdx.dev:cvssv2-cve-2020-28498",
  "to": ["urn:spdx.dev:agent-snyk"],
  "startTime": "2021-03-08T16:06:50Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:score ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:vectorString ] .

spdx-security:CvssV3VulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "CvssV3VulnAssessmentRelationship"@en ;
    rdfs:comment "Provides a CVSS version 3 assessment for a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Provides a CVSS version 3 assessment for a vulnerability."@en ;
    skos:note """A CvssV3VulnAssessmentRelationship relationship describes the determined score,
severity, and vector of a vulnerability as defined in
Common Vulnerability Scoring System v3.0: Specification Document <https://www.first.org/cvss/v3.0/specification-document>
or
Common Vulnerability Scoring System v3.1: Specification Document <https://www.first.org/cvss/v3.1/specification-document>.

It is intended to communicate the results of using a CVSS calculator.

*Constraints*

- The relationship type shall be set to hasAssessmentFor.

*Example*

{
  "type": "security_CvssV3VulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:cvssv3-cve-2020-28498",
  "relationshipType": "hasAssessmentFor",
  "security_score": "6.8",
  "security_severity": "medium",
  "security_vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.2",
  "externalRef": [
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": "https://nvd.nist.gov/vuln/detail/CVE-2020-28498"
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": "https://snyk.io/vuln/SNYK-JS-ELLIPTIC-1064899"
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityFix",
      "locator": "https://github.com/indutny/elliptic/commit/441b742"
    }
  ],
  "suppliedBy": "urn:spdx.dev:agent-my-security-vendor",
  "security_publishedTime": "2023-05-06T10:06:13Z"
},
{
  "type": "Relationship",
  "spdxId": "urn:spdx.dev:vulnAgentRel-1",
  "relationshipType": "publishedBy",
  "from": "urn:spdx.dev:cvssv3-cve-2020-28498",
  "to": ["urn:spdx.dev:agent-snyk"],
  "startTime": "2021-03-08T16:06:50Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/critical> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/high> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/medium> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/low> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/none> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:severity ],
        [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:score ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:vectorString ] .

spdx-security:CvssV4VulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "CvssV4VulnAssessmentRelationship"@en ;
    rdfs:comment "Provides a CVSS version 4 assessment for a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Provides a CVSS version 4 assessment for a vulnerability."@en ;
    skos:note """A CvssV4VulnAssessmentRelationship relationship describes the determined score,
severity, and vector of a vulnerability as defined in
Common Vulnerability Scoring System version 4.0: Specification Document <https://www.first.org/cvss/v4.0/specification-document>.

It is intended to communicate the results of using a CVSS calculator.

*Constraints*

- The relationship type shall be set to hasAssessmentFor.

*Example*

{
  "type": "security_CvssV4VulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:cvssv4-cve-2021-44228",
  "relationshipType": "hasAssessmentFor",
  "security_severity": "critical",
  "security_score": "10.0",
  "security_vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N",
  "from": "urn:spdx.dev:vuln-cve-2021-44228",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:apache-log4j-2.14.1",
  "externalRef": [
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": "https://nvd.nist.gov/vuln/detail/CVE-2021-44228"
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": "https://logging.apache.org/log4j/2.x/security.html"
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityOther",
      "locator": "https://www.first.org/cvss/v4.0/examples#Apache-log4j-Vulnerability-CVE-2021-44228"
    },
  ],
  "suppliedBy": "urn:spdx.dev:agent-my-security-vendor",
  "security_publishedTime": "2023-10-05T23:09:13Z"
},
{
  "type": "Relationship",
  "spdxId": "urn:spdx.dev:vulnAgentRel-1",
  "relationshipType": "publishedBy",
  "from": "urn:spdx.dev:cvssv4-cve-2021-44228",
  "to": ["urn:spdx.dev:agent-apache.org"],
  "startTime": "2021-12-11T18:39:00Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/critical> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/high> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/medium> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/low> <https://spdx.org/rdf/3/terms/Security/CvssSeverityType/none> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:severity ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:vectorString ],
        [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:score ] .

spdx-security:EpssVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "EpssVulnAssessmentRelationship"@en ;
    rdfs:comment "Provides an EPSS assessment for a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Provides an EPSS assessment for a vulnerability."@en ;
    skos:note """An EpssVulnAssessmentRelationship relationship describes the likelihood or
probability that a vulnerability will be exploited in the wild, and the
percentile ranking of probability relative to all other vulnerabilities' EPSS
scores, using the Exploit Prediction Scoring System (EPSS) as defined at
The EPSS Model <https://www.first.org/epss/model>.

*Constraints*

- The relationship type shall be set to hasAssessmentFor.
- The probability shall be between 0 and 1.
- The percentile shall be between 0 and 1.

*Example*

{
  "type": "security_EpssVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:epss-CVE-2020-28498",
  "relationshipType": "hasAssessmentFor",
  "security_probability": "0.00105",
  "security_percentile": "0.42356",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2023-10-05T00:00:30Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:percentile ],
        [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:probability ] .

spdx-security:ExploitCatalogVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExploitCatalogVulnAssessmentRelationship"@en ;
    rdfs:comment "Provides an exploit assessment of a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Provides an exploit assessment of a vulnerability."@en ;
    skos:note """An ExploitCatalogVulnAssessmentRelationship describes if a vulnerability is
listed in any exploit catalog such as the
CISA Known Exploited Vulnerabilities (KEV) Catalog <https://www.cisa.gov/known-exploited-vulnerabilities-catalog>.

*Constraints*

- The relationship type shall be set to hasAssessmentFor.

*Example*

{
  "type": "security_ExploitCatalogVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:exploit-catalog-1",
  "relationshipType": "hasAssessmentFor",
  "security_catalogType": "kev",
  "locator": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
  "security_exploited": "true",
  "from": "urn:spdx.dev:vuln-cve-2023-2136",
  "to": ["urn:product-google-chrome-112.0.5615.136"],
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2021-03-09T11:04:53Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:locator ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Security/ExploitCatalogType/kev> <https://spdx.org/rdf/3/terms/Security/ExploitCatalogType/other> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:catalogType ],
        [ sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:exploited ] .

spdx-security:SsvcVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "SsvcVulnAssessmentRelationship"@en ;
    rdfs:comment "Provides an SSVC assessment for a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Provides an SSVC assessment for a vulnerability."@en ;
    skos:note """An SsvcVulnAssessmentRelationship describes the decision made using the
Stakeholder-Specific Vulnerability Categorization (SSVC) decision tree as
defined by
CISA Stakeholder-Specific Vulnerability Categorization Guide <https://www.cisa.gov/stakeholder-specific-vulnerability-categorization-ssvc>.

It is intended to communicate the results of using the CISA SSVC Calculator.

*Constraints*

- The relationship type shall be set to hasAssessmentFor.

*Example*

{
  "type": "security_SsvcVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:ssvc-1",
  "relationshipType": "hasAssessmentFor",
  "security_decisionType": "act",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.2",
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2021-03-09T11:04:53Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/act> <https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/attend> <https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/track> <https://spdx.org/rdf/3/terms/Security/SsvcDecisionType/trackStar> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:decisionType ] .

spdx-security:VexAffectedVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "VexAffectedVulnAssessmentRelationship"@en ;
    rdfs:comment """Connects a vulnerability and an element designating the element as a product
affected by the vulnerability."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VexVulnAssessmentRelationship ;
    skos:definition """Connects a vulnerability and an element designating the element as a product
affected by the vulnerability."""@en ;
    skos:note """VexAffectedVulnAssessmentRelationship connects a vulnerability and a number of
elements. The relationship marks these elements as products affected by the
vulnerability. This relationship corresponds to the VEX affected status.

*Constraints*

When linking elements using a VexAffectedVulnAssessmentRelationship, the
following requirements shall be observed:

- Elements linked with a VulnVexAffectedAssessmentRelationship are constrained
  to the affects relationship type.

*Example*

{
  "type": "security_VexAffectedVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:vex-affected-1",
  "relationshipType": "affects",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.2",
  "security_actionStatement": "Upgrade to version 1.4 of ACME application.",
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2021-03-09T11:04:53Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:actionStatementTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-security:actionStatement ] .

spdx-security:modifiedTime a owl:DatatypeProperty ;
    rdfs:label "modifiedTime"@en ;
    rdfs:comment "Specifies a time when a vulnerability assessment was modified"@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Specifies a time when a vulnerability assessment was modified"@en ;
    skos:note "Specifies a time when a vulnerability assessment was last modified."@en .

spdx-security:publishedTime a owl:DatatypeProperty ;
    rdfs:label "publishedTime"@en ;
    rdfs:comment "Specifies the time when a vulnerability was published."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Specifies the time when a vulnerability was published."@en ;
    skos:note "Specifies the time when a vulnerability was first published."@en .

spdx-security:severity a owl:ObjectProperty ;
    rdfs:label "severity"@en ;
    rdfs:comment "Specifies the CVSS qualitative severity rating of a vulnerability in relation to a piece of software."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range spdx-security:CvssSeverityType ;
    skos:definition "Specifies the CVSS qualitative severity rating of a vulnerability in relation to a piece of software."@en ;
    skos:note "The severity field provides a human readable string of the resulting numerical CVSS score."@en .

spdx-security:withdrawnTime a owl:DatatypeProperty ;
    rdfs:label "withdrawnTime"@en ;
    rdfs:comment "Specified the time and date when a vulnerability was withdrawn."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition "Specified the time and date when a vulnerability was withdrawn."@en ;
    skos:note "Specified the time and date when a vulnerability was withdrawn."@en .

spdx-service:SoftwareService a owl:Class,
        sh:NodeShape ;
    rdfs:label "SoftwareService"@en ;
    rdfs:comment "Software provided as a service over a network."@en ;
    rdfs:isDefinedBy spdx-service: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "Software provided as a service over a network."@en ;
    skos:note """SoftwareService represents a service based on software components offered for access online over a network.
The primary provider of the SoftwareService is the /Core/suppliedBy.
Any additional providers can use a relationship of relationship type availableFrom."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/tls> <https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/ocsp> <https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/crl> <https://spdx.org/rdf/3/terms/Service/AuthenticationProtocolType/other> ) ;
            sh:path spdx-service:serverAuthenticationProtocol ],
        [ sh:datatype xsd:string ;
            sh:path spdx-service:serviceHostingCountry ;
            sh:pattern "^[A-Z]{3}$" ] .

spdx-simplelicensing:LicenseExpression a owl:Class,
        sh:NodeShape ;
    rdfs:label "LicenseExpression"@en ;
    rdfs:comment "An SPDX Element containing an SPDX license expression string."@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:subClassOf spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition "An SPDX Element containing an SPDX license expression string."@en ;
    skos:note """A LicenseExpression enables the representation, in a single string, of a
combination of one or more licenses, together with additions such as license
exceptions.

The syntax for a licenseExpression string is set forth in the corresponding
Annex of this document
("SPDX license expressions").
A licenseExpression string is not valid if it does not conform to the grammar
set forth in that Annex.

The ExpandedLicensing profile can be used to represent the complete parsed
license expression as a combination of license objects.

customIdToUri is deprecated. Migrate to customIdToLicense. customIdToUri
will be removed in a future release."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-simplelicensing:customIdToUri ],
        [ sh:class spdx-core:ElementMap ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-simplelicensing:customIdToLicense ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-simplelicensing:licenseListVersion ;
            sh:pattern "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))?$" ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-simplelicensing:licenseExpression ] .

spdx-simplelicensing:SimpleLicensingText a owl:Class,
        sh:NodeShape ;
    rdfs:label "SimpleLicensingText"@en ;
    rdfs:comment "A license or a license addition that is not listed on the SPDX License List."@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "A license or a license addition that is not listed on the SPDX License List."@en ;
    skos:note """A SimpleLicensingText represents a license or a license addition
that is not listed on the SPDX License List <https://spdx.org/licenses>,
and is therefore defined by an SPDX data creator."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-simplelicensing:licenseText ] .

spdx-simplelicensing:licenseText a owl:DatatypeProperty ;
    rdfs:label "licenseText"@en ;
    rdfs:comment "The full plain text of a license or a license addition."@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:range xsd:string ;
    skos:definition "The full plain text of a license or a license addition."@en ;
    skos:note """The full plain text of a license or a license addition,
without templating or other similar markup.

Users of the licenseText for a license can apply the
SPDX License List Matching Guidelines
when comparing it to another text for matching purposes."""@en .

spdx-software:Snippet a owl:Class,
        sh:NodeShape ;
    rdfs:label "Snippet"@en ;
    rdfs:comment "Describes a certain part of a file."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:subClassOf spdx-software:SoftwareArtifact ;
    skos:definition "Describes a certain part of a file."@en ;
    skos:note """A Snippet describes a certain part of a file and can be used when the file is
known to have some content that has been included from another original source.

Snippets are useful for denoting when part of a file may have been originally
created under another license or copied from a place with a known
vulnerability."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-software:File ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-software:snippetFromFile ],
        [ sh:class spdx-core:PositiveIntegerRange ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-software:lineRange ],
        [ sh:class spdx-core:PositiveIntegerRange ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-software:byteRange ] .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/application> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "application"@en ;
    rdfs:comment "The Element is a software application."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a software application."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/archive> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "archive"@en ;
    rdfs:comment "The Element is an archived collection of one or more files (.tar, .zip, etc.)."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is an archived collection of one or more files (.tar, .zip, etc.)."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/bom> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "bom"@en ;
    rdfs:comment "The Element is a bill of materials."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a bill of materials."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/configuration> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "configuration"@en ;
    rdfs:comment "The Element is configuration data."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is configuration data."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/container> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "container"@en ;
    rdfs:comment "The Element is a container image which can be used by a container runtime application."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a container image which can be used by a container runtime application."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/data> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "data"@en ;
    rdfs:comment "The Element is data."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is data."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/device> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "device"@en ;
    rdfs:comment "The Element refers to a chipset, processor, or electronic board."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element refers to a chipset, processor, or electronic board."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/deviceDriver> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "deviceDriver"@en ;
    rdfs:comment "The Element represents software that controls hardware devices."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element represents software that controls hardware devices."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/diskImage> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "diskImage"@en ;
    rdfs:comment "The Element refers to a disk image that can be written to a disk, booted in a VM, etc. A disk image typically contains most or all of the components necessary to boot, such as bootloaders, kernels, firmware, userspace, etc."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element refers to a disk image that can be written to a disk, booted in a VM, etc. A disk image typically contains most or all of the components necessary to boot, such as bootloaders, kernels, firmware, userspace, etc."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/documentation> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "documentation"@en ;
    rdfs:comment "The Element is documentation."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is documentation."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/evidence> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "evidence"@en ;
    rdfs:comment "The Element is the evidence that a specification or requirement has been fulfilled."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is the evidence that a specification or requirement has been fulfilled."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/executable> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "executable"@en ;
    rdfs:comment "The Element is an Artifact that can be run on a computer."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is an Artifact that can be run on a computer."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/file> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "file"@en ;
    rdfs:comment "The Element is a single file which can be independently distributed (configuration file, statically linked binary, Kubernetes deployment, etc.)."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a single file which can be independently distributed (configuration file, statically linked binary, Kubernetes deployment, etc.)."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/filesystemImage> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "filesystemImage"@en ;
    rdfs:comment "The Element is a file system image that can be written to a disk (or virtual) partition."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a file system image that can be written to a disk (or virtual) partition."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/firmware> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "firmware"@en ;
    rdfs:comment "The Element provides low level control over a device's hardware."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element provides low level control over a device's hardware."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/framework> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "framework"@en ;
    rdfs:comment "The Element is a software framework."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a software framework."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/install> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "install"@en ;
    rdfs:comment "The Element is used to install software on disk."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is used to install software on disk."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/library> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "library"@en ;
    rdfs:comment "The Element is a software library."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a software library."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/manifest> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "manifest"@en ;
    rdfs:comment "The Element is a software manifest."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a software manifest."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/model> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "model"@en ;
    rdfs:comment "The Element is a machine learning or artificial intelligence model."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a machine learning or artificial intelligence model."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/module> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "module"@en ;
    rdfs:comment "The Element is a module of a piece of software."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a module of a piece of software."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/operatingSystem> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "operatingSystem"@en ;
    rdfs:comment "The Element is an operating system."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is an operating system."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/other> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "other"@en ;
    rdfs:comment "The Element doesn't fit into any of the other categories."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element doesn't fit into any of the other categories."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/patch> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "patch"@en ;
    rdfs:comment "The Element contains a set of changes to update, fix, or improve another Element."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element contains a set of changes to update, fix, or improve another Element."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/platform> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "platform"@en ;
    rdfs:comment "The Element represents a runtime environment."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element represents a runtime environment."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/requirement> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "requirement"@en ;
    rdfs:comment "The Element provides a requirement needed as input for another Element."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element provides a requirement needed as input for another Element."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/source> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "source"@en ;
    rdfs:comment "The Element is a single or a collection of source files."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a single or a collection of source files."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/specification> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "specification"@en ;
    rdfs:comment "The Element is a plan, guideline or strategy how to create, perform or analyze an application."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a plan, guideline or strategy how to create, perform or analyze an application."@en .

<https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/test> a owl:NamedIndividual,
        spdx-software:SoftwarePurpose ;
    rdfs:label "test"@en ;
    rdfs:comment "The Element is a test used to verify functionality on a software element."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "The Element is a test used to verify functionality on a software element."@en .

spdx-supplychain:AssemblyAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "AssemblyAction"@en ;
    rdfs:comment "AssemblyAction represents the event of creating a product by assembling individual components."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateAction ;
    skos:definition "AssemblyAction represents the event of creating a product by assembling individual components."@en ;
    skos:note "AssemblyAction refers to the process of constructing a product by putting together various components. These actions can vary depending on the purpose and requirements. In this context, the assembled product is typically designed to allow for disassembly."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:AssemblyProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "AssemblyProcess"@en ;
    rdfs:comment "The AssemblyProcess represents the process of creating a product by assembling a set of components, potentially in a way that allows for at disassembly (at least partially)."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateProcess ;
    skos:definition "The AssemblyProcess represents the process of creating a product by assembling a set of components, potentially in a way that allows for at disassembly (at least partially)."@en ;
    skos:note "The AssemblyProcess refers to the systematic method of putting together different components to create a finished product. The process of assembly is part of the manufacturing process used in industries such as automotive, electronics, aerospace, and consumer goods. Assembled products may be designed to be disassembled into components."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:BoundaryCrossingAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "BoundaryCrossingAction"@en ;
    rdfs:comment "An action of crossing a boundary is defined in this class."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "An action of crossing a boundary is defined in this class."@en ;
    skos:note "Boundary crossing occurs when an individual, object, or system moves between different defined areas, domains, or disciplines. It can apply to various fields, including education, psychology, business, logistics, and technology."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:BoundaryDefinitionAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "BoundaryDefinitionAction"@en ;
    rdfs:comment "The boundary definition is used to define boundaries."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Action ;
    skos:definition "The boundary definition is used to define boundaries."@en ;
    skos:note """Boundaries can be physical or abstract. This is the act of defining the boundaries.

Relationship:

For each BoundaryDefinitionAction there is one and only one /Core/Relationship class or subclass with the relationshipType of createdBy on the to and a /Core/Agent class or subclass on the from."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:DictionaryEntry ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-supplychain:boundaryParameter ] .

spdx-supplychain:BoundaryDefinitionProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "BoundaryDefinitionProcess"@en ;
    rdfs:comment "The Boundary Definition Process refers to the process class used to produce boundaries."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:DefinedProcess ;
    skos:definition "The Boundary Definition Process refers to the process class used to produce boundaries."@en ;
    skos:note "This is the process of defining boundaries for the creation of a region."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ChangeAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "ChangeAction"@en ;
    rdfs:comment "An actual change to a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:ModifyAction ;
    skos:definition "An actual change to a product."@en ;
    skos:note "A ChangeAction represents an alteration made to a product. Such alterations may include intentional adjustments or repairs. A repair is a corrective modification that restores a product to a functional or acceptable state following a defect, failure, or damage. Common examples of repairs are replacing worn components, correcting misalignments, sealing leaks, or reestablishing intended performance characteristics. Firmware updates performed are included, as they may correct software defects, or improve performance, or add new capabilities."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ChangeProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "ChangeProcess"@en ;
    rdfs:comment "A prescribed change to a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:ModifyProcess ;
    skos:definition "A prescribed change to a product."@en ;
    skos:note "A ChangeProcess is a planned process causing an intentional change to a product, such as an adjustment."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:DestroyAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "DestroyAction"@en ;
    rdfs:comment "The record of destruction is entered in this action."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Action ;
    skos:definition "The record of destruction is entered in this action."@en ;
    skos:note "The action of destroying an element is recorded as part of the DestroyAction. To destroy refers to the act of completely eliminating, or rendering something unusable or irretrievable."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Agent ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:destructionPerformedBy ] .

spdx-supplychain:DestroyProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "DestroyProcess"@en ;
    rdfs:comment "The destruction process is defined in this process."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:DefinedProcess ;
    skos:definition "The destruction process is defined in this process."@en ;
    skos:note "Destroyed means to render an item useless. The destroyed process defines the method used to destroy an item."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:HarvestAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "HarvestAction"@en ;
    rdfs:comment "HarvestAction represents the act of creating a product by directly extracting goods or materials from nature."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateAction ;
    skos:definition "HarvestAction represents the act of creating a product by directly extracting goods or materials from nature."@en ;
    skos:note "HarvestAction refers to an event where goods or products are obtained directly from natural sources. This includes activities such as mining, and fishing. In such cases, there may be no associated hasInput relationships, as the products are not assembled from other components but sourced directly."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:HarvestProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "HarvestProcess"@en ;
    rdfs:comment "Harvest is the process of extracting goods or products from nature."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateProcess ;
    skos:definition "Harvest is the process of extracting goods or products from nature."@en ;
    skos:note "Harvest is the process of extracting goods or products from nature. This includes mining, fishing and husbandry."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:InspectionAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "InspectionAction"@en ;
    rdfs:comment "An inspection action refers to a specific activity or set of activities performed during an inspection to examine, verify, or evaluate an item, process, or system."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "An inspection action refers to a specific activity or set of activities performed during an inspection to examine, verify, or evaluate an item, process, or system."@en ;
    skos:note "An inspection action refers to a specific activity or set of activities performed during an inspection to examine, verify, or evaluate an item, process, or system. These actions are typically intended to identify whether the subject being inspected meets required standards, regulations, or specifications."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:InspectionProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "InspectionProcess"@en ;
    rdfs:comment "Inspection Process defines specific various processes needed to satisfy the inspection requirements for a specific product or service."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseProcess ;
    skos:definition "Inspection Process defines specific various processes needed to satisfy the inspection requirements for a specific product or service."@en ;
    skos:note "Different types of products and services require different types of inspection processes. Your specific inspection process is defined in this process. You can define multiple inspection processes for goods based on requirements."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:plannedInspectionLocation ] .

spdx-supplychain:InstantiateVirtualHardwareProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "InstantiateVirtualHardwareProcess"@en ;
    rdfs:comment "Class that describes an InstantiateVirtualHardwareProcess that is used to define VirtualHardware and its source."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateProcess ;
    skos:definition "Class that describes an InstantiateVirtualHardwareProcess that is used to define VirtualHardware and its source."@en ;
    skos:note """InstantiateVirtualHardwareProcess is a class defining the process needed to
instantiate a 'VirtualHardware' defined by running software package(s)."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ManufactureAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "ManufactureAction"@en ;
    rdfs:comment "ManufactureAction represents the act of creating a product by a manufacturing process."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateAction ;
    skos:definition "ManufactureAction represents the act of creating a product by a manufacturing process."@en ;
    skos:note "ManufactureAction refers to an event where goods are created using materials or ingredients, typically resulting in a product that cannot be easily disassembled."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ManufactureProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "ManufactureProcess"@en ;
    rdfs:comment "This class represents the process involved in manufacturing products."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateProcess ;
    skos:definition "This class represents the process involved in manufacturing products."@en ;
    skos:note "The manufacturing process encompasses the series of steps required to transform materials into finished goods. It is a fundamental operation across various industries, including automotive, electronics, pharmaceuticals, textiles, and food production."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:PlanAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "PlanAction"@en ;
    rdfs:comment "A PlanAction involves the execution of a plan in relation to a PlanProcess."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "A PlanAction involves the execution of a plan in relation to a PlanProcess."@en ;
    skos:note """A PlanAction involves the execution of a plan in relation to a PlanProcess.

The description of the PlanAction is a mandatory property.

Relationship:

For each PlanAction there is at least one /Core/Relationship class or subclass with the relationshipType of 'generates’ on the to and a PlanProcess class or subclass on the from."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:PlanProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "PlanProcess"@en ;
    rdfs:comment "Process plans outline the stages of implementation or use related to a process."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseProcess ;
    skos:definition "Process plans outline the stages of implementation or use related to a process."@en ;
    skos:note "Complex processes require plans, therefore a process plan outlines procedures required to deliver a specified requirement."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ReproduceAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "ReproduceAction"@en ;
    rdfs:comment "Reproduction is the biological process by which organisms generate new individuals of the same species."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateAction ;
    skos:definition "Reproduction is the biological process by which organisms generate new individuals of the same species."@en ;
    skos:note """Reproduction involves the act of replicating or reproducing a product. This includes producing new products related to husbandry, agriculture, and fishing.

Relationship:

For each ReproduceAction there is at least one /Core/Relationship class or subclass with the relationshipType of 'hasInput’ on the from and a /Core/Element class or subclass on the to."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ReproduceProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "ReproduceProcess"@en ;
    rdfs:comment "Reproduction is the biological process by which living organisms produce offspring."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:CreateProcess ;
    skos:definition "Reproduction is the biological process by which living organisms produce offspring."@en ;
    skos:note """Reproduction is the biological process by which living organisms produce offspring.

It occurs in plants, animals, and microorganisms."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ResponsibilityChangeAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "ResponsibilityChangeAction"@en ;
    rdfs:comment "ResponsibilityChangeAction refers to the transfer of responsibility from one party to another."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Action ;
    skos:definition "ResponsibilityChangeAction refers to the transfer of responsibility from one party to another."@en ;
    skos:note """Changes of responsibility are recorded in this process. Responsibility Change refers to the transfer of rights, responsibilities, and/or control of an asset, property, business, or entity from one party to another. This change can occur in various contexts, including real estate, business acquisitions, intellectual property, and assets.

The startTime and endTime can be the same time."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Element ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:responsibilityChangedOn ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/SupplyChain/ResponsibilityType/ownership> <https://spdx.org/rdf/3/terms/SupplyChain/ResponsibilityType/custody> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-supplychain:responsibilityCategory ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:current ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:previous ] .

spdx-supplychain:ResponsibilityChangeProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "ResponsibilityChangeProcess"@en ;
    rdfs:comment "ResponsibilityChangeProcess refers to the process of transferring responsibility from one party to another."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:DefinedProcess ;
    skos:definition "ResponsibilityChangeProcess refers to the process of transferring responsibility from one party to another."@en ;
    skos:note "The process changes of responsibility are recorded in this process. Responsibility Change refers to the transfer of rights, responsibilities, and/or control of an asset, property, business, or entity from one party to another."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Element ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:plannedProductOfResponsibilityChange ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:plannedPrevious ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/SupplyChain/ResponsibilityType/ownership> <https://spdx.org/rdf/3/terms/SupplyChain/ResponsibilityType/custody> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-supplychain:responsibilityCategory ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:plannedCurrent ] .

<https://spdx.org/rdf/3/terms/SupplyChain/ResponsibilityType/custody> a owl:NamedIndividual,
        spdx-supplychain:ResponsibilityType ;
    rdfs:label "custody"@en ;
    rdfs:comment "Custody refers to the responsibility, control, and safekeeping of an asset, person, or legal entity. It involves both physical possession and legal authority over something or someone."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    skos:definition "Custody refers to the responsibility, control, and safekeeping of an asset, person, or legal entity. It involves both physical possession and legal authority over something or someone."@en .

<https://spdx.org/rdf/3/terms/SupplyChain/ResponsibilityType/ownership> a owl:NamedIndividual,
        spdx-supplychain:ResponsibilityType ;
    rdfs:label "ownership"@en ;
    rdfs:comment "Ownership refers to the legal right to control, manage, and benefit from an asset, resource, or responsibility. It establishes authority, accountability, and entitlements over something, whether it's property, a business, intellectual property, or responsibilities."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    skos:definition "Ownership refers to the legal right to control, manage, and benefit from an asset, resource, or responsibility. It establishes authority, accountability, and entitlements over something, whether it's property, a business, intellectual property, or responsibilities."@en .

spdx-supplychain:StateAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "StateAction"@en ;
    rdfs:comment "This is the state of an affected Element at a specific moment in time."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "This is the state of an affected Element at a specific moment in time."@en ;
    skos:note """The state of a specific Element is defined, measured or observed in this class at a specific moment in time.

The StateAction is defined by the method used by the DefinedStateProcess to
produce an outcome."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-supplychain:State ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:currentState ],
        [ sh:class spdx-supplychain:DefinedStateProcess ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:decisionProcess ] .

spdx-supplychain:StorageAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "StorageAction"@en ;
    rdfs:comment "Records the storage of a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:ModifyAction ;
    skos:definition "Records the storage of a product."@en ;
    skos:note "A StorageAction expresses the actual storage of product in a specific location."@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:StorageProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "StorageProcess"@en ;
    rdfs:comment "Prescribes the storage of a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:ModifyProcess ;
    skos:definition "Prescribes the storage of a product."@en ;
    skos:note "A StorageProcess expresses the planned storage of product in an optionally-specified location."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:plannedStorageLocation ] .

spdx-supplychain:TestAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "TestAction"@en ;
    rdfs:comment "A test action is a specific action associated with a test."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "A test action is a specific action associated with a test."@en ;
    skos:note """A test action is a specific action associated with a test.
The execution of a test is a test action."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:TestProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "TestProcess"@en ;
    rdfs:comment "Test Process defines the testing process for an element."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseProcess ;
    skos:definition "Test Process defines the testing process for an element."@en ;
    skos:note """Tests are processes based on requirements. The process's requirements are met by the test process.

Relationship:

For each TestProcess there is at least one /Core/Relationship class or subclass with the relationshipType of 'contains’ on the from and a Requirements class or subclass on the to."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:TransportAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "TransportAction"@en ;
    rdfs:comment "An actual change to a product's location."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:ModifyAction ;
    skos:definition "An actual change to a product's location."@en ;
    skos:note "A TransportAction expresses the change in location of a product, such as a component being moved from an assembly plant to a warehouse."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:dropoffLocation ],
        [ sh:class spdx-core:Location ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:pickupLocation ],
        [ sh:datatype xsd:string ;
            sh:path spdx-supplychain:transportRoute ] .

spdx-supplychain:TransportProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "TransportProcess"@en ;
    rdfs:comment "A prescribed change to a product's location."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:ModifyProcess ;
    skos:definition "A prescribed change to a product's location."@en ;
    skos:note "A TransportProcess is a process that will result in a change in location of a product, such as a component being moved from an assembly plant to a warehouse."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:forDropoffLocation ],
        [ sh:datatype xsd:string ;
            sh:path spdx-supplychain:plannedTransportRoute ],
        [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:forPickupLocation ] .

spdx-supplychain:responsibilityCategory a owl:ObjectProperty ;
    rdfs:label "responsibilityCategory"@en ;
    rdfs:comment "responsibilityCategory classifies the nature or domain of a responsibility transfer."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:range spdx-supplychain:ResponsibilityType ;
    skos:definition "responsibilityCategory classifies the nature or domain of a responsibility transfer."@en ;
    skos:note "This property categorizes responsibility changes based on the type of rights, responsibilities, or control being transferred."@en .

spdx-ai:EnergyConsumption a owl:Class,
        sh:NodeShape ;
    rdfs:label "EnergyConsumption"@en ;
    rdfs:comment """A class for describing the energy consumption incurred by an AI model in
different stages of its lifecycle."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition """A class for describing the energy consumption incurred by an AI model in
different stages of its lifecycle."""@en ;
    skos:note """A class to denote the known or estimated energy consumption of an AI model
during its training, fine-tuning, and inference stages.

*Example*

{
  "type": "ai_EnergyConsumption",
  "ai_trainingEnergyConsumption": [
    {
      "type": "ai_EnergyConsumptionDescription",
      "ai_energyQuantity": "36.5",
      "ai_energyUnit": "kilowattHour"
    }
  ],
  "ai_inferenceEnergyConsumption": [
    {
      "type": "ai_EnergyConsumptionDescription",
      "ai_energyQuantity": "0.042",
      "ai_energyUnit": "kilowattHour"
    }
  ]
}"""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:class spdx-ai:EnergyConsumptionDescription ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:trainingEnergyConsumption ],
        [ sh:class spdx-ai:EnergyConsumptionDescription ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:finetuningEnergyConsumption ],
        [ sh:class spdx-ai:EnergyConsumptionDescription ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-ai:inferenceEnergyConsumption ] .

spdx-core:AnnotationType a owl:Class ;
    rdfs:label "AnnotationType"@en ;
    rdfs:comment "Specifies the type of an annotation."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Specifies the type of an annotation."@en .

spdx-core:ElementMap a owl:Class,
        sh:NodeShape ;
    rdfs:label "ElementMap"@en ;
    rdfs:comment "A key with an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A key with an Element."@en ;
    skos:note """The class used for implementing mapping a string key to an Element.

Each ElementMap contains a key-value pair which maps the key to its
associated Element.

To implement a dictionary, this class is to be used in a collection with
unique keys."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:key ],
        [ sh:class spdx-core:Element ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:elementValue ] .

spdx-core:ExternalMap a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExternalMap"@en ;
    rdfs:comment """A map of Element identifiers that are used within an SpdxDocument but defined
external to that SpdxDocument."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition """A map of Element identifiers that are used within an SpdxDocument but defined
external to that SpdxDocument."""@en ;
    skos:note """An external map is a map of Element identifiers that are used within an
SpdxDocument but defined external to that SpdxDocument.
The external map provides details about the externally-defined Element
such as its provenance, where to retrieve it, and how to verify its integrity."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:class spdx-core:IntegrityMethod ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:verifiedUsing ],
        [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:externalSpdxId ],
        [ sh:class spdx-core:Artifact ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:definingArtifact ],
        [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:path spdx-core:locationHint ] .

spdx-core:ExternalRef a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExternalRef"@en ;
    rdfs:comment "A reference to a resource outside the scope of SPDX 3 content related to an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a resource outside the scope of SPDX 3 content related to an Element."@en ;
    skos:note """An External Reference points to a general resource outside the scope of the SPDX 3 content
that provides additional context, characteristics or related information about an Element."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:path spdx-core:locator ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:contentType ;
            sh:pattern "^[^\\/]+\\/[^\\/]+$" ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/ExternalRefType/altDownloadLocation> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/altWebPage> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/binaryArtifact> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/bom> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/bower> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/buildMeta> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/buildSystem> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/chat> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/certificationReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/componentAnalysisReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/cwe> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/documentation> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/dynamicAnalysisReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/eolNotice> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/exportControlAssessment> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/funding> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/issueTracker> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/mailingList> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/mavenCentral> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/metrics> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/npm> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/nuget> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/license> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/other> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/privacyAssessment> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/productMetadata> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/purchaseOrder> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/qualityAssessmentReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/releaseNotes> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/releaseHistory> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/riskAssessment> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/runtimeAnalysisReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/secureSoftwareAttestation> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityAdvisory> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityAdversaryModel> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityFix> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityOther> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityPenTestReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityPolicy> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/securityThreatModel> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/socialMedia> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/sourceArtifact> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/staticAnalysisReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/support> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/vcs> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/vulnerabilityDisclosureReport> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/vulnerabilityExploitabilityAssessment> <https://spdx.org/rdf/3/terms/Core/ExternalRefType/x509Cert> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:externalRefType ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:comment ] .

spdx-core:MeasureOfMass a owl:Class,
        sh:NodeShape ;
    rdfs:label "MeasureOfMass"@en ;
    rdfs:comment "The measure of mass refers to the quantity of matter in an object or substance."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:UnitOfMeasure ;
    skos:definition "The measure of mass refers to the quantity of matter in an object or substance."@en ;
    skos:note "The measure of mass refers to the quantity of matter in an object or substance. Mass is a fundamental property of matter and is typically measured in various units depending on the system of measurement being used."@en ;
    sh:nodeKind sh:BlankNodeOrIRI .

spdx-core:NamespaceMap a owl:Class,
        sh:NodeShape ;
    rdfs:label "NamespaceMap"@en ;
    rdfs:comment "A mapping between prefixes and namespace partial URIs."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A mapping between prefixes and namespace partial URIs."@en ;
    skos:note """A namespace map allows the creator of a collection of serializable Elements
to suggest shorter identifiers ("prefixes") for specific namespace portions
of Element IDs. This map is used in SPDX content serialization to provide
a more human-readable and smaller serialized representation of the Elements.

For details of how NamespaceMap content is to be serialized please refer to
the Model and serializations clause
and the various serialization format-specific files within the
spdx-3-model repository <https://github.com/spdx/spdx-3-model/tree/main/serialization>.

Namespace maps support a variety of relevant use cases such as:

1. An SPDX content producer wishing to provide clarity of their serialization
    of an SPDX 2.X simple style collection where all content is newly minted
    and a single prefix-namespace is used. The consumer of SPDX content wishes
    to preserve the name space mapping provided by such a producer.

    In this case, the consumer would record the namespace map prefixes in the
    NamespaceMap such that subsequent serializations could reproduce the
    prefixes / namespaces in the native serialization format.

2. An SPDX content producer wishing to maintain consistent prefix use and
    understanding across multiple different serialization formats of the
    produced content.

    For example, an SBOM producer wishes to share/publish the SBOM as JSON-LD
    and XML. The producer can specify the preferred prefix mappings in the
    native serialization format using information from a single NamespaceMap
    accessible local to the producer.

3. An SPDX content consumer/producer wishing to maintain consistent prefix use
    while round tripping from SPDX content received, deserialized,
    modified/extended in some way, and then reserialized in the same
    serialization form.

    In this case the prefix-namespace mappings utilized in the content are
    transformed from the original native namespace/prefix into the in memory
    NamespaceMap then transformed from the NamespaceMap back into the resultant
    serialization native namespace / prefix format."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:namespace ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:prefix ] .

<https://spdx.org/rdf/3/terms/Core/PresenceType/no> a owl:NamedIndividual,
        spdx-core:PresenceType ;
    rdfs:label "no"@en ;
    rdfs:comment "Indicates absence of the field."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Indicates absence of the field."@en .

<https://spdx.org/rdf/3/terms/Core/PresenceType/noAssertion> a owl:NamedIndividual,
        spdx-core:PresenceType ;
    rdfs:label "noAssertion"@en ;
    rdfs:comment "Makes no assertion about the field."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Makes no assertion about the field."@en .

<https://spdx.org/rdf/3/terms/Core/PresenceType/yes> a owl:NamedIndividual,
        spdx-core:PresenceType ;
    rdfs:label "yes"@en ;
    rdfs:comment "Indicates presence of the field."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Indicates presence of the field."@en .

spdx-core:SpdxDocument a owl:Class,
        sh:NodeShape ;
    rdfs:label "SpdxDocument"@en ;
    rdfs:comment "A collection of SPDX Elements that could potentially be serialized."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:ElementCollection ;
    skos:definition "A collection of SPDX Elements that could potentially be serialized."@en ;
    skos:note """The SpdxDocument provides a convenient way to express information about
collections of SPDX Elements that could potentially be serialized as complete
units (e.g., all in-scope SPDX data within a single JSON-LD file).

SpdxDocument is independent of any particular serialization format or instance.

Information we wish to preserve about a specific instance of serialization of
this SPDX content is NOT expressed using the SpdxDocument but rather using an
associated Artifact representing a particular instance of SPDX data physical
serialization.

Any instance of serialization of SPDX data shall not contain more than one
SpdxDocument element definition."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-simplelicensing:AnyLicenseInfo ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:dataLicense ],
        [ sh:class spdx-core:ExternalMap ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:import ],
        [ sh:class spdx-core:NamespaceMap ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:namespaceMap ] .

spdx-core:contentType a owl:DatatypeProperty ;
    rdfs:label "contentType"@en ;
    rdfs:comment "Provides information about the content type of an Element or a property."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Provides information about the content type of an Element or a property."@en ;
    skos:note """This field is a reasonable estimation of the content type of the Element or the
property, from a creator perspective.

Content type is intrinsic to the Element or the property, independent of how it
is being used."""@en .

spdx-extension:CdxPropertyEntry a owl:Class,
        sh:NodeShape ;
    rdfs:label "CdxPropertyEntry"@en ;
    rdfs:comment "A property name with an associated value."@en ;
    rdfs:isDefinedBy spdx-extension: ;
    skos:definition "A property name with an associated value."@en ;
    skos:note """Each CdxPropertyEntry contains a name-value pair which maps the name to its
associated value.

Unlike key-value stores, properties in CdxPropertiesExtension support duplicate
names, each potentially having different values.

This class can be used to implement CycloneDX compatible properties."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-extension:cdxPropName ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-extension:cdxPropValue ] .

spdx-extension:Extension a owl:Class,
        sh:NodeShape ;
    rdfs:label "Extension"@en ;
    rdfs:comment "A characterization of some aspect of an Element that is associated with the Element in a generalized fashion."@en ;
    rdfs:isDefinedBy spdx-extension: ;
    skos:definition "A characterization of some aspect of an Element that is associated with the Element in a generalized fashion."@en ;
    skos:note """An Extension is a characterization of some aspect of an Element that is associated with the Element in a generalized fashion.

Rather than being associated with a particular Element through the typical use of a purpose-specific object property an Extension is associated with the Element it characterizes using a single common generalized object property.

This approach serves multiple purposes:

1. Support profile-based extended characterization of Elements. Enables specification and expression of Element characterization extensions within any profile and namespace of SPDX without requiring changes to other profiles or namespaces and without requiring local subclassing of remote classes (which could inhibit ecosystem interoperability in some cases).

2. Support extension of SPDX by adopting individuals or communities with Element characterization details uniquely specialized to their particular context. Enables adopting individuals or communities to utilize SPDX expressive capabilities along with expressing more arcane Element characterization details specific to them and not appropriate for standardization across SPDX.

3. Support structured capture of expressive solutions for gaps in SPDX coverage from real-world use. Enables adopting individuals or communities to express Element characterization details they require that are not currently defined in SPDX but likely should be. Enables a practical pipeline that:

    - identifies gaps in SPDX that should be filled,
    - expresses solutions to those gaps in a way that allows the identifying adopters to use the extended solutions with SPDX and does not conflict with current SPDX,
    - can be clearly detected among the SPDX content exchange ecosystem,
    - provides a clear and structured definition of gap solution that can be used as submission for revision to SPDX standard"""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/Extension/Extension is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-extension:Extension ] ;
            sh:path rdf:type ] .

spdx-operations:Project a owl:Class,
        sh:NodeShape ;
    rdfs:label "Project"@en ;
    rdfs:comment "Temporary endeavor with a beginning and an end and that must be used to create a unique product, service or result."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    rdfs:subClassOf spdx-core:Bundle ;
    skos:definition "Temporary endeavor with a beginning and an end and that must be used to create a unique product, service or result."@en ;
    skos:note """Temporary endeavor with a beginning and an end and that must be used to create a unique product, service or result.

Based on the Project Management Body of Knowledge (PMBOK), 3rd edition.

startTime is the time at which a project starts or is planned to start.
endTime is the time at which a project ends or is planned to end."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-operations:projectOwner ],
        [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-operations:projectContract ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:endTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:Agent ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-operations:projectSponsor ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:startTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-operations:projectTitle ] .

spdx-security:ExploitCatalogType a owl:Class ;
    rdfs:label "ExploitCatalogType"@en ;
    rdfs:comment "Specifies the exploit catalog type."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "Specifies the exploit catalog type."@en .

spdx-security:VexFixedVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "VexFixedVulnAssessmentRelationship"@en ;
    rdfs:comment """Links a vulnerability and elements representing products (in the VEX sense) where
a fix has been applied and are no longer affected."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VexVulnAssessmentRelationship ;
    skos:definition """Links a vulnerability and elements representing products (in the VEX sense) where
a fix has been applied and are no longer affected."""@en ;
    skos:note """VexFixedVulnAssessmentRelationship links a vulnerability to a number of elements
representing VEX products where a vulnerability has been fixed and are no longer
affected. It represents the VEX fixed status.

*Constraints*

When linking elements using a VexFixedVulnAssessmentRelationship, the following
requirements shall be observed:

- Elements linked with a VulnVexFixedAssessmentRelationship are constrained to
  using the fixedIn relationship type.

*Example*

{
  "type": "security_VexFixedVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:vex-fixed-in-1",
  "relationshipType": "fixedIn",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.4",
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2021-03-09T11:04:53Z"
}"""@en ;
    sh:nodeKind sh:IRI .

spdx-security:VexNotAffectedVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "VexNotAffectedVulnAssessmentRelationship"@en ;
    rdfs:comment """Links a vulnerability and one or more elements designating the latter as products
not affected by the vulnerability."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VexVulnAssessmentRelationship ;
    skos:definition """Links a vulnerability and one or more elements designating the latter as products
not affected by the vulnerability."""@en ;
    skos:note """VexNotAffectedVulnAssessmentRelationship connects a vulnerability and a number
of elements designating them as products not affected by the vulnerability.
This relationship corresponds to the VEX not_affected status.

*Constraints*

When linking elements using a VexNotVulnAffectedAssessmentRelationship, the
following requirements shall be observed:

- Relating elements with a VexNotAffectedVulnAssessmentRelationship is
  restricted to the doesNotAffect relationship type.
- Both impactStatement and justificationType properties have a cardinality of
  0..1 making them optional. Nevertheless, to produce a valid VEX not_affected
  statement, one of them shall be defined. This is specified in the Minimum
  Elements for VEX.

*Example*

{
  "type": "security_VexNotAffectedVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:vex-not-affected-1",
  "relationshipType": "doesNotAffect",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.2",
  "security_justificationType": "componentNotPresent",
  "security_impactStatement": "Not using this vulnerable part of this library.",
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2021-03-09T11:04:53Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Security/VexJustificationType/componentNotPresent> <https://spdx.org/rdf/3/terms/Security/VexJustificationType/vulnerableCodeNotPresent> <https://spdx.org/rdf/3/terms/Security/VexJustificationType/vulnerableCodeCannotBeControlledByAdversary> <https://spdx.org/rdf/3/terms/Security/VexJustificationType/vulnerableCodeNotInExecutePath> <https://spdx.org/rdf/3/terms/Security/VexJustificationType/inlineMitigationsAlreadyExist> ) ;
            sh:maxCount 1 ;
            sh:path spdx-security:justificationType ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:impactStatementTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-security:impactStatement ] .

spdx-security:VexUnderInvestigationVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "VexUnderInvestigationVulnAssessmentRelationship"@en ;
    rdfs:comment """Designates elements as products where the impact of a vulnerability is being
investigated."""@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VexVulnAssessmentRelationship ;
    skos:definition """Designates elements as products where the impact of a vulnerability is being
investigated."""@en ;
    skos:note """VexUnderInvestigationVulnAssessmentRelationship links a vulnerability to a
number of products stating the vulnerability's impact on them is being
investigated. It represents the VEX under_investigation status.

*Constraints*

When linking elements using a VexUnderInvestigationVulnAssessmentRelationship
the following requirements shall be observed:

- Elements linked with a VexUnderInvestigationVulnAssessmentRelationship are
  constrained to using the underInvestigationFor relationship type.

*Example*

{
  "type": "security_VexUnderInvestigationVulnAssessmentRelationship",
  "spdxId": "urn:spdx.dev:vex-underInvestigation-1",
  "relationshipType": "underInvestigationFor",
  "from": "urn:spdx.dev:vuln-cve-2020-28498",
  "to": ["urn:product-acme-application-1.3"],
  "security_assessedElement": "urn:npm-elliptic-6.5.2",
  "suppliedBy": "urn:spdx.dev:agent-jane-doe",
  "security_publishedTime": "2021-03-09T11:04:53Z"
}"""@en ;
    sh:nodeKind sh:IRI .

spdx-security:score a owl:DatatypeProperty ;
    rdfs:label "score"@en ;
    rdfs:comment "Provides a numerical (0-10) representation of the severity of a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:decimal ;
    skos:definition "Provides a numerical (0-10) representation of the severity of a vulnerability."@en ;
    skos:note """The score provides information on the severity of a vulnerability per the
Common Vulnerability Scoring System as defined by
Forum of Incident Response and Security Teams <https://www.first.org/cvss/>."""@en .

spdx-security:vectorString a owl:DatatypeProperty ;
    rdfs:label "vectorString"@en ;
    rdfs:comment "Specifies the CVSS vector string for a vulnerability."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the CVSS vector string for a vulnerability."@en ;
    skos:note """Specifies any combination of the CVSS Base, Temporal, Threat, Environmental,
and/or Supplemental vector string values for a vulnerability.

Supports vectorStrings specified in all CVSS versions.

*Constraints*

String values for the vectorString range shall only include the abbreviated form
of metric names specified in CVSS specifications, e.g.
Common Vulnerability Scoring System Vector String <https://www.first.org/cvss/v4.0/specification-document#Vector-String>."""@en .

spdx-software:ContentIdentifierType a owl:Class ;
    rdfs:label "ContentIdentifierType"@en ;
    rdfs:comment "Specifies the type of a content identifier."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "Specifies the type of a content identifier."@en .

spdx-supplychain:OutOfSpecAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "OutOfSpecAction"@en ;
    rdfs:comment "An out of specification action is defined in this class."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "An out of specification action is defined in this class."@en ;
    skos:note "OutOfSpecAction refers to a situation where a product, material, environment, or process fails to meet the established standards or predefined specifications or exceeds specification parameters. Any result or condition that goes beyond these predefined parameters or thresholds is considered \"out of specification,\" indicating a non-conformance or deviation that must be investigated and addressed to maintain product quality and regulatory compliance. This term is often used in industries like manufacturing, pharmaceuticals, quality control, and regulatory compliance"@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ResolutionAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "ResolutionAction"@en ;
    rdfs:comment "Products out of specification require a resolution action. This is the action of resolution."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseAction ;
    skos:definition "Products out of specification require a resolution action. This is the action of resolution."@en ;
    skos:note """Products out of specification require a resolution action. This is the action of resolution.

Relationship:
For each ResolutionAction there is at least one /Core/Relationship class or subclass with the relationshipType of 'resolved’ on the from and an OutOfSpecAction class or subclass on the to."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:ResponsibilityType a owl:Class ;
    rdfs:label "ResponsibilityType"@en ;
    rdfs:comment "Specifies the type of responsibility held over an asset, property, or entity."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    skos:definition "Specifies the type of responsibility held over an asset, property, or entity."@en .

spdx-ai:EnergyUnitType a owl:Class ;
    rdfs:label "EnergyUnitType"@en ;
    rdfs:comment "Unit of energy consumption."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "Unit of energy consumption."@en .

spdx-core:Bundle a owl:Class,
        sh:NodeShape ;
    rdfs:label "Bundle"@en ;
    rdfs:comment "A collection of Elements that have a shared context."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:ElementCollection ;
    skos:definition "A collection of Elements that have a shared context."@en ;
    skos:note "A bundle is a collection of Elements that have a shared context."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:context ] .

spdx-core:ElementCollection a owl:Class,
        sh:NodeShape ;
    rdfs:label "ElementCollection"@en ;
    rdfs:comment "A collection of Elements, not necessarily with unifying context."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "A collection of Elements, not necessarily with unifying context."@en ;
    skos:note """An ElementCollection is a collection of Elements, not necessarily with unifying
context.

All ElementCollections shall conform to the Core profile even if the
Core profile is not specified in the profileConformance property.

If the profileConformance property is not provided, it shall be evaluated as
a list containing the "core" profile identifier.

The inclusion of a profile identifier within the profileConformance property
shall constitute a declaration that all constituent elements conform to the
restrictions specified by that profile.

*Constraints*

- If the ElementCollection has at least 1 element, it shall also have at least
  1 rootElement.
- The element shall not be of type SpdxDocument.
- The rootElement shall not be of type SpdxDocument."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/core> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/software> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/simpleLicensing> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/expandedLicensing> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/security> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/build> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/ai> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/dataset> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/extension> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/lite> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/hardware> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/supplyChain> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/operations> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/functionalSafety> <https://spdx.org/rdf/3/terms/Core/ProfileIdentifierType/service> ) ;
            sh:path spdx-core:profileConformance ],
        [ sh:class spdx-core:Element ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:rootElement ],
        [ sh:class spdx-core:Element ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:element ],
        [ sh:message "https://spdx.org/rdf/3/terms/Core/ElementCollection is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:ElementCollection ] ;
            sh:path rdf:type ] .

spdx-core:Hash a owl:Class,
        sh:NodeShape ;
    rdfs:label "Hash"@en ;
    rdfs:comment "A mathematically calculated representation of a grouping of data."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:IntegrityMethod ;
    skos:definition "A mathematically calculated representation of a grouping of data."@en ;
    skos:note """A hash is a grouping of characteristics unique to the result
of applying a mathematical algorithm
that maps data of arbitrary size to a bit string (the hash)
and is a one-way function, that is,
a function which is practically infeasible to invert.

This is commonly used for integrity checking of data.

Please note that different profiles may also provide additional methods for verifying the integrity of specific subclasses of Elements."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/adler32> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b256> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b384> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake2b512> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/blake3> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/crystalsDilithium> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/crystalsKyber> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/falcon> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md2> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md4> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md5> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/md6> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/other> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha1> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha224> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha256> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha384> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha512> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_224> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_256> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_384> <https://spdx.org/rdf/3/terms/Core/HashAlgorithm/sha3_512> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:algorithm ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:hashValue ] .

spdx-core:IndividualElement a owl:Class,
        sh:NodeShape ;
    rdfs:label "IndividualElement"@en ;
    rdfs:comment """A concrete subclass of Element used by Individuals in the
Core profile."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition """A concrete subclass of Element used by Individuals in the
Core profile."""@en ;
    skos:note """Individuals, such as NoneElement and NoAssertionElement, need to reference a
concrete subclass of Element.

This class provides the type used by the individuals defined in the Core profile."""@en ;
    sh:nodeKind sh:IRI .

spdx-core:RelationshipCompleteness a owl:Class ;
    rdfs:label "RelationshipCompleteness"@en ;
    rdfs:comment "Indicates whether a relationship is known to be complete, incomplete, or if no assertion is made with respect to relationship completeness."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Indicates whether a relationship is known to be complete, incomplete, or if no assertion is made with respect to relationship completeness."@en .

spdx-core:Role a owl:Class,
        sh:NodeShape ;
    rdfs:label "Role"@en ;
    rdfs:comment "A Role defines a specific position, function, or capacity that an entity may assume within any relevant context."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "A Role defines a specific position, function, or capacity that an entity may assume within any relevant context."@en ;
    skos:note "A Role defines a specific position, function, or capacity that an entity may assume within any relevant context. This context is intentionally broad and adaptable, capable of representing environments including, but not limited to, software builds, system architectures, project management structures, distribution channels, supply chain operations, lifecycle stages, or any other domain where entities perform specific functions. The Role class provides a structured mechanism to model these functional assignments independently of the entities themselves, allowing for reusable and standardized definitions of responsibilities and privileges across different SPDX documents and ecosystems."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:DefinedType ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:referenceSpecification ],
        [ sh:datatype xsd:string ;
            sh:path spdx-core:authorization ],
        [ sh:class spdx-core:Requirement ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:roleQualification ],
        [ sh:class spdx-core:Requirement ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:responsibility ] .

spdx-core:Tool a owl:Class,
        sh:NodeShape ;
    rdfs:label "Tool"@en ;
    rdfs:comment "An element of hardware and/or software utilized to carry out a particular function."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "An element of hardware and/or software utilized to carry out a particular function."@en ;
    skos:note "A Tool is an element of hardware and/or software utilized to carry out a particular function."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:version ] .

spdx-core:endTime a owl:DatatypeProperty ;
    rdfs:label "endTime"@en ;
    rdfs:comment """The point in time when an element or an action ends,
becomes no longer applicable, or becomes no longer valid."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition """The point in time when an element or an action ends,
becomes no longer applicable, or becomes no longer valid."""@en ;
    skos:note """A timestamp marking the conclusion of an action,
the ending of an element's relevance,
or the intended or unintended termination of either.

It encompasses the moment of completion or cessation of processes,
such as build finishes, service shutdowns, or system failures,
as well as the point in time when an element
or a relationship between elements becomes deprecated, expired,
terminated, or inactive."""@en .

spdx-core:startTime a owl:DatatypeProperty ;
    rdfs:label "startTime"@en ;
    rdfs:comment """The point in time when an element or an action starts,
becomes applicable, or becomes valid."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:dateTimeStamp ;
    skos:definition """The point in time when an element or an action starts,
becomes applicable, or becomes valid."""@en ;
    skos:note """A timestamp marking the commencement of an action,
the beginning of an element's relevance,
or the intended start of either.

It encompasses the moment of triggering processes,
such as build executions or service instantiations,
as well as the point in time when an element
or a relationship between elements becomes effective or active."""@en .

spdx-expandedlicensing:IndividualLicensingInfo a owl:Class,
        sh:NodeShape ;
    rdfs:label "IndividualLicensingInfo"@en ;
    rdfs:comment """A concrete subclass of AnyLicenseInfo used by Individuals in the
ExpandedLicensing profile."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition """A concrete subclass of AnyLicenseInfo used by Individuals in the
ExpandedLicensing profile."""@en ;
    skos:note """Individuals, such as NoneLicense and NoAssertionLicense, need to reference a
concrete subclass of AnyLicenseInfo.

This class provides the type used by the individuals."""@en ;
    sh:nodeKind sh:IRI .

spdx-functionalsafety:Assumption a owl:Class,
        sh:NodeShape ;
    rdfs:label "Assumption"@en ;
    rdfs:comment "A distinct unit representing a constraint associated with an item's use in a system."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "A distinct unit representing a constraint associated with an item's use in a system."@en ;
    skos:note """An assumption element is a distinct unit that defines a design constraint.
This constraint is imposed by the intended design, the requirement context, or the operational context.
It ensures the item operates correctly within a system context."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:path spdx-core:rationale ],
        [ sh:class spdx-core:ExternalIdentifier ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-functionalsafety:assumptionUID ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-functionalsafety:assumptionStatement ] .

spdx-functionalsafety:EvaluationResultType a owl:Class ;
    rdfs:label "EvaluationResultType"@en ;
    rdfs:comment "Specifies the outcome of an evaluation or verification process."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Specifies the outcome of an evaluation or verification process."@en .

spdx-hardware:VirtualHardwareModelType a owl:Class ;
    rdfs:label "VirtualHardwareModelType"@en ;
    rdfs:comment "Specifies the type of simulation model used to represent virtual hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    skos:definition "Specifies the type of simulation model used to represent virtual hardware."@en .

spdx-operations:ExportControlClassification a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExportControlClassification"@en ;
    rdfs:comment "Assessment of an Element for export control classification."@en ;
    rdfs:isDefinedBy spdx-operations: ;
    skos:definition "Assessment of an Element for export control classification."@en ;
    skos:note """Assessment of an Element for export control classification
according to the classification schema of one or multiple countries."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:positiveInteger ;
            sh:maxCount 1 ;
            sh:path spdx-operations:weight ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-operations:exportingCountry ;
            sh:pattern "^[A-Z]{3}$" ],
        [ sh:class spdx-core:Specification ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-operations:exportControlSpecification ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-operations:exportClassification ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:comment ] .

spdx-software:ContentIdentifier a owl:Class,
        sh:NodeShape ;
    rdfs:label "ContentIdentifier"@en ;
    rdfs:comment "A canonical, unique, immutable identifier."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:subClassOf spdx-core:IntegrityMethod ;
    skos:definition "A canonical, unique, immutable identifier."@en ;
    skos:note """A ContentIdentifier is a canonical, unique, immutable identifier of the content
of a software artifact, such as a package, a file, or a snippet.

It can be used for verifying its identity and integrity."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-software:contentIdentifierValue ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Software/ContentIdentifierType/gitoid> <https://spdx.org/rdf/3/terms/Software/ContentIdentifierType/swhid> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-software:contentIdentifierType ] .

spdx-software:File a owl:Class,
        sh:NodeShape ;
    rdfs:label "File"@en ;
    rdfs:comment "Refers to any object that stores content on a computer."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:subClassOf spdx-software:SoftwareArtifact ;
    skos:definition "Refers to any object that stores content on a computer."@en ;
    skos:note """Refers to any object that stores content on a computer.
The type of content can optionally be provided in the contentType property.

The fileKind property can be set to directory to indicate the file represents
a directory and all content stored in that directory.

The fileKind property can be set to symlink to indicate the file represents a link to another file or directory, it does not represent the file or directory referenced by the symlink."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Software/FileKindType/file> <https://spdx.org/rdf/3/terms/Software/FileKindType/directory> <https://spdx.org/rdf/3/terms/Software/FileKindType/symlink> ) ;
            sh:maxCount 1 ;
            sh:path spdx-software:fileKind ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:contentType ;
            sh:pattern "^[^\\/]+\\/[^\\/]+$" ] .

spdx-software:FileKindType a owl:Class ;
    rdfs:label "FileKindType"@en ;
    rdfs:comment "Enumeration of the different kinds of SPDX file."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "Enumeration of the different kinds of SPDX file."@en .

spdx-software:Package a owl:Class,
        sh:NodeShape ;
    rdfs:label "Package"@en ;
    rdfs:comment """Refers to any unit of content that can be associated with a distribution of
software."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:subClassOf spdx-software:SoftwareArtifact ;
    skos:definition """Refers to any unit of content that can be associated with a distribution of
software."""@en ;
    skos:note """A package refers to any unit of content that can be associated with a
distribution of software.

Typically, a package is composed of one or more files.

Any of the following non-limiting examples may be (but are not required to be)
represented in SPDX as a package:

- a tarball, zip file or other archive
- a directory or sub-directory
- a separately distributed piece of software which another Package or File uses
  or depends upon (e.g., a Python package, a Go module, ...)
- a container image, and/or each image layer within a container image
- a collection of one or more sub-packages
- a Git repository snapshot from a particular point in time

Note that some of these could be represented in SPDX as a file as well."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:path spdx-software:homePage ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-software:packageVersion ],
        [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:path spdx-software:packageUrl ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-software:sourceInfo ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:version ] .

spdx-supplychain:DefinedStateProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "DefinedStateProcess"@en ;
    rdfs:comment "This process is used to determine the state of an affected Element."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-supplychain:UseProcess ;
    skos:definition "This process is used to determine the state of an affected Element."@en ;
    skos:note """This process is used to determine the state of an affected Element.
The DefinedStateProcess is used to define a list of valid states of an affected Element.

A DefinedStateProcess may describe the steps or conditions required to move an entity from one state to another."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-supplychain:State ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-supplychain:validState ] .

spdx-ai:SafetyRiskAssessmentType a owl:Class ;
    rdfs:label "SafetyRiskAssessmentType"@en ;
    rdfs:comment "Safety risk level."@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition "Safety risk level."@en .

spdx-build:Build a owl:Class,
        sh:NodeShape ;
    rdfs:label "Build"@en ;
    rdfs:comment "Class that describes a build instance of software/artifacts."@en ;
    rdfs:isDefinedBy spdx-build: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "Class that describes a build instance of software/artifacts."@en ;
    skos:note """A build is a representation of the process in which a piece of software or
artifact is built. It encapsulates information related to a build process and
provides an element from which relationships can be created to describe the
build's inputs, outputs, and related entities (e.g. builders, identities,
etc.).

ExternalIdentifier of type "urlScheme" may be used to identify build logs.
In this case, the comment of the ExternalIdentifier shall be "LogReference".

Note that startTime and endTime are optional, and may be omitted to
simplify creating reproducible builds.

buildStartTime and buildEndTime are deprecated.
Migrate to startTime and endTime
buildStartTime and buildEndTime will be removed in a future release."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:path spdx-build:configSourceEntrypoint ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-build:buildId ],
        [ sh:datatype xsd:anyURI ;
            sh:path spdx-build:configSourceUri ],
        [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-build:buildType ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-build:environment ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:startTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-build:buildStartTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-build:buildEndTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-build:parameter ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:endTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:Hash ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-build:configSourceDigest ] .

spdx-core:ContactPointRelationshipType a owl:Class ;
    rdfs:label "ContactPointRelationshipType"@en ;
    rdfs:comment "Information about the type of contact point for ContactPointRelationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Information about the type of contact point for ContactPointRelationships."@en .

spdx-core:PositiveIntegerRange a owl:Class,
        sh:NodeShape ;
    rdfs:label "PositiveIntegerRange"@en ;
    rdfs:comment "A tuple of two positive integers that define a range."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A tuple of two positive integers that define a range."@en ;
    skos:note """PositiveIntegerRange is a tuple of two positive integers that define a range.
"beginIntegerRange" shall be less than or equal to "endIntegerRange"."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:positiveInteger ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:beginIntegerRange ],
        [ sh:datatype xsd:positiveInteger ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:endIntegerRange ] .

spdx-core:ProcessReadinessType a owl:Class ;
    rdfs:label "ProcessReadinessType"@en ;
    rdfs:comment "The ProcessReadinessType is defined by the enumeration."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The ProcessReadinessType is defined by the enumeration."@en .

spdx-core:SpdxOrganization a owl:NamedIndividual,
        spdx-core:Organization ;
    rdfs:comment "An Organization representing the SPDX Project."@en ;
    rdfs:isDefinedBy spdx-core: ;
    owl:sameAs <https://spdx.org/> ;
    skos:definition "An Organization representing the SPDX Project."@en ;
    spdx-core:creationInfo spdx:creationInfo_SpdxOrganization .

spdx-core:SpecificationType a owl:Class ;
    rdfs:label "SpecificationType"@en ;
    rdfs:comment "A specification type defines the nature of a specification."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A specification type defines the nature of a specification."@en .

spdx-core:UnitOfMeasure a owl:Class,
        sh:NodeShape ;
    rdfs:label "UnitOfMeasure"@en ;
    rdfs:comment """UnitOfMeasure specify information structures through industry standards for
Units of Measure, Quantity Kinds, Dimensions and Data Types."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition """UnitOfMeasure specify information structures through industry standards for
Units of Measure, Quantity Kinds, Dimensions and Data Types."""@en ;
    skos:note "The QUDT, or \"Quantity, Unit, Dimension and Type\" schema defines the base classes properties, and restrictions used for modeling physical quantities, units of measure, and their dimensions in various measurement systems."@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:unitQUDT ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:quantity ] .

spdx-core:rationale a owl:DatatypeProperty ;
    rdfs:label "rationale"@en ;
    rdfs:comment """A rationale is supporting information that provides the underlying
justification or reasoning for an associated element, decision, or process."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """A rationale is supporting information that provides the underlying
justification or reasoning for an associated element, decision, or process."""@en ;
    skos:note """A rationale is a detailed explanation that documents the logic and intent
behind a specific element, decision, or process.
It provides the justification for why an item exists or why a particular
conclusion was reached, often citing evidence, criteria, or analysis methods.

This context ensures transparency in the decision-making process by accounting
for the considerations, risks, or motivations that inform the primary
statement."""@en .

spdx-core:version a owl:DatatypeProperty ;
    rdfs:label "version"@en ;
    rdfs:comment "Version string for an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition "Version string for an Element."@en ;
    skos:note "Describes the specific version of an Element."@en .

spdx-functionalsafety:RequirementVerification a owl:Class,
        sh:NodeShape ;
    rdfs:label "RequirementVerification"@en ;
    rdfs:comment "RequirementVerification class defines the base properties of a verification."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "RequirementVerification class defines the base properties of a verification."@en ;
    skos:note """RequirementVerification class describes the method of verification.
With this class it is possible to identify verification items, such as testcases, checklists or analysis frameworks, etc. It allows to add information for the verification preconditions (what needs to be present before even starting a verification task, run the test case etc.) and what are the postconditions (what has to have happened, what is the state of the item under verification, to be confident the verification task is completed).

Verification typically checks if a requirement has been implemented or refined by more details correctly by a subsequent work product (like a technical specification needs to be verified if it correctly refines a functional specification, or that code correctly implements the state machine defined in a software component design requirement).

A rationale is supporting information that adds more context on how
verification needs to be performed, justifies the chosen verification method,
etc."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:ExternalIdentifier ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-functionalsafety:verificationUID ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/analysis> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/assessment> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/audit> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/demonstration> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/inspection> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/other> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/review> <https://spdx.org/rdf/3/terms/FunctionalSafety/VerificationType/test> ) ;
            sh:path spdx-functionalsafety:verificationMethod ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:rationale ],
        [ sh:datatype xsd:string ;
            sh:path spdx-functionalsafety:verificationPrecondition ],
        [ sh:datatype xsd:string ;
            sh:path spdx-functionalsafety:verificationPostcondition ] .

spdx-hardware:Dimensions a owl:Class,
        sh:NodeShape ;
    rdfs:label "Dimensions"@en ;
    rdfs:comment "Dimensions generally refer to measurable extents or attributes that define the size, shape, or scale of an object, system, or concept."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    skos:definition "Dimensions generally refer to measurable extents or attributes that define the size, shape, or scale of an object, system, or concept."@en ;
    skos:note "Dimensions generally refer to measurable extents or attributes that define the size, shape, or scale of an object, system, or concept. The Z axis is the height of the object."@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:class spdx-core:MeasureOfLength ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:zAxisLength ],
        [ sh:class spdx-core:MeasureOfLength ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:yAxisLength ],
        [ sh:class spdx-core:MeasureOfLength ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:xAxisLength ] .

spdx-security:SsvcDecisionType a owl:Class ;
    rdfs:label "SsvcDecisionType"@en ;
    rdfs:comment "Specifies the SSVC decision type."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "Specifies the SSVC decision type."@en .

spdx-service:AuthenticationProtocolType a owl:Class ;
    rdfs:label "AuthenticationProtocolType"@en ;
    rdfs:comment "Protocols which support authentication."@en ;
    rdfs:isDefinedBy spdx-service: ;
    skos:definition "Protocols which support authentication."@en .

spdx-software:SoftwareArtifact a owl:Class,
        sh:NodeShape ;
    rdfs:label "SoftwareArtifact"@en ;
    rdfs:comment "A distinct article or unit related to Software."@en ;
    rdfs:isDefinedBy spdx-software: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "A distinct article or unit related to Software."@en ;
    skos:note """A software artifact is a distinct article or unit related to software
such as a package, a file, or a snippet."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/Software/SoftwareArtifact is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-software:SoftwareArtifact ] ;
            sh:path rdf:type ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/application> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/archive> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/bom> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/configuration> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/container> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/data> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/device> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/diskImage> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/deviceDriver> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/documentation> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/evidence> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/executable> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/file> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/filesystemImage> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/firmware> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/framework> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/install> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/library> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/manifest> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/model> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/module> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/operatingSystem> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/other> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/patch> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/platform> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/requirement> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/source> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/specification> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/test> ) ;
            sh:path spdx-software:additionalPurpose ],
        [ sh:datatype xsd:string ;
            sh:path spdx-software:attributionText ],
        [ sh:datatype xsd:nonNegativeInteger ;
            sh:maxCount 1 ;
            sh:path spdx-software:artifactSize ],
        [ sh:datatype xsd:anyURI ;
            sh:maxCount 1 ;
            sh:path spdx-software:downloadLocation ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-software:copyrightText ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/application> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/archive> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/bom> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/configuration> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/container> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/data> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/device> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/diskImage> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/deviceDriver> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/documentation> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/evidence> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/executable> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/file> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/filesystemImage> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/firmware> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/framework> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/install> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/library> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/manifest> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/model> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/module> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/operatingSystem> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/other> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/patch> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/platform> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/requirement> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/source> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/specification> <https://spdx.org/rdf/3/terms/Software/SoftwarePurpose/test> ) ;
            sh:maxCount 1 ;
            sh:path spdx-software:primaryPurpose ],
        [ sh:class spdx-software:ContentIdentifier ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-software:contentIdentifier ] .

spdx-supplychain:ModifyAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "ModifyAction"@en ;
    rdfs:comment "An actual alteration of a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Action ;
    skos:definition "An actual alteration of a product."@en ;
    skos:note """A ModifyAction is an action that alters a product, such as a change to its configuration or its location.

Relationship:

For each ModifyAction there is at least one /Core/Relationship class or subclass with the relationshipType of hasOutput on the from and a /Core/Element subclass on the to.

For each ModifyAction there is at least one /Core/Relationship class or subclass with the relationshipType of performedBy on the from and a /Core/Element subclass on the to."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SupplyChain/ModifyAction is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-supplychain:ModifyAction ] ;
            sh:path rdf:type ] .

spdx-supplychain:ModifyProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "ModifyProcess"@en ;
    rdfs:comment "A prescribed alteration of a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:DefinedProcess ;
    skos:definition "A prescribed alteration of a product."@en ;
    skos:note """A ModifyProcess is a process that will result in the alteration of a product, such as a change to its configuration or its location.

Relationship:

For each ModifyProcess there is at least one /Core/Relationship class or subclass with the relationshipType of 'hasOutput’ on the from and a /Core/Element subclass on the to.

For each ModifyProcess there is at least one /Core/Relationship class or subclass with the relationshipType of 'hasInput’ on the from and a /Core/Element subclass on the to."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SupplyChain/ModifyProcess is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-supplychain:ModifyProcess ] ;
            sh:path rdf:type ] .

spdx-core:PresenceType a owl:Class ;
    rdfs:label "PresenceType"@en ;
    rdfs:comment "Categories of presence or absence."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Categories of presence or absence."@en .

spdx-core:RequirementStatusType a owl:Class ;
    rdfs:label "RequirementStatusType"@en ;
    rdfs:comment "Provide an enumerated set of requirement statuses that can provide state to a requirement."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Provide an enumerated set of requirement statuses that can provide state to a requirement."@en .

spdx-core:comment a owl:DatatypeProperty ;
    rdfs:label "comment"@en ;
    rdfs:comment """Provide consumers with comments by the creator of the Element about the
Element."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range xsd:string ;
    skos:definition """Provide consumers with comments by the creator of the Element about the
Element."""@en ;
    skos:note """A comment is an optional field for creators of the Element to provide comments
to the readers/reviewers of the document."""@en .

spdx-dataset:ConfidentialityLevelType a owl:Class ;
    rdfs:label "ConfidentialityLevelType"@en ;
    rdfs:comment "Confidentiality level."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Confidentiality level."@en .

spdx-dataset:DatasetAvailabilityType a owl:Class ;
    rdfs:label "DatasetAvailabilityType"@en ;
    rdfs:comment "Availability of dataset."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Availability of dataset."@en .

spdx-expandedlicensing:ExtendableLicense a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExtendableLicense"@en ;
    rdfs:comment "Abstract class representing a License or an OrLaterOperator."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-simplelicensing:AnyLicenseInfo ;
    skos:definition "Abstract class representing a License or an OrLaterOperator."@en ;
    skos:note """The WithAdditionOperator can have a License or an OrLaterOperator as the
license property value. This class is used for the value."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/ExpandedLicensing/ExtendableLicense is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-expandedlicensing:ExtendableLicense ] ;
            sh:path rdf:type ] .

spdx-expandedlicensing:License a owl:Class,
        sh:NodeShape ;
    rdfs:label "License"@en ;
    rdfs:comment "Abstract class for the portion of an AnyLicenseInfo representing a license."@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-expandedlicensing:ExtendableLicense ;
    skos:definition "Abstract class for the portion of an AnyLicenseInfo representing a license."@en ;
    skos:note """A License represents a license text, whether listed on the
SPDX License List <https://spdx.org/licenses/>
(ListedLicense) or defined by an SPDX data creator (CustomLicense)."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:obsoletedBy ],
        [ sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:isDeprecatedLicenseId ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:standardLicenseHeader ],
        [ sh:datatype xsd:anyURI ;
            sh:path spdx-expandedlicensing:seeAlso ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:licenseXml ],
        [ sh:message "https://spdx.org/rdf/3/terms/ExpandedLicensing/License is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-expandedlicensing:License ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-simplelicensing:licenseText ],
        [ sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:isOsiApproved ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:standardLicenseTemplate ],
        [ sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:isFsfLibre ] .

spdx-expandedlicensing:LicenseAddition a owl:Class,
        sh:NodeShape ;
    rdfs:label "LicenseAddition"@en ;
    rdfs:comment """Abstract class for additional text intended to be added to a License, but
which is not itself a standalone License."""@en ;
    rdfs:isDefinedBy spdx-expandedlicensing: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition """Abstract class for additional text intended to be added to a License, but
which is not itself a standalone License."""@en ;
    skos:note """A LicenseAddition represents text which is intended to be added to a License
as additional text, but which is not itself intended to be a standalone
License.

It may be an exception which is listed on the
SPDX License Exceptions <https://spdx.org/licenses/exceptions-index.html>
(ListedLicenseException), or may be any other additional text (as an exception
or otherwise) which is defined by an SPDX data creator (CustomLicenseAddition)."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:isDeprecatedAdditionId ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:licenseXml ],
        [ sh:datatype xsd:anyURI ;
            sh:path spdx-expandedlicensing:seeAlso ],
        [ sh:message "https://spdx.org/rdf/3/terms/ExpandedLicensing/LicenseAddition is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-expandedlicensing:LicenseAddition ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-expandedlicensing:additionText ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:standardAdditionTemplate ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-expandedlicensing:obsoletedBy ] .

spdx-extension: vann:preferredNamespacePrefix "spdx-extension" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Extension/" .

spdx-functionalsafety:EvidenceType a owl:Class ;
    rdfs:label "EvidenceType"@en ;
    rdfs:comment "EvidenceType refers to categories of documented or observable proof used to verify compliance, qualification, or performance"@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "EvidenceType refers to categories of documented or observable proof used to verify compliance, qualification, or performance"@en .

spdx-hardware:Hardware a owl:Class,
        sh:NodeShape ;
    rdfs:label "Hardware"@en ;
    rdfs:comment "Class that describes an instance of Hardware."@en ;
    rdfs:isDefinedBy spdx-hardware: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "Class that describes an instance of Hardware."@en ;
    skos:note "A hardware artifact is a distinct unit related to hardware."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Specification ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-hardware:additionalInformationSpecification ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-hardware:batchNumber ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:version ],
        [ sh:class spdx-core:DefinedType ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:hazard ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-hardware:productAgent ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:additionalInformation ],
        [ sh:message "https://spdx.org/rdf/3/terms/Hardware/Hardware is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-hardware:Hardware ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-hardware:releaseDate ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-hardware:serialNumber ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-hardware:partNumber ],
        [ sh:class spdx-core:DefinedType ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-hardware:category ] .

spdx-security:CvssSeverityType a owl:Class ;
    rdfs:label "CvssSeverityType"@en ;
    rdfs:comment "Specifies the CVSS base, temporal, threat, or environmental severity type."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "Specifies the CVSS base, temporal, threat, or environmental severity type."@en .

spdx-security:VexJustificationType a owl:Class ;
    rdfs:label "VexJustificationType"@en ;
    rdfs:comment "Specifies the VEX justification type."@en ;
    rdfs:isDefinedBy spdx-security: ;
    skos:definition "Specifies the VEX justification type."@en .

spdx-security:VexVulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "VexVulnAssessmentRelationship"@en ;
    rdfs:comment "Abstract ancestor class for all VEX relationships."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-security:VulnAssessmentRelationship ;
    skos:definition "Abstract ancestor class for all VEX relationships."@en ;
    skos:note """VexVulnAssessmentRelationship is an abstract subclass that defined the common
properties shared by all the SPDX-VEX status relationships.

*Constraints*

When linking elements using a VexVulnAssessmentRelationship, the following
requirements shall be observed:

- The to: end shall point to elements representing the VEX *products*.

To specify a different element where the vulnerability was detected, the VEX
relationship can optionally specify *subcomponents* using the assessedElement
property.

VEX inherits information from the document level down to its statements. When a
statement is missing information it can be completed by reading the equivalent
field from the containing document. For example, if a VEX relationship is
missing data in its createdBy property, tools shall consider the entity
listed in the CreationInfo section of the document as the VEX author.
In the same way, when a VEX relationship does not have a created property,
the document's date shall be considered as authoritative."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/Security/VexVulnAssessmentRelationship is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-security:VexVulnAssessmentRelationship ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-security:statusNotes ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-security:vexVersion ] .

spdx-supplychain:CreateAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "CreateAction"@en ;
    rdfs:comment "CreationAction represents an event of product creation."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Action ;
    skos:definition "CreationAction represents an event of product creation."@en ;
    skos:note """CreationAction represents the lifecycle event of Product creation. A product could be manufactured, assembled, mined/extracted directly from the nature etc.

Relationship:

For each CreateAction there is at least one /Core/Relationship class or subclass with the relationshipType of 'hasOutput’ on the from and a /Core/Element class or subclass on the to."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SupplyChain/CreateAction is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-supplychain:CreateAction ] ;
            sh:path rdf:type ] .

spdx-supplychain:State a owl:Class,
        sh:NodeShape ;
    rdfs:label "State"@en ;
    rdfs:comment "A state is an instance that describes what a system, component, subsystem, process, or project has achieved at any given time."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "A state is an instance that describes what a system, component, subsystem, process, or project has achieved at any given time."@en ;
    skos:note """A state is an instance that describes what a system, component, subsystem, process, or project has achieved at any given time. States are used to describe different conditions within a system and provide information about its current status. They help us understand the behavior of systems or product by showing their progression through various states over time.

States describe what a project has achieved (or not) as opposed to describing actions taken by people involved with the project, or activities performed during development of that project."""@en ;
    sh:nodeKind sh:IRI .

spdx-supplychain:UseProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "UseProcess"@en ;
    rdfs:comment "Use Process defines actions used by elements."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:DefinedProcess ;
    skos:definition "Use Process defines actions used by elements."@en ;
    skos:note """The UseProcess is an abstract class used to define processes that interact with key elements. Plan, state, and inspection processes plus managing boundaries are critical processes used by elements.

Relationship:

For each UseProcess or subclass except the PlanProcess there is at least one /Core/Relationship class or subclass with the relationshipType of 'affects’ on the from and a /Core/Element class or subclass on the to."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SupplyChain/UseProcess is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-supplychain:UseProcess ] ;
            sh:path rdf:type ] .

spdx-ai:EnergyConsumptionDescription a owl:Class,
        sh:NodeShape ;
    rdfs:label "EnergyConsumptionDescription"@en ;
    rdfs:comment """The class that helps note down the quantity of energy consumption and the unit
used for measurement."""@en ;
    rdfs:isDefinedBy spdx-ai: ;
    skos:definition """The class that helps note down the quantity of energy consumption and the unit
used for measurement."""@en ;
    skos:note """This class is designed to store energy consumption data, including the quantity
and the unit of measurement.

The energyQuantity property stores the amount of energy consumed,
and the energyUnit property stores the unit used for measurement.

For example, 0.042 kilowatt-hour of energy will have 0.042 as a value for
property energyQuantity, and "kilowattHour" as a value for property
energyUnit.

*Example*

{
  "type": "ai_EnergyConsumptionDescription",
  "ai_energyQuantity": "0.042",
  "ai_energyUnit": "kilowattHour"
}"""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/AI/EnergyUnitType/kilowattHour> <https://spdx.org/rdf/3/terms/AI/EnergyUnitType/megajoule> <https://spdx.org/rdf/3/terms/AI/EnergyUnitType/other> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-ai:energyUnit ],
        [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-ai:energyQuantity ] .

spdx-core:IntegrityMethod a owl:Class,
        sh:NodeShape ;
    rdfs:label "IntegrityMethod"@en ;
    rdfs:comment "Provides an independently reproducible mechanism that permits verification of a specific Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Provides an independently reproducible mechanism that permits verification of a specific Element."@en ;
    skos:note """An IntegrityMethod provides an independently reproducible mechanism that permits verification
of a specific Element that correlates to the data in this SPDX document. This identifier enables
a recipient to determine if anything in the original Element has been changed and eliminates
confusion over which version or modification of a specific Element is referenced.

Please note that different profiles may also provide additional methods for verifying the integrity of specific subclasses of Elements."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/Core/IntegrityMethod is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:IntegrityMethod ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:comment ] .

spdx-core:MeasureOfLength a owl:Class,
        sh:NodeShape ;
    rdfs:label "MeasureOfLength"@en ;
    rdfs:comment "The measure of length refers to the dimension of an object or space that describes how long it is, typically expressed in various units depending on the system of measurement being used."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:UnitOfMeasure ;
    skos:definition "The measure of length refers to the dimension of an object or space that describes how long it is, typically expressed in various units depending on the system of measurement being used."@en ;
    skos:note "The measure of length refers to the dimension of an object or space that describes how long it is, typically expressed in various units depending on the system of measurement being used."@en ;
    sh:nodeKind sh:BlankNodeOrIRI .

spdx-software:SbomType a owl:Class ;
    rdfs:label "SbomType"@en ;
    rdfs:comment """Provides a set of values to be used to describe the common types of SBOMs that
tools may create."""@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition """Provides a set of values to be used to describe the common types of SBOMs that
tools may create."""@en .

spdx-supplychain:CreateProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "CreateProcess"@en ;
    rdfs:comment "The CreateProcess refers to the abstract process class that can be used to represent the process of creation of a product."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:DefinedProcess ;
    skos:definition "The CreateProcess refers to the abstract process class that can be used to represent the process of creation of a product."@en ;
    skos:note """The creation process refers to the systematic steps involved in bringing something new into existence. This can apply to products, ideas, businesses, art, software, and even life itself.

Relationship:

For every CreateProcess, there exists at least one /Core/Relationship
class or subclass with a relationshipType of 'hasOutput',
connecting the CreateProcess (from)
to a /Core/Element class or subclass (to)."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SupplyChain/CreateProcess is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-supplychain:CreateProcess ] ;
            sh:path rdf:type ] .

spdx-core:CreationInfo a owl:Class,
        sh:NodeShape ;
    rdfs:label "CreationInfo"@en ;
    rdfs:comment "Provides information about the creation of the Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Provides information about the creation of the Element."@en ;
    skos:note """The CreationInfo provides information about who created the Element, and when
and how it was created.

The dateTime created is often the date of last change
(e.g., a git commit date), not the date when the SPDX data was created, as
doing so supports reproducible builds."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:comment ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:created ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:Agent ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:createdBy ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:specVersion ;
            sh:pattern "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))?$" ],
        [ sh:class spdx-core:Tool ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:createdUsing ] .

spdx-core:DefinedType a owl:Class,
        sh:NodeShape ;
    rdfs:label "DefinedType"@en ;
    rdfs:comment "The DefinedType class associates a specific type with its defined source."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The DefinedType class associates a specific type with its defined source."@en ;
    skos:note """The DefinedType class associates a specific type with its defined source.
It provides a structured way to represent defined types, holds information about the type's identity and the source specification that defines its structure and semantics."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:class spdx-core:Specification ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:definitionSource ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:typeFromSource ] .

spdx-core:IsoAutomationLevel a owl:Class ;
    rdfs:label "IsoAutomationLevel"@en ;
    rdfs:comment "Defines the level of automation a system possesses."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Defines the level of automation a system possesses."@en .

spdx-core:SupportType a owl:Class ;
    rdfs:label "SupportType"@en ;
    rdfs:comment "Type of support that is associated with an artifact."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Type of support that is associated with an artifact."@en .

spdx-service: vann:preferredNamespacePrefix "spdx-service" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Service/" .

spdx-simplelicensing: vann:preferredNamespacePrefix "spdx-simplelicensing" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/SimpleLicensing/" .

spdx-core:Relationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "Relationship"@en ;
    rdfs:comment "Describes a relationship between one or more elements."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "Describes a relationship between one or more elements."@en ;
    skos:note """A Relationship is a grouping of characteristics unique to an assertion
that one Element is related to one or more other Elements in some way.

To explicitly assert that no such relationships exist, the to property
shall contain the NoneElement individual and no other elements.

A relationship that contains NoneElement and additional elements in the to
property is not valid.

To explicitly assert that no assertions are being made regarding the
existence of such relationships, the to property shall contain the
NoAssertionElement individual."""@en ;
    sh:nodeKind sh:IRI ;
    sh:or ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/invokedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ;
                sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/assumes> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-functionalsafety:Assumption ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDynamicLink> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasHost> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ;
                sh:property [ sh:class spdx-build:Build ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/performedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:Action ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/implementedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Requirement ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/tracedToDetail> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Requirement ;
                        sh:path spdx-core:from ],
                    [ sh:class spdx-core:Requirement ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/locatedAt> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Location ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/usesTool> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/serializedInArtifact> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Artifact ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:SpdxDocument ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasProvidedDependency> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/reportedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasRoleIn> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:RoleRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasSpecification> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAssociatedVulnerability> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Artifact ;
                        sh:path spdx-core:from ],
                    [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/providesSupportFor> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:SupportRelationship ;
                sh:property [ sh:class spdx-core:Artifact ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasContactPoint> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:ContactPointRelationship ;
                sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:Artifact ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/publishedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasInput> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:or ( [ sh:class spdx-build:Build ] [ sh:class spdx-core:DefinedProcess ] [ sh:class spdx-core:Action ] ) ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/configures> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/runsOn> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ;
                sh:property [ sh:class spdx-hardware:Hardware ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDeclaredLicense> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Artifact ;
                        sh:path spdx-core:from ],
                    [ sh:class spdx-simplelicensing:AnyLicenseInfo ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/foundBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/verifiedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-functionalsafety:RequirementVerification ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:Requirement ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAssessmentFor> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-security:VulnAssessmentRelationship ;
                sh:property [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOptionalDependency> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/coordinatedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/underInvestigationFor> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-security:VexUnderInvestigationVulnAssessmentRelationship ;
                sh:property [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOutput> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:or ( [ sh:class spdx-build:Build ] [ sh:class spdx-core:DefinedProcess ] [ sh:class spdx-core:Action ] ) ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/fixedIn> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-security:VexFixedVulnAssessmentRelationship ;
                sh:property [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasTest> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/fixedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasStaticLink> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/doesNotAffect> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-security:VexNotAffectedVulnAssessmentRelationship ;
                sh:property [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/createdBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:or ( [ sh:class spdx-core:Action ] [ sh:class spdx-core:DefinedProcess ] ) ;
                        sh:path spdx-core:from ],
                    [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasResolution> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-supplychain:ResolutionAction ;
                        sh:path spdx-core:from ],
                    [ sh:class spdx-supplychain:OutOfSpecAction ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/exploitCreatedBy> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-security:Vulnerability ;
                        sh:path spdx-core:from ],
                    [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasConcludedLicense> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:class spdx-simplelicensing:AnyLicenseInfo ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:Artifact ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/conformsTo> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:or ( [ sh:class spdx-functionalsafety:Assumption ] [ sh:class spdx-core:Specification ] ) ;
                        sh:path spdx-core:to ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/delegatedTo> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ;
                sh:property [ sh:class spdx-core:Relationship ;
                        sh:path spdx-core:to ],
                    [ sh:class spdx-core:Agent ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasPrerequisite> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasRequirement> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/affects> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:property [ sh:or ( [ sh:class spdx-security:Vulnerability ] [ sh:class spdx-core:Action ] [ sh:class spdx-core:DefinedProcess ] ) ;
                        sh:path spdx-core:from ] ] ),
        ( [ sh:not [ sh:property [ sh:hasValue <https://spdx.org/rdf/3/terms/Core/RelationshipType/dependsOn> ;
                                sh:path spdx-core:relationshipType ] ] ] [ sh:class spdx-core:LifecycleScopedRelationship ] ) ;
    sh:property [ sh:class spdx-core:Element ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:to ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:endTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/RelationshipType/affects> <https://spdx.org/rdf/3/terms/Core/RelationshipType/amendedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/ancestorOf> <https://spdx.org/rdf/3/terms/Core/RelationshipType/assumes> <https://spdx.org/rdf/3/terms/Core/RelationshipType/availableFrom> <https://spdx.org/rdf/3/terms/Core/RelationshipType/configures> <https://spdx.org/rdf/3/terms/Core/RelationshipType/conformsTo> <https://spdx.org/rdf/3/terms/Core/RelationshipType/contains> <https://spdx.org/rdf/3/terms/Core/RelationshipType/coordinatedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/copiedTo> <https://spdx.org/rdf/3/terms/Core/RelationshipType/createdBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/delegatedTo> <https://spdx.org/rdf/3/terms/Core/RelationshipType/dependsOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/descendantOf> <https://spdx.org/rdf/3/terms/Core/RelationshipType/describes> <https://spdx.org/rdf/3/terms/Core/RelationshipType/doesNotAffect> <https://spdx.org/rdf/3/terms/Core/RelationshipType/evaluatedOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/expandsTo> <https://spdx.org/rdf/3/terms/Core/RelationshipType/exploitCreatedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/finetunedOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/fixedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/fixedIn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/follows> <https://spdx.org/rdf/3/terms/Core/RelationshipType/foundBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/generates> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAddedFile> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAssessmentFor> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasAssociatedVulnerability> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasConcludedLicense> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasContactPoint> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDataFile> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDeclaredLicense> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDeletedFile> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDependencyManifest> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDistributionArtifact> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDocumentation> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasDynamicLink> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasEvidence> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasExample> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasHost> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasInput> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasMetadata> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOptionalComponent> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOptionalDependency> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasOutput> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasPrerequisite> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasProvidedDependency> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasRequirement> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasResolution> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasRoleIn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasSpecification> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasStaticLink> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasTest> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasTestCase> <https://spdx.org/rdf/3/terms/Core/RelationshipType/hasVariant> <https://spdx.org/rdf/3/terms/Core/RelationshipType/implementedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/invokedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/locatedAt> <https://spdx.org/rdf/3/terms/Core/RelationshipType/modifiedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/other> <https://spdx.org/rdf/3/terms/Core/RelationshipType/packagedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/patchedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/performedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/pretrainedOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/providesSupportFor> <https://spdx.org/rdf/3/terms/Core/RelationshipType/publishedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/reportedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/republishedBy> <https://spdx.org/rdf/3/terms/Core/RelationshipType/resolved> <https://spdx.org/rdf/3/terms/Core/RelationshipType/runsOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/serializedInArtifact> <https://spdx.org/rdf/3/terms/Core/RelationshipType/testedOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/tracedToDetail> <https://spdx.org/rdf/3/terms/Core/RelationshipType/trainedOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/underInvestigationFor> <https://spdx.org/rdf/3/terms/Core/RelationshipType/usesTool> <https://spdx.org/rdf/3/terms/Core/RelationshipType/validatedOn> <https://spdx.org/rdf/3/terms/Core/RelationshipType/verifiedBy> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:relationshipType ],
        [ sh:class spdx-core:Element ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:from ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:startTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/RelationshipCompleteness/incomplete> <https://spdx.org/rdf/3/terms/Core/RelationshipCompleteness/complete> <https://spdx.org/rdf/3/terms/Core/RelationshipCompleteness/noAssertion> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:completeness ] .

spdx-functionalsafety:VerificationType a owl:Class ;
    rdfs:label "VerificationType"@en ;
    rdfs:comment "Enumeration of verification types."@en ;
    rdfs:isDefinedBy spdx-functionalsafety: ;
    skos:definition "Enumeration of verification types."@en .

spdx-security:VulnAssessmentRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "VulnAssessmentRelationship"@en ;
    rdfs:comment "Abstract ancestor class for all vulnerability assessments."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-core:Relationship ;
    skos:definition "Abstract ancestor class for all vulnerability assessments."@en ;
    skos:note """VulnAssessmentRelationship is the ancestor class common to all vulnerability
assessment relationships. It factors out the common properties shared by them."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:class spdx-core:Artifact ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-security:assessedElement ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:withdrawnTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:modifiedTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:publishedTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:suppliedBy ],
        [ sh:message "https://spdx.org/rdf/3/terms/Security/VulnAssessmentRelationship is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-security:VulnAssessmentRelationship ] ;
            sh:path rdf:type ] .

spdx-supplychain:UseAction a owl:Class,
        sh:NodeShape ;
    rdfs:label "UseAction"@en ;
    rdfs:comment "The action of product use."@en ;
    rdfs:isDefinedBy spdx-supplychain: ;
    rdfs:subClassOf spdx-core:Action ;
    skos:definition "The action of product use."@en ;
    skos:note """This is the specific action of product use.

Relationship:

For each UseAction there is at least one /Core/Relationship class or subclass with the relationshipType of 'performedBy’ on the from and a /Core/Agent class or subclass on the to.

For each UseAction there is at least one /Core/Relationship class or subclass with the relationshipType of 'affects’ on the from and a /Core/Element class or subclass on the to."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SupplyChain/UseAction is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-supplychain:UseAction ] ;
            sh:path rdf:type ] .

spdx-build: vann:preferredNamespacePrefix "spdx-build" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Build/" .

spdx-core:LifecycleScopeType a owl:Class ;
    rdfs:label "LifecycleScopeType"@en ;
    rdfs:comment "Provide an enumerated set of lifecycle phases that can provide context to relationships."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Provide an enumerated set of lifecycle phases that can provide context to relationships."@en .

spdx-core:Requirement a owl:Class,
        sh:NodeShape ;
    rdfs:label "Requirement"@en ;
    rdfs:comment "A distinct unit representing a requirement, as used in systems, software, and hardware engineering."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "A distinct unit representing a requirement, as used in systems, software, and hardware engineering."@en ;
    skos:note """A requirement element is a distinct unit that defines an expectation, need, behavior, or design intent of an item that either already exists or is to be created in accordance with this requirement.

A rationale is an additional detail used to define the reason or
justification for the existence of the requirement.
The rationale is usually less formal than the wording of the
requirement statement itself."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:requirementStatement ],
        [ sh:datatype xsd:string ;
            sh:path spdx-core:rationale ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/design> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/development> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/build> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/test> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/runtime> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/decommission> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/update> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/other> ) ;
            sh:path spdx-core:devLifecycleStage ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/RequirementStatusType/draft> <https://spdx.org/rdf/3/terms/Core/RequirementStatusType/reviewable> <https://spdx.org/rdf/3/terms/Core/RequirementStatusType/active> <https://spdx.org/rdf/3/terms/Core/RequirementStatusType/retired> <https://spdx.org/rdf/3/terms/Core/RequirementStatusType/backlog> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:requirementStatus ],
        [ sh:class spdx-core:ExternalIdentifier ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:requirementUID ] .

spdx-core:ExternalIdentifier a owl:Class,
        sh:NodeShape ;
    rdfs:label "ExternalIdentifier"@en ;
    rdfs:comment "A reference to a resource identifier defined outside the scope of SPDX 3 content that uniquely identifies an Element."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A reference to a resource identifier defined outside the scope of SPDX 3 content that uniquely identifies an Element."@en ;
    skos:note """An ExternalIdentifier is a reference to a resource outside the scope of SPDX 3 content
that provides a unique key within an established domain that can uniquely identify an Element."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:anyURI ;
            sh:path spdx-core:identifierLocator ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ark> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/bic> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/cpe22> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/cpe23> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/cve> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/doi> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/duns> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ecli> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/eli> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/email> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/eori> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/evidenceUID> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/gitoid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/gln> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/glue> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/gtin> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/hsCodes> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/iban> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ibid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ibrn> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isan> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isbn> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/iscc> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isci> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isil> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/ismn> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isni> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/isrc> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/issn> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/iswc> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/lei> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/lexid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/nli> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/orcidid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/other> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/packageUrl> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/phoneNumber> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/requirementUID> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/rorid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/securityOther> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/swhid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/swid> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/urlScheme> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/vatNumber> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/verificationUID> <https://spdx.org/rdf/3/terms/Core/ExternalIdentifierType/webpage> ) ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:externalIdentifierType ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:comment ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:issuingAuthority ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:identifier ] .

spdx-core:Specification a owl:Class,
        sh:NodeShape ;
    rdfs:label "Specification"@en ;
    rdfs:comment """A specification is a detailed description of the design, requirements,
or features of a product, process, or system."""@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition """A specification is a detailed description of the design, requirements,
or features of a product, process, or system."""@en ;
    skos:note """A specification (spec) is a detailed document that outlines the
design, requirements, or features for a product, process, or system.

Requirements, standards, specifications and processes
can be referenced in this class."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/SpecificationType/formalStandard> <https://spdx.org/rdf/3/terms/Core/SpecificationType/regulation> <https://spdx.org/rdf/3/terms/Core/SpecificationType/specification> <https://spdx.org/rdf/3/terms/Core/SpecificationType/other> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:specType ] .

spdx-core:DefinedProcess a owl:Class,
        sh:NodeShape ;
    rdfs:label "DefinedProcess"@en ;
    rdfs:comment "Class that describes a process."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "Class that describes a process."@en ;
    skos:note "Processes are composed of systematic task(s) required to achieve a goal."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/Core/DefinedProcess is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:DefinedProcess ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:rationale ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:version ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/draft> <https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/active> <https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/obsoleted> <https://spdx.org/rdf/3/terms/Core/ProcessReadinessType/other> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:processReadiness ] .

spdx-core:Action a owl:Class,
        sh:NodeShape ;
    rdfs:label "Action"@en ;
    rdfs:comment "Class that describes an action that has occurred."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "Class that describes an action that has occurred."@en ;
    skos:note """Action defines an event that has occurred. This is an Abstract Action.

startTime is the time at which an action starts or triggered.
endTime is the time at which an action stops or finishes."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:startTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:DictionaryEntry ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:additionalInformation ],
        [ sh:message "https://spdx.org/rdf/3/terms/Core/Action is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:Action ] ;
            sh:path rdf:type ],
        [ sh:class spdx-core:Location ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:actionLocation ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:endTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ] .

spdx-security:Vulnerability a owl:Class,
        sh:NodeShape ;
    rdfs:label "Vulnerability"@en ;
    rdfs:comment "Specifies a vulnerability and its associated information."@en ;
    rdfs:isDefinedBy spdx-security: ;
    rdfs:subClassOf spdx-core:Artifact ;
    skos:definition "Specifies a vulnerability and its associated information."@en ;
    skos:note """Specifies a vulnerability and its associated information.

*Example*

{
  "type": "security_Vulnerability",
  "spdxId": "urn:spdx.dev:vuln-1",
  "summary": "Use of a Broken or Risky Cryptographic Algorithm",
  "description": "The package elliptic before version 6.5.4 are vulnerable to ...",
  "security_modifiedTime": "2021-03-08T16:06:43Z",
  "security_publishedTime": "2021-03-08T16:02:50Z",
  "externalIdentifier": [
    {
      "type": "ExternalIdentifier",
      "externalIdentifierType": "cve",
      "identifier": "CVE-2020-28498",
      "identifierLocator": [
        "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-28498",
        "https://www.cve.org/CVERecord?id=CVE-2020-28498"
      ],
      "issuingAuthority": "urn:spdx.dev:agent-cve.org"
    },
    {
      "type": "ExternalIdentifier",
      "externalIdentifierType": "securityOther",
      "identifier": "GHSA-r9p9-mrjm-926w",
      "identifierLocator": [
        "https://github.com/advisories/GHSA-r9p9-mrjm-926w"
      ]
    },
    {
      "type": "ExternalIdentifier",
      "externalIdentifierType": "securityOther",
      "identifier": "SNYK-JS-ELLIPTIC-1064899",
      "identifierLocator": [
        "https://security.snyk.io/vuln/SNYK-JS-ELLIPTIC-1064899"
      ]
    }
  ],
  "externalRef": [
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": [
        "https://nvd.nist.gov/vuln/detail/CVE-2020-28498"
      ]
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityAdvisory",
      "locator": [
        "https://ubuntu.com/security/CVE-2020-28498"
      ]
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityOther",
      "locator": [
        "https://github.com/indutny/elliptic/pull/244/commits"
      ]
    },
    {
      "type": "ExternalRef",
      "externalRefType": "securityOther",
      "locator": [
        "https://github.com/christianlundkvist/blog/2020_05_26_secp256k1_twist_attacks.md"
      ]
    }
  ]
},
{
  "type": "Relationship",
  "spdxId": "urn:spdx.dev:vulnRelationship-1",
  "relationshipType": "hasAssociatedVulnerability",
  "from": "urn:npm-elliptic-6.5.2",
  "to": [
    "urn:spdx.dev:vuln-1"
  ],
  "startTime": "2021-03-08T16:06:50Z"
},
{
  "type": "Relationship",
  "spdxId": "urn:spdx.dev:vulnAgentRel-1",
  "relationshipType": "publishedBy",
  "from": "urn:spdx.dev:vuln-1",
  "to": [
    "urn:spdx.dev:agent-snyk"
  ],
  "startTime": "2021-03-08T16:06:50Z"
}"""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:publishedTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:modifiedTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-security:withdrawnTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ] .

spdx-dataset:DatasetType a owl:Class ;
    rdfs:label "DatasetType"@en ;
    rdfs:comment "Enumeration of dataset types."@en ;
    rdfs:isDefinedBy spdx-dataset: ;
    skos:definition "Enumeration of dataset types."@en .

spdx-simplelicensing:AnyLicenseInfo a owl:Class,
        sh:NodeShape ;
    rdfs:label "AnyLicenseInfo"@en ;
    rdfs:comment "Abstract class representing a license combination consisting of one or more licenses."@en ;
    rdfs:isDefinedBy spdx-simplelicensing: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "Abstract class representing a license combination consisting of one or more licenses."@en ;
    skos:note """AnyLicenseInfo is
an abstract class representing a license combination consisting of one or more
licenses (optionally including additional text), which may be combined
according to the
SPDX license expression syntax.

An AnyLicenseInfo is used by licensing properties of software artifacts.

It can be:

- a NoneLicense;
- a NoAssertionLicense;
- a single license (either on the
  SPDX License List <https://spdx.org/licenses/> or
  a custom-defined license);
- a single license with an "or later" operator applied;
- the foregoing with additional text applied; or
- a set of licenses combined by applying "AND" and "OR" operators recursively."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/SimpleLicensing/AnyLicenseInfo is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-simplelicensing:AnyLicenseInfo ] ;
            sh:path rdf:type ] .

spdx-core:LifecycleScopedRelationship a owl:Class,
        sh:NodeShape ;
    rdfs:label "LifecycleScopedRelationship"@en ;
    rdfs:comment "Provide context for a relationship that occurs in the lifecycle."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Relationship ;
    skos:definition "Provide context for a relationship that occurs in the lifecycle."@en ;
    skos:note "Certain relationships are sensitive to where they occur in the lifecycle.  This parameter lets us avoid a proliferation of relationships, by parameterizing this context information for a relationship."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:in ( <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/design> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/development> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/build> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/test> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/runtime> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/decommission> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/update> <https://spdx.org/rdf/3/terms/Core/LifecycleScopeType/other> ) ;
            sh:maxCount 1 ;
            sh:path spdx-core:scope ] .

spdx-core:ProfileIdentifierType a owl:Class ;
    rdfs:label "ProfileIdentifierType"@en ;
    rdfs:comment "Enumeration of valid profile identifiers."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Enumeration of valid profile identifiers."@en .

spdx-operations: vann:preferredNamespacePrefix "spdx-operations" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Operations/" .

spdx-core:Location a owl:Class,
        sh:NodeShape ;
    rdfs:label "Location"@en ;
    rdfs:comment "Location is used to define the location, address or coordinates of a place."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "Location is used to define the location, address or coordinates of a place."@en ;
    skos:note "Location is used to define the location, address or coordinates of a place.  Location data may include latitude and longitude (for geographical locations), IP addresses for network locations, MAC addresses for computer networks, or other identifiers that specify where something exists within a system. There is often a need to provide context about where each one is located in relation to other things around it (e.g., which city, country)."@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:message "https://spdx.org/rdf/3/terms/Core/Location is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:Location ] ;
            sh:path rdf:type ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:locationTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ] .

spdx-core:Artifact a owl:Class,
        sh:NodeShape ;
    rdfs:label "Artifact"@en ;
    rdfs:comment "A distinct article or unit within the domain."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "A distinct article or unit within the domain."@en ;
    skos:note """An artifact is a distinct article or unit within the domain,
such as an electronic file, a software package, a software service, a device or an element of data."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:path spdx-core:standardName ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:intendedUse ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:releaseTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:builtTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:Agent ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:suppliedBy ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:path spdx-core:validUntilTime ;
            sh:pattern "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]|23:59:60)Z$" ],
        [ sh:class spdx-core:Agent ;
            sh:nodeKind sh:IRI ;
            sh:path spdx-core:originatedBy ],
        [ sh:message "https://spdx.org/rdf/3/terms/Core/Artifact is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:Artifact ] ;
            sh:path rdf:type ],
        [ sh:in ( <https://spdx.org/rdf/3/terms/Core/SupportType/development> <https://spdx.org/rdf/3/terms/Core/SupportType/support> <https://spdx.org/rdf/3/terms/Core/SupportType/deployed> <https://spdx.org/rdf/3/terms/Core/SupportType/limitedSupport> <https://spdx.org/rdf/3/terms/Core/SupportType/endOfSupport> <https://spdx.org/rdf/3/terms/Core/SupportType/noSupport> <https://spdx.org/rdf/3/terms/Core/SupportType/noAssertion> ) ;
            sh:path spdx-core:supportLevel ] .

spdx-core:DictionaryEntry a owl:Class,
        sh:NodeShape ;
    rdfs:label "DictionaryEntry"@en ;
    rdfs:comment "A key with an associated value."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A key with an associated value."@en ;
    skos:note """The class used for implementing a generic string mapping (also known as
associative array, dictionary, or hash map) in SPDX.

Each DictionaryEntry contains a key-value pair which maps the key to its
associated value.

To implement a dictionary, this class is to be used in a collection with
unique keys."""@en ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path spdx-core:key ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:value ] .

spdx-core:HashAlgorithm a owl:Class ;
    rdfs:label "HashAlgorithm"@en ;
    rdfs:comment "A mathematical algorithm that maps data of arbitrary size to a bit string."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "A mathematical algorithm that maps data of arbitrary size to a bit string."@en .

spdx-core:to a owl:ObjectProperty ;
    rdfs:label "to"@en ;
    rdfs:comment "References an Element on the right-hand side of a relationship."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Element ;
    skos:definition "References an Element on the right-hand side of a relationship."@en ;
    skos:note """This field references an Element on the right-hand side of a relationship.

If it is not provided, it indicates that there are no known relationships of
the given type."""@en .

spdx-core:from a owl:ObjectProperty ;
    rdfs:label "from"@en ;
    rdfs:comment "References the Element on the left-hand side of a relationship."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:Element ;
    skos:definition "References the Element on the left-hand side of a relationship."@en ;
    skos:note "This field references the Element on the left-hand side of a relationship."@en .

spdx-hardware: vann:preferredNamespacePrefix "spdx-hardware" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Hardware/" .

spdx-expandedlicensing: vann:preferredNamespacePrefix "spdx-expandedlicensing" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/ExpandedLicensing/" .

spdx-software:SoftwarePurpose a owl:Class ;
    rdfs:label "SoftwarePurpose"@en ;
    rdfs:comment "Provides information about the primary purpose of an Element."@en ;
    rdfs:isDefinedBy spdx-software: ;
    skos:definition "Provides information about the primary purpose of an Element."@en .

spdx-ai: vann:preferredNamespacePrefix "spdx-ai" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/AI/" .

spdx-functionalsafety: vann:preferredNamespacePrefix "spdx-functionalsafety" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/FunctionalSafety/" .

spdx-core:Element a owl:Class,
        sh:NodeShape ;
    rdfs:label "Element"@en ;
    rdfs:comment "Base domain class from which all other SPDX 3 domain classes derive."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Base domain class from which all other SPDX 3 domain classes derive."@en ;
    skos:note """An Element is a representation of a fundamental concept either directly inherent
to the Bill of Materials (BOM) domain or indirectly related to the BOM domain
and necessary for contextually characterizing BOM concepts and relationships.

Within SPDX 3 structure this is the base class acting as a consistent,
unifying, and interoperable foundation for all explicit
and inter-relatable content objects."""@en ;
    sh:nodeKind sh:IRI ;
    sh:property [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:comment ],
        [ sh:message "Class is known to not derive from Extension and cannot be used"@en ;
            sh:not [ sh:or ( [ sh:class spdx-software:ContentIdentifier ] [ sh:class spdx-software:Snippet ] [ sh:class spdx-software:Sbom ] [ sh:class spdx-software:Package ] [ sh:class spdx-software:File ] [ sh:class spdx-simplelicensing:SimpleLicensingText ] [ sh:class spdx-simplelicensing:LicenseExpression ] [ sh:class spdx-functionalsafety:EvidenceRelationship ] [ sh:class spdx-functionalsafety:EvaluationResult ] [ sh:class spdx-functionalsafety:Assumption ] [ sh:class spdx-functionalsafety:RequirementVerification ] [ sh:class spdx-expandedlicensing:CustomLicenseAddition ] [ sh:class spdx-expandedlicensing:CustomLicense ] [ sh:class spdx-expandedlicensing:WithAdditionOperator ] [ sh:class spdx-expandedlicensing:ListedLicense ] [ sh:class spdx-expandedlicensing:DisjunctiveLicenseSet ] [ sh:class spdx-expandedlicensing:ListedLicenseException ] [ sh:class spdx-expandedlicensing:ConjunctiveLicenseSet ] [ sh:class spdx-expandedlicensing:IndividualLicensingInfo ] [ sh:class spdx-expandedlicensing:OrLaterOperator ] [ sh:class spdx-core:ExternalMap ] [ sh:class spdx-core:SoftwareAgent ] [ sh:class spdx-core:Hash ] [ sh:class spdx-core:Person ] [ sh:class spdx-core:PackageVerificationCode ] [ sh:class spdx-core:PhysicalLocation ] [ sh:class spdx-core:Agent ] [ sh:class spdx-core:MeasureOfMass ] [ sh:class spdx-core:ExternalIdentifier ] [ sh:class spdx-core:Regulation ] [ sh:class spdx-core:SpdxDocument ] [ sh:class spdx-core:LifecycleScopedRelationship ] [ sh:class spdx-core:Specification ] [ sh:class spdx-core:Bom ] [ sh:class spdx-core:DictionaryEntry ] [ sh:class spdx-core:IndividualElement ] [ sh:class spdx-core:SupportRelationship ] [ sh:class spdx-core:ElementMap ] [ sh:class spdx-core:Relationship ] [ sh:class spdx-core:Requirement ] [ sh:class spdx-core:Role ] [ sh:class spdx-core:ContactPointRelationship ] [ sh:class spdx-core:PositiveIntegerRange ] [ sh:class spdx-core:RoleRelationship ] [ sh:class spdx-core:UnitOfMeasure ] [ sh:class spdx-core:MeasureOfLength ] [ sh:class spdx-core:Bundle ] [ sh:class spdx-core:Annotation ] [ sh:class spdx-core:Organization ] [ sh:class spdx-core:DefinedType ] [ sh:class spdx-core:NamespaceMap ] [ sh:class spdx-core:ExternalRef ] [ sh:class spdx-core:Tool ] [ sh:class spdx-core:CreationInfo ] [ sh:class spdx-operations:Project ] [ sh:class spdx-operations:ExportControlClassificationAssessment ] [ sh:class spdx-operations:ExportControlClassification ] [ sh:class spdx-supplychain:StorageAction ] [ sh:class spdx-supplychain:DefinedStateProcess ] [ sh:class spdx-supplychain:ManufactureAction ] [ sh:class spdx-supplychain:BoundaryDefinitionAction ] [ sh:class spdx-supplychain:TestProcess ] [ sh:class spdx-supplychain:BoundaryCrossingAction ] [ sh:class spdx-supplychain:TransportAction ] [ sh:class spdx-supplychain:ReproduceAction ] [ sh:class spdx-supplychain:ResolutionAction ] [ sh:class spdx-supplychain:State ] [ sh:class spdx-supplychain:StateAction ] [ sh:class spdx-supplychain:DestroyAction ] [ sh:class spdx-supplychain:AssemblyProcess ] [ sh:class spdx-supplychain:BoundaryDefinitionProcess ] [ sh:class spdx-supplychain:ResponsibilityChangeAction ] [ sh:class spdx-supplychain:AssemblyAction ] [ sh:class spdx-supplychain:ChangeAction ] [ sh:class spdx-supplychain:ReproduceProcess ] [ sh:class spdx-supplychain:PlanAction ] [ sh:class spdx-supplychain:TransportProcess ] [ sh:class spdx-supplychain:HarvestProcess ] [ sh:class spdx-supplychain:DestroyProcess ] [ sh:class spdx-supplychain:InstantiateVirtualHardwareProcess ] [ sh:class spdx-supplychain:HarvestAction ] [ sh:class spdx-supplychain:TestAction ] [ sh:class spdx-supplychain:InspectionProcess ] [ sh:class spdx-supplychain:InspectionAction ] [ sh:class spdx-supplychain:ManufactureProcess ] [ sh:class spdx-supplychain:ResponsibilityChangeProcess ] [ sh:class spdx-supplychain:ChangeProcess ] [ sh:class spdx-supplychain:PlanProcess ] [ sh:class spdx-supplychain:OutOfSpecAction ] [ sh:class spdx-supplychain:StorageProcess ] [ sh:class spdx-dataset:DatasetPackage ] [ sh:class spdx-service:SoftwareService ] [ sh:class spdx-hardware:BulkHardware ] [ sh:class spdx-hardware:VirtualHardware ] [ sh:class spdx-hardware:Dimensions ] [ sh:class spdx-hardware:ProductSpecification ] [ sh:class spdx-hardware:PhysicalHardware ] [ sh:class spdx-security:VexNotAffectedVulnAssessmentRelationship ] [ sh:class spdx-security:VexFixedVulnAssessmentRelationship ] [ sh:class spdx-security:CvssV2VulnAssessmentRelationship ] [ sh:class spdx-security:Vulnerability ] [ sh:class spdx-security:SsvcVulnAssessmentRelationship ] [ sh:class spdx-security:VexAffectedVulnAssessmentRelationship ] [ sh:class spdx-security:CvssV3VulnAssessmentRelationship ] [ sh:class spdx-security:CvssV4VulnAssessmentRelationship ] [ sh:class spdx-security:EpssVulnAssessmentRelationship ] [ sh:class spdx-security:VexUnderInvestigationVulnAssessmentRelationship ] [ sh:class spdx-security:ExploitCatalogVulnAssessmentRelationship ] [ sh:class spdx-ai:EnergyConsumptionDescription ] [ sh:class spdx-ai:EnergyConsumption ] [ sh:class spdx-ai:AIPackage ] [ sh:class spdx-extension:CdxPropertyEntry ] [ sh:class spdx-build:Build ] ) ] ;
            sh:path spdx-core:extension ],
        [ sh:class spdx-core:ExternalRef ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:externalRef ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:name ],
        [ sh:class spdx-core:IntegrityMethod ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:verifiedUsing ],
        [ sh:class spdx-core:ExternalIdentifier ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:externalIdentifier ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:description ],
        [ sh:message "https://spdx.org/rdf/3/terms/Core/Element is abstract and must not be instantiated directly."@en ;
            sh:not [ sh:hasValue spdx-core:Element ] ;
            sh:path rdf:type ],
        [ sh:class spdx-core:CreationInfo ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:creationInfo ],
        [ sh:nodeKind sh:BlankNodeOrIRI ;
            sh:path spdx-core:extension ],
        [ sh:datatype xsd:string ;
            sh:maxCount 1 ;
            sh:path spdx-core:summary ] .

spdx-dataset: vann:preferredNamespacePrefix "spdx-dataset" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Dataset/" .

spdx-core:Agent a owl:Class,
        sh:NodeShape ;
    rdfs:label "Agent"@en ;
    rdfs:comment "Agent represents anything with the potential to act on a system."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:subClassOf spdx-core:Element ;
    skos:definition "Agent represents anything with the potential to act on a system."@en ;
    skos:note """The Agent class represents anything that has the potential to act on a system.

This could be a person, organization, software agent, etc.

This is not to be confused with tools that are used to perform tasks."""@en ;
    sh:nodeKind sh:IRI .

spdx-core:relationshipType a owl:ObjectProperty ;
    rdfs:label "relationshipType"@en ;
    rdfs:comment "Information about the relationship between two Elements."@en ;
    rdfs:isDefinedBy spdx-core: ;
    rdfs:range spdx-core:RelationshipType ;
    skos:definition "Information about the relationship between two Elements."@en ;
    skos:note """This field provides information about the relationship between two Elements.

For example, you can represent a relationship between two different Files,
between a Package and a File, between two Packages, or between one SpdxDocument
and another SpdxDocument."""@en .

spdx-core:ExternalIdentifierType a owl:Class ;
    rdfs:label "ExternalIdentifierType"@en ;
    rdfs:comment "Specifies the type of an external identifier."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Specifies the type of an external identifier."@en .

spdx-core:ExternalRefType a owl:Class ;
    rdfs:label "ExternalRefType"@en ;
    rdfs:comment "The type of external reference."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "The type of external reference."@en .

spdx-security: vann:preferredNamespacePrefix "spdx-security" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Security/" .

spdx-supplychain: vann:preferredNamespacePrefix "spdx-supplychain" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/SupplyChain/" .

spdx-software: vann:preferredNamespacePrefix "spdx-software" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Software/" .

spdx-core:RelationshipType a owl:Class ;
    rdfs:label "RelationshipType"@en ;
    rdfs:comment "Information about the relationship between two Elements."@en ;
    rdfs:isDefinedBy spdx-core: ;
    skos:definition "Information about the relationship between two Elements."@en .

spdx-core: vann:preferredNamespacePrefix "spdx-core" ;
    vann:preferredNamespaceUri "https://spdx.org/rdf/3/terms/Core/" .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-security:VexNotAffectedVulnAssessmentRelationship spdx-security:VexFixedVulnAssessmentRelationship spdx-security:VexAffectedVulnAssessmentRelationship spdx-security:VexUnderInvestigationVulnAssessmentRelationship ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:ManufactureAction spdx-supplychain:ReproduceAction spdx-supplychain:AssemblyAction spdx-supplychain:HarvestAction ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-security:CvssV2VulnAssessmentRelationship spdx-security:SsvcVulnAssessmentRelationship spdx-security:CvssV3VulnAssessmentRelationship spdx-security:CvssV4VulnAssessmentRelationship spdx-security:EpssVulnAssessmentRelationship spdx-security:VexVulnAssessmentRelationship spdx-security:ExploitCatalogVulnAssessmentRelationship ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-core:PhysicalLocation ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:ModifyAction spdx-supplychain:BoundaryDefinitionAction spdx-supplychain:UseAction spdx-supplychain:DestroyAction spdx-supplychain:ResponsibilityChangeAction spdx-supplychain:CreateAction ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:UseProcess spdx-supplychain:ModifyProcess spdx-supplychain:BoundaryDefinitionProcess spdx-supplychain:DestroyProcess spdx-supplychain:ResponsibilityChangeProcess spdx-supplychain:CreateProcess ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:DefinedStateProcess spdx-supplychain:TestProcess spdx-supplychain:InspectionProcess spdx-supplychain:PlanProcess ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-expandedlicensing:CustomLicenseAddition spdx-expandedlicensing:ListedLicenseException ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-extension:CdxPropertiesExtension ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-core:SpdxDocument spdx-core:Bundle ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:StorageAction spdx-supplychain:TransportAction spdx-supplychain:ChangeAction ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:AssemblyProcess spdx-supplychain:ReproduceProcess spdx-supplychain:HarvestProcess spdx-supplychain:InstantiateVirtualHardwareProcess spdx-supplychain:ManufactureProcess ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-hardware:BulkHardware spdx-hardware:VirtualHardware spdx-hardware:PhysicalHardware ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:TransportProcess spdx-supplychain:ChangeProcess spdx-supplychain:StorageProcess ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-simplelicensing:LicenseExpression spdx-expandedlicensing:WithAdditionOperator spdx-expandedlicensing:ExtendableLicense spdx-expandedlicensing:DisjunctiveLicenseSet spdx-expandedlicensing:ConjunctiveLicenseSet spdx-expandedlicensing:IndividualLicensingInfo ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-software:SoftwareArtifact spdx-core:Specification spdx-core:DefinedProcess spdx-core:Action spdx-operations:ExportControlClassificationAssessment spdx-supplychain:State spdx-service:SoftwareService spdx-hardware:Hardware spdx-security:Vulnerability ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-expandedlicensing:CustomLicense spdx-expandedlicensing:ListedLicense ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-supplychain:BoundaryCrossingAction spdx-supplychain:ResolutionAction spdx-supplychain:StateAction spdx-supplychain:PlanAction spdx-supplychain:TestAction spdx-supplychain:InspectionAction spdx-supplychain:OutOfSpecAction ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-expandedlicensing:License spdx-expandedlicensing:OrLaterOperator ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-software:ContentIdentifier spdx-core:Hash spdx-core:PackageVerificationCode ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-software:Snippet spdx-software:Package spdx-software:File ) .

[] a owl:AllDisjointClasses ;
    owl:members ( spdx-simplelicensing:SimpleLicensingText spdx-simplelicensing:AnyLicenseInfo spdx-functionalsafety:EvaluationResult spdx-functionalsafety:Assumption spdx-functionalsafety:RequirementVerification spdx-expandedlicensing:LicenseAddition spdx-core:Artifact spdx-core:Location spdx-core:Agent spdx-core:IndividualElement spdx-core:Relationship spdx-core:Requirement spdx-core:ElementCollection spdx-core:Role spdx-core:Annotation spdx-core:Tool spdx-build:Build ) .

