Interesting article and a good analogy.

 

I'll add one more caveat to Williams list below:

Currently, the SPDX 2.x graphs are cyclic due to use case requirements and
resultant designs (despite intense efforts to avoid cycles).  It would be a
big improvement if we could get rid of the cycles in 3.0, but I fear we may
end up with the same result.

 

Regards,
Gary

 

From: [email protected] <[email protected]> On Behalf Of
William Bartholomew (CELA) via lists.spdx.org
Sent: Monday, November 8, 2021 2:30 PM
To: [email protected]; SPDX-list <[email protected]>
Subject: Re: [EXTERNAL] [spdx-tech] Infinity Category Theory and SBOMs.

 

I think this is mostly accurate with a couple of caveats/observations:

*       We have been very careful to not depend on ordering or creation
time. The order of creation of elements has no implied meaning but is purely
informational, the graph is what defines lineage. This is important because
the description of an artifact (which is what an Element is) will happen
after the creation of the artifact, by different parties, and at different
times and the description of the artifact can evolve independently of the
artifact as new knowledge about the artifact is acquired. This is also one
of the reasons why most things are outside of the Element and reference the
Element, this allows them to have a lifecycle independent of the Element
they reference (e.g. you can add an Annotation, Relationship, etc. over time
that references the same Element).
*       I believe an already existing Element can be added to a Collection,
this could be a reference to an Element in the same Document or it could be
a reference to an external Element via ExternalMap. We do have an open
discussion about whether you can copy the Element into the Document but that
requires some way of verifying its integrity (which we haven't defined yet).
This implies that an Element can logically be in multiple Collections. I'd
be interested in the group's opinion on whether this expected or desired?
(This is independent of Relationship which provides a similar ability in a
different way).
*       We made a deliberate decision to focus on logical design independent
of physical implementation, however, it's important to validate that by
dipping down to the implementation level to determine if it's practical and
achieves what was intended. Some people will always be more comfortable at
the syntax/concrete/implementation level, and we want to be inclusive and
map those discussions to the logical model (or map the logical concepts to
the physical implementations they're comfortable with).
*       Element immutability in SPDX v2 and SPDX v3 (so far) is achieved by
the Element "belonging" to a Document and having a cryptographic hash of
that document. An Element being inside a Document and knowing the Document
hasn't been tampered lets us transitively know that an Element hasn't been
tampered. Allowing an Element to be independent of a Document and copied to
different Documents (not referenced but copied) means that you need a way to
verify the integrity of that Element, this is not a trivial problem to
solve. The document reference + hash approach handles this relatively well
but requires you to have a copy of the Document (it can be a cached copy).

 

Regards,

 

William Bartholomew (he/him) -
<https://outlook.office.com/findtime/[email protected]&anonymo
us&ep=plink> Let's chat

Principal Security Strategist

Cybersecurity Policy - Digital Diplomacy

 

From: [email protected] <mailto:[email protected]>
<[email protected] <mailto:[email protected]> > On Behalf Of
David Kemp via lists.spdx.org
Sent: Monday, November 8, 2021 1:02 PM
To: SPDX-list <[email protected] <mailto:[email protected]> >
Subject: [EXTERNAL] [spdx-tech] Infinity Category Theory and SBOMs.

 

The October Scientific American had a fascinating article on mathematics:
https://www.scientificamerican.com/article/infinity-category-theory-offers-a
-birds-eye-view-of-mathematics1/
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.scien
tificamerican.com%2Farticle%2Finfinity-category-theory-offers-a-birds-eye-vi
ew-of-mathematics1%2F&data=04%7C01%7Cwillbar%40microsoft.com%7C52c70ecc6af44
4f00ce708d9a2fb1978%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63772002163
5694186%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6
Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fplD55T5y1GrNs1Zad4QZOp4vV0E4976Ywf%2FVo
zQoHw%3D&reserved=0> .  I'm not a mathematician and most of the details are
beyond my understanding, but the premise is crystal clear:

"How is it that mathematicians can quickly teach every new generation of
undergraduates discoveries that astonished the previous generation's
experts? Part of the answer has to do with recent developments in
mathematics that provide a "birds-eye view" of the field through ever
increasing levels of abstraction. ... As Eugenia Cheng puts it in The Art of
Logic in an Illogical World, "a powerful aspect of abstraction is that many
different situations become the same when you forget some details." 

 

The transformation of SPDX from v2 to v3 based on ideas from 3T is a
concrete example of abstraction.  Everything in v3 is a Graph consisting of
Nodes with a uniform structure (classes derived from Element), connected by
Edges (various kinds of relationships).  Starting with the logical model
(the highest level of abstraction), making design decisions at the logical
level and then validating them for feasibility at the information and data
(syntax) levels is the process we seem to be following, but that process
isn't explicitly described or universally understood.  And syntax-based
design still seems to be with us.

We recently agreed that Elements are immutable.  That is fundamental to
understanding SPDX as a graph - every Element in the continually expanding
Element graph is *created*, and once created it never changes.  We then
don't need to understand any specific details about SPDX in order to know
that the set of all Elements ever created must be a DAG (directed acyclic
graph) which has a topological (partial) ordering based on creation time.
(A linear or total ordering would mean that no two Elements have the same
creation info, i.e., there is no such thing as an Element created within
another Element.)

So based on causality (the laws of physics) and immutability (our
agreement):

*       A collection Element has a collection id and was created.
*       Every Element that is a member of a collection logically either:

*       a. has the same collection id and was created at the same instant by
the same entity as the collection (call them internal Elements)
*       b. has different or no collection id and was created prior to the
collection (call them external Elements)

This is regardless of what if any creation properties are defined in the
logical model. An Element that exists was by definition created by some
entity at some point in time.


Do those bullets make sense?

Dave





-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#4241): https://lists.spdx.org/g/Spdx-tech/message/4241
Mute This Topic: https://lists.spdx.org/mt/86918867/21656
Group Owner: [email protected]
Unsubscribe: https://lists.spdx.org/g/Spdx-tech/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to