Skip to content

Commit

Permalink
Merge pull request #447 from spdx/profiledef
Browse files Browse the repository at this point in the history
  • Loading branch information
zvr authored Oct 10, 2023
2 parents d634dcc + e72241c commit bbcf3a2
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 26 deletions.
6 changes: 5 additions & 1 deletion Glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,11 @@ The action of checking or proving that instance data content conforms to the exp

## Profile

An explicit scope of usage for SPDX targeting support for particular use cases and scenarios (e.g., core, software, licensing, build, etc.). A profile identifies which particular SPDX namespaces, concept classes and properties it leverages along with any custom specializations of shape constraints unique to its use. NOTE: A profile is NOT the same thing as a namespace. A namespace is a formal part of the language ontology and defines specific concept classes, properties and shape constraints unique for a particular domain scope. A profile represents usage and conformance documentation for the language ontology and references concept classes, properties and shape constraints defined within namespaces. For a given profile, there may exist a namespace closely aligned to the same usage scope but they are not the same thing and the profile will often leverage/reference concept classes, properties and shape constraints from more namespaces (e.g., core) than just the aligned namespace.
A scope of usage for SPDX targeting support for particular use cases and scenarios (e.g., core, software, licensing, build, etc.).
Profiles are enumerated in the [ProfileIdentifier vocabulary](model/Core/Vocabularies/ProfileIdentifierType.md).
A profile identifies which particular SPDX namespaces, concept classes and properties it leverages along with any custom specializations of shape constraints unique to its use. NOTE:A profile is NOT the same thing as a namespace. A namespace is a formal part of the language ontology and defines specific concept classes, properties and shape constraints unique for a particular domain scope. A profile represents usage and conformance documentation for the language ontology and references concept classes, properties and shape constraints defined within namespaces. For a given profile, there may exist a namespace closely aligned to the same usage scope but they are not the same thing and the profile will often leverage/reference concept classes, properties and shape constraints from more namespaces (e.g., core) than just the aligned namespace.
When creating an [ElementCollection](model/Core/Classes/ElementCollection.md), the creator of the element can indicate whether they fully comply with all restrictions defined in the associated profile namespace using the [profileConformance](model/Core/Properties/profileConformance.md) property.
The creator of the ElementCollection can also indicate whether any of the associated namespace classes, properties or vocabularies may be used in the ElementCollection using the [profileNamespace](model/Core/Properties/profileNamespace.md) property.

## Serialization

Expand Down
3 changes: 0 additions & 3 deletions model/Core/Classes/CreationInfo.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ The dateTime created is often the date of last change (e.g., a git commit date),
- createdUsing
- type: Tool
- minCount: 0
- profile
- type: ProfileIdentifierType
- minCount: 1
- dataLicense
- type: xsd:string
- minCount: 1
Expand Down
8 changes: 6 additions & 2 deletions model/Core/Classes/ElementCollection.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ A collection of Elements, not necessarily with unifying context.

## Description

An SpdxCollection is a collection of Elements, not necessarily with unifying context.
An ElementCollection is a collection of Elements, not necessarily with unifying context.

Note that all ElementCollections must conform to the core profile even if the core profile is no specified in the profileConformance property.
If the profileConformance property is not provided, core is to be assumed as the default.

## Metadata

Expand All @@ -26,4 +29,5 @@ An SpdxCollection is a collection of Elements, not necessarily with unifying con
- minCount: 1
- imports
- type: ExternalMap

- profileConformance
- type: ProfileIdentifierType
18 changes: 0 additions & 18 deletions model/Core/Properties/profile.md

This file was deleted.

21 changes: 21 additions & 0 deletions model/Core/Properties/profileConformance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
SPDX-License-Identifier: Community-Spec-1.0

# profileConformance

## Summary

Describes one a profile which the creator of this ElementCollection intends to conform to.

## Description

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 must adhere to the core profile.

## Metadata

- name: profileConformance
- Nature: ObjectProperty
- Range: ProfileIdentifierType
7 changes: 5 additions & 2 deletions model/Core/Vocabularies/ProfileIdentifierType.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ SPDX-License-Identifier: Community-Spec-1.0

## Summary

Enumeration of the valid profiles that an element can be specified to be part of.
Enumeration of the valid profiles.

## Description

There are a set of profiles that have been defined to be valid for a specific release This file enumerates the values that have been agreed on, and may be applied to the creation information for an an element.
There are a set of profiles that have been defined by a profile team.
A profile consists of a namespace that may add properties and classes to the core profile unique to the domain covered by the profile.
The profile may also contain additional restrictions on existing properties and classes defined in other profiles.
If the creator of an SPDX collection of elements includes a profile in the list of conformanceProfiles, they are claiming that all contained elements conform to all restrictions defined for that profile.

## Metadata

Expand Down

0 comments on commit bbcf3a2

Please sign in to comment.