> -----Original Message-----
> From: [email protected] <[email protected]> On Behalf Of Sean
> Barnum
> Sent: Tuesday, April 6, 2021 8:40 AM
> To: Alexios Zavras <[email protected]>; Robert A Martin
> <[email protected]>; Henk Birkholz <[email protected]>
> Cc: [email protected]
> Subject: Re: [EXT] Re: [spdx-tech] interactions between profiles
...
> In general if you define a subprofile or another profile, then the constraints
> are only allowed to narrow and not broaden. In this way all content of the
> subprofile is also valid according to the parent profile.
> Think of profiles as venn diagrams of content expressible by the model.
[G.O.] So for Alexios' examples below, can you answer which specifically is 
allowed?  For example, can you add additional enumerations?

> 
> So, I think the discussion around adding or modifying in profiles may be
> confusing the model with the profiles defined against it.
> Profiles should never add to or modify the model. They simply identify
> portions of the model and how they should be used (constraints) for a given
> context.
> 
> Sean Barnum
> C – 703-473-8262
> [email protected]
> We are here to change the world!
>  <https://www.facebook.com/MITREcorp>
> <https://www.linkedin.com/company/mitre>
> <https://twitter.com/MITREcorp>
> <https://www.youtube.com/user/mitrecorp>
> <https://plus.google.com/+MitreOrgFFRDCs/posts>
>  <http://www.mitre.org/>
> 
> 
> 
> On 4/6/21, 6:55 AM, "[email protected] on behalf of Alexios Zavras"
> <[email protected] on behalf of [email protected]> wrote:
> 
>     Right.
> 
>     Henk, it might be useful to think that our "profiles" are similar to 
> "Bluetooth
> profiles", listed in https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles.
> Each one (like Headset profile, or Serial Port Profile) adds some new
> information and a specific device might use only a couple of them.
> 
>     Our problems, discussed in this thread, comes from the interaction between
> profiles.
> 
> 
>     [sorry for following up so late -- Easter holidays]
> 
>     -- zvr
> 
>     -----Original Message-----
>     From: [email protected] <[email protected]> On Behalf Of
> Martin, Robert A
>     Sent: Thursday, 1 April, 2021 21:11
>     To: Henk Birkholz <[email protected]>; Gary O'Neall
> <[email protected]>; [email protected]; Spdx-
> [email protected]
>     Subject: Re: [EXT] Re: [spdx-tech] interactions between profiles
> 
>     Hi all,
> 
>     At the risk of adding confusion but the intention of helping bring 
> clarity I will
> offer that the idea is to have a specification with a core that is always 
> needed
> and then other portions (profiles) of the specification are only used when
> needed for specific use cases/communities.
> 
>     The specification needs to all fit together and work as a whole for the
> composition of use cases but if I only want to exchange generic BOMs I would
> only need the core. If I want to exchange information about software or
> hardware I would want the profiles for software and/or hardware along with
> the core.
> 
>     If you want to exchange license information about software you would want
> the core, the software profile and the license profile.
> 
>     Similarly if you want to exchange provenance information about hardware
> or software you would add in the provenance profile to the core and the
> hardware or software profiles.
> 
>     In the Object Management Group this concept is captured by stating
> compliance points - subsets of the overall specification that can be claimed
> conformance with/support of.
> 
>     Hope that helped some,
> 
>     Bob
> 
>     Robert (Bob) Martin
>     Sr. Software and Supply Chain Assurance Principal Eng.
>     Cross Cutting Solutions and Innovation Dept Cyber Solutions Innovation
> Center MITRE Labs MITRE Corporation 781-271-3001o 781-424-4095c
> 
>     On 4/1/21 2:46 PM, Henk Birkholz wrote:
>     > Hi all,
>     >
>     > I was blocked from attending the last meeting and I really like the
>     > activity on the list here right now.
>     >
>     > Please bear with me while I might open yet another potential can of
>     > worms right now (only on the naming level, not on the concept level).
>     >
>     > Am I mistaken in this context when I think of a profile literally to
>     > be a subset of a model? I think I read somewhere in the replies that a
>     > profile will add new things. That was quite surprising to me as I
>     > would think of that as an extension (sometimes named an augment). A
>     > profile specification can go hand-in-hand with an extension
>     > specification, of course. But to not potentially violate a principle
>     > of least surprise here, I'd like to throw a proposal into the ring
>     > here that is not to mix up these two kinds of "follow-up" 
> specifications.
>     >
>     > Viele Grüße,
>     >
>     > Henk
>     >
>     > On 01.04.21 20:33, Gary O'Neall wrote:
>     >> Responses to both William and Alexios below.
>     >>
>     >> I like the way Alexios framed up the conversation.  Perhaps we should
>     >> revisit what changes are allowed, being quite specific this time
>     >> around.  Once we agree on that, we can go back to the discussion on
>     >> how we represent those changes in the information model, the
>     >> serialization schemas, and the spec documentation.
>     >>
>     >> Gary
>     >>
>     >> *From:* [email protected] <[email protected]> *On
>     >> Behalf Of *William Bartholomew via lists.spdx.org
>     >> *Sent:* Thursday, April 1, 2021 9:03 AM
>     >> *To:* [email protected]
>     >> *Subject:* Re: [spdx-tech] interactions between profiles
>     >>
>     >> I know I missed the beginning of the call so apologies if I'm
>     >> re-opening a can of worms, but I'm a big fan of immutability, what
>     >> would the world look like if we only supported create (I'd include
>     >> extending an enum in this category)? What wouldn't be possible? For
>     >> the things that aren't possible can we come up with a way to make
>     >> them possible with create instead of modify?
>     >>
>     >> William
>     >>
>     >> */[G.O.] I think there is a number of use cases where changing the
>     >> cardinality of field is required.  An example pointed out on the call
>     >> was version.  Currently it is optional, but in a security profile or
>     >> integrity profile it may be required.  On the call, we did discuss
>     >> the version example in depth and explored creating a separate Field
>     >> just for the profile – but that got really messy./*
>     >>
>     >> */Another consideration is that supporting “create” at one level
>     >> implies “modifiy” at another.  For example, creating a new enum value
>     >> modifies the enum restrictions in the schema (or the enum class)./*
>     >>
>     >> */One way to keep the base profile classes immutable, is to subclass
>     >> them in the profiles.  However, there we ran into the multiple
>     >> inheritance problem described below./*
>     >>
>     >> */To put some context around these discussions, on the call we
>     >> arrived at the problem statement and options after trying to figure
>     >> out how to map the spec document to our serialization schemas that we
>     >> currently support for the SPDX spec.  On the call, we used the JSON
>     >> Schema
>     >> <https://github.com/spdx/spdx-
> spec/blob/development/v2.2.1/schemas/sp
>     >> dx-schema.json> as an example since many of the participants are more
>     >> familiar with JSON than RDF.  This is a bit different and more
>     >> detailed than working through the information model.  The problem
>     >> comes when we want to support an SPDX document that supports more
>     >> than one profile (e.g. both defects/security and licensing).  This is
>     >> where the multiple inheritance problem came in.  If in the profiles
>     >> we subclass every class that we modify (e.g. we want to change
>     >> package version from optional to mandatory for security and make a
>     >> required copyright field for licensing), then there would be 2
>     >> subclasses of package for each file.  Then when we wanted to
>     >> represent this in a single schema file, we’re trying to inherit from
>     >> 2 classes – the subclass which modifies the package for the license
>     >> profile and the subclass that modifies the package for the security
>     >> related profile./*
>     >>
>     >> On 4/1/21 8:54 AM, Alexios Zavras wrote:
>     >>
>     >>     Hi all,
>     >>
>     >>     Following the extremely interesting and intellectually
>     >> stimulating
>     >>     discussion on the SPDX Tech call on Tuesday, I thought I'd try
>     >> and
>     >>     list the interactions between profiles that may exist. These gave
>     >> us
>     >>     some head-scratching moments when we tried to model them.
>     >>
>     >>     We all understand that, if we are going to have a number of
>     >>     profiles, each one of them will include some new information (for
>     >>     example, new fields). It may also affect some of the information
>     >>     defined outside this profile (for example, making a field
>     >> mandatory).
>     >>
>     >>     In an effort to “formalize” things, I'll be using abstract terms
>     >>     like Object, Field, and Type -- I hope we all understand the
>     >> general
>     >>     meaning, even though our specification is not using these terms.
>     >>
>     >>     */[G.O.] I’m assuming Object is equivalent to Class for the
>     >> purposes
>     >>     of our discussion – let me know if I’m wrong on this./*
>     >>
>     >>     So, a profile may do one or more of the following:
>     >>
>     >>     [CREATE]
>     >>
>     >>     1. define new Fields
>     >>
>     >>     2. define new Types (used in new Fields)
>     >>
>     >>     3. define new Objects, with included Fields of certain Types
>     >>
>     >>     [MODIFY]
>     >>
>     >>     4. add new Fields (with their Types) to Objects defined elsewhere
>     >>
>     >>     5. change the cardinality of Fields defined elsewhere (and thus
>     >>     change optional/mandatory status)
>     >>
>     >>     6. extend an Enum in a Type defined elsewhere, adding more
>     >>     alternatives (typical case: adding more Relationship types)
>     >>
>     >>     All these were mentioned during the call.
>     >>
>     >>     I assume removing/deleting Fields or Objects is not possible
>     >>     (right?). What about:
>     >>
>     >>     7. restrict an Enum in a Type defined elsewhere, removing some
>     >>     alternatives ?
>     >>
>     >>     As an example, could a profile introduce something like a "Secure
>     >>     Checksum" idea that says that FileCheksum may NOT be of MD2 type?
>     >>
>     >>     */[G.O.] I hope not.  For the example, I can think of some other
>     >>     approaches which would fit into the Modify and Create category 
> (e.g.
>     >>     create a new field SecureChecksum or have a required enum value
>     >>     which is a subset of all allowed values)./*
>     >>
>     >>     */Once we agree on the types of changes allowed in a profile, we
>     >> can
>     >>     analyze possible conflicts between the profiles.  If we restrict
>     >>     changes to the add and modify categories above, I can only think
>     >> of
>     >>     a small set of conflicts (e.g. 2 profiles choose the same Field
>     >> name
>     >>     with different types./*
>     >>
>     >>     Hope this helps show what we’re dealing with.
>     >>
>     >>     -- zvr
>     >>
>     >>     Intel Deutschland GmbH
>     >>     Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
>     >>     Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
>     >>     Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany
>     >> Doon
>     >>     Silva
>     >>     Chairperson of the Supervisory Board: Nicole Lau
>     >>     Registered Office: Munich
>     >>     Commercial Register: Amtsgericht Muenchen HRB 186928
>     >>
>     >>
>     >
>     >
>     >
>     >
>     >
>     > .
> 
> 
> 
> 
> 
>     Intel Deutschland GmbH
>     Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
>     Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
>     Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
>     Chairperson of the Supervisory Board: Nicole Lau
>     Registered Office: Munich
>     Commercial Register: Amtsgericht Muenchen HRB 186928
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 




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


Reply via email to