Comments (5)
optional values (or NOASSERTION
) is also something that is necessary for non enum values.
from spdx-3-model.
I completely agree - 'no assertion' is a concept, one which is permitted for some fields (the value is said to be optional) and prohibited for other fields (the value is said to be required).
It makes sense for 'no assertion' to be expressed in a serialisation format or programming language's 'native' way, if available. Thus, in a Clojure implementation I would use nil
for 'no assertion', and for the JSON serialisation format, we (SPDX) might decide that, say, it's the omission of the field's key-value pair that signifies 'no assertion'.
If an Element declares that it conforms to a specific SPDX profile, that may make some fields required where they would otherwise be optional.
As a clarification, when you say:
Further, the default value and cardinallity of an enum should be decided by the user and not by the enum.
...I presume you are referring to SPDX Element types that have an Enum field, not the 'end user' of SPDX data?
from spdx-3-model.
+1
It should be noted that UNKNOWN is distinct from NOASSERTION -- it is an explicit statement rather than the lack of a statement, so UNKNOWN Is a legitimate enumerated item.
For fields that are optional in some contexts and required in others, both application behavior and serialization must be carefully considered.
- Logical: does an application variable with field=nil compare as equal to the same object with field absent? It should, but in practice programming languages may not make it so.
- Physical: a serialized value with field=nil definitely hashes to a different value than with the field absent.
from spdx-3-model.
this is a duplicate of #76?
from spdx-3-model.
Close this issue as it's being tracked in #76
from spdx-3-model.
Related Issues (20)
- In page https://spdx.github.io/spdx-spec/v3.0/model/Licensing/Licensing/ the lists are not displayed correctly. HOT 3
- Doc: Possible outdated references to gh-pages and auto-generated in README.md HOT 2
- Delete gh-pages for the spdx-3-model
- License list version is still not SemVer HOT 5
- Does the specVersion include a PATCH version?
- ProfileIdentifierType list HOT 1
- What does "IRI ``" mean? HOT 6
- Have Markdown lint runs after commit HOT 1
- 3.1: Dataset: Add a "language" field
- rootElement: SBOM or BOM? HOT 1
- Where are the SPDX Matching Guidelines? HOT 8
- Where is the "Legacy Text Template format section"? HOT 3
- Vocabulary entries should be single-line
- AI: Not clear what 'energyQuantity' means HOT 5
- AI: 'energyConsumption', 'finetuningEnergyConsumption', 'inferenceEnergyConsumption' would vary so is it correct to record them? HOT 1
- AI: hyperparameter, metric, metricDecisionThreshold - can be multiple. Property talks about only one. HOT 11
- AI: 'modelExplainability' summary and description should be modified HOT 4
- AI: 'trainingEnergyConsumption' is duplicate of 'energyConsumption' HOT 1
- AI: Need comprehensive strategy for addressing security related parameters for AI systems HOT 1
- Core: Need class 'Dictionary' for listing multiple key-value pairs HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spdx-3-model.