THE SPDX WIKI IS NO LONGER ACTIVE. ALL CONTENT HAS BEEN MOVED TO https://github.com/spdx

Technical Team/Proposals/2012-02-01/Merged Model Proposal

From SPDX Wiki
< Technical Team‎ | Proposals
Revision as of 17:57, 16 February 2012 by Goneall (Talk | contribs)

Jump to: navigation, search

Below is a class diagram merging Ed Warnicke's proposed SPDX Element model with the 1.0 model.  Definately a work in progress.  Most of the class definitions can be found in the 1.0 spec in the RDF appendix (model) or in Ed's proposal (<a href="http://spdx.org/wiki/rough-proposal-hierarchy-signing-and-supply-chain-friendliness-spdx-20">http://spdx.org/wiki/rough-proposal-hierarchy-signing-and-supply-chain-friendliness-spdx-20</a>).

The goals of this proposal are to:

- Support the use cases for the 1.0 spec

- Support the supply chain use cases

- Support the "hierarchical" or embedded package use cases

- Provide a more abstract model which can simplify the application of SPDX to some of the more complex use cases

This proposal extends the existing proposals by adding an SPDX Element Relationship which describes the type of relationship from one SPDX element to another.

 

 

Mapping SPDX 1.0 Fields to Proposal

 

<tbody></tbody>

SPDX 1.0

SPDX 2.0 Merged Proposal

Notes

Section

Field

Class

Property

 

Document Information

Version

SpdxDocument

specVersion

No change to current spec – note that SpdxDocument seems equivalent to SPDXFile in Ed’s proposal

Document Information

Data License

SpdxDocument

dataLicense

No change to current spec - Propose that the SpdxDocument class contain this information since it related to the document itself and not specific to a Licenseable element

Creation Information

Creator

SpdxDocument

creationInfo

No change to current spec - Propose that the SpdxDocument class contain this information since it related to the file itself and not specific to a Licenseable element.  This creationInfo could have a range of an Annotation since the properties are very similar

Creation Information

Created

CreationInfo

created

This does feel a lot like an annotation.  Proposing keeping CreationInfo merely for compability purposes.  Could make CreationInfo a subclass of Annotation.

Creation Information

Comment

CreationInfo

rdfs:comment

This does feel a lot like an annotation.  Proposing keeping CreationInfo merely for compability purposes.  Could make CreationInfo a subclass of Annotation.

Creation Information

Creator

CreationInfo

creator

We may want this property to be unique for Creator since it relates to the entire document and not just the author of an annotation.  At some point, we should type this so that we can easily distinguish “Tool” from “Person” and “Organization”

Package Information

Formal Name

SpdxLicensable

name

Suggest that every licenseable would have a name.  For file, name could refer to the file name and filename could refer to the path relative to the archive.  I don’t believe this would change the current RDF implementation.

Package Information

Package Version Information

SpdxLicensable

versionInfo

Would argue that version would apply to any Licensable artifact.  I don’t believe this would change the current RDF implementation.  I don’t believe this would change the current RDF implementation.

Package Information

Package File Name

Package

packageFileName

No change to current spec.  This could also be implemented at the SpdxLicenseable level if we change the property name to fileName.  Since this would make it incompatible, I would propose we stay with packageFileName.

Package Information

Package Supplier

SpdxLicensable

Supplier

No change to current spec.

Package Information

Package Originator

N/A

N/A

From Ed’s proposal: As the SPDX 2.0 proposal correctly handles the notion of 'things' being repackaged along the way via nesting, this field is no longer necessary. The coreutils.tar.gz upstream is the supplier for coreutils.tar.gz. Someone like Fedora could be the supplier for coreutils.rpm, which would refer to the SPDX data from coreutils.tar.gz. Full provenance abrogates the need for this field.

Package Information

Package Download Location

Package

downloadLocation

Same as current spec.  This is specific to a Package as a distributable unit.

Package Information

Package Verification Code

Package

packageVerificationCode

Worth a future discussion, but proposing no change in current spec for now.

Package Information

Package Checksum

Package

checksum

Could make this part of Licensable, however, some future subclasses (such as code snippets) may not have an associated checksum

Package Information

Source Information

Package

annotation

Propose to deprecate the 1.0 property and replace with Annotations.

Package Information

Concluded License

SpdxLicenseable

licenseConcluded

No change to current spec.  Propose that this is a valuable distinct field and is associated with Package.

Package Information

All Licenses Information From Files

N/A

N/A

Propose we deprecate this in 2.0 (same reasoning Ed made in his proposal).  This could be an independent decision.

Package Information

Declared License

SpdxLicensable

declaredLicense

No change from current spec.  Property should be associated with all Licensable elements.

Package Information

Comments on License

Package

annotation

Propose we depreciate this field and handle as an Annotation

Package Information

Copyright Text

SpdxLicensable

copyrightText

No change from current spec.  Property should be associated with all Licensable elements.

Package Information

Package Summary Description

Package

summary

No change from current spec.

Package Information

Package Detailed Description

Package

description

No change from current spec.

Other License Information Detected

All fields

AnyLicenseingInfo

All properties

Propose we keep the same licensing model, but associate with the SpdxLicensable class.  Note – this probably deserves further analysis

File Information

File Name

File

filename

No change from current spec.

File Information

File Type

File

fileType

No change from current spec.

File Information

File Checksum

File

checksum

No change from current spec.  Could make this part of Licensable, however, some future subclasses (such as code snippets) may not have an associated checksum

File Information

Concluded License

Licensable

licenseConcluded

No change from current spec.  Propose that all Licenseable have a licenseConcluded property.

File Information

License Information in File

File

licenseInformationInFile

No change from current spec.

File Information

Comment on License

File

annotation

Propose we deprecate this and replace it with annotation

File Information

Copyright Text

SpdxLicensable

copyrightText

No change to current spec.  Property should be associated with all Licensable elements.

File Information

Artifact of Project Name

SpdxLicensable

relatedLicensable

Replace the Artifact Of with a generalized concept of a related SPDX Licensable. Alternatively, leave the relationship specific to file per Peter’s proposal.

File Information

Artifact of Project Homepage

SpdxLicensable

relatedLicensable

Replace the Artifact Of with a generalized concept of a related SPDX Licensable. Alternatively, leave the relationship specific to file per Peter’s proposal.

File Information

Artifact of Project URI

SpdxLicensable

relatedLicensable

Replace the Artifact Of with a generalized concept of a related SPDX Licensable. Alternatively, leave the relationship specific to file per Peter’s proposal.

Review Information

Reviewer

Review

reviewer

No change to current spec.

Review Information

Review Date

Review

reviewDate

No change to current spec.

Review Information

Comments

Review

Rdfs:comment

No change to current spec.

 

 

 

 <img src="http://www.spdx.org/system/files/proposedmodel.png" alt="Class Diagram" width="909" height="529" />