On Tue, Mar 15, 2022 at 11:20 AM Sean Barnum <[email protected]> wrote:

> I would express my serious reservations with any movement to start mixing
> formal UML specification considerations on our model with RDF/OWL/SHACL
> specification.
>
> Attempting to mix the two will likely lead to ruin. 😊
>

*[dpk] * UML defines terms, and some of those terms are relevant to SPDX.

* *Classifier*: A classifier describes a set of objects
* *Type*: A Type specifies a set of allowed values known as the instances
of the Type. The rules for what constitutes an instance of the Type remain
fixed by the definition of that Type. All Types in UML are Classifiers

The logical model describes a set of SPDX3 application (logical) objects.
The logical model does not specify the allowed values of serialized data
(SPDX3 transfer units).

We have agreed as a community that the formal specification for SPDX3 will
> be RDF/OWL/SHACL.
>

*[dpk] *Yes - that is the logical specification. It is not the formal
specification for SPDX3 data.  A serialization model is necessary in
addition to the logical model.

Our current model diagram has been using kind of UML in a very informal way
> for use to all visually understand the basic structure and cardinalities
> but we have intentionally avoided any sort of formal UML interpretation. I
> strongly encourage us to continue that approach.
>

*[dpk]* Absolutely. Serialization on the other hand must be defined
formally, it must unambiguously classify any transfer unit, regardless of
data format, as "SPDX3" or "not SPDX3".

NamespaceMap and ExternalMap are defined formally using a UML-based
information model. They are essential to perform serialization, and their
values exist only in serialized data. They do not exist in unserialized
Element instances, but if depicting them in the logical model aids
understanding then by all means include them.



> As an RDF/OWL/SHACL ontology, these non-element classes [e.g.,
> ExternalReferrence, VerificationMethod, CreationInfo] are RDF/OWL classes
> and I would assert it makes perfect sense for them to be this."
>

*[dpk]* The question is do RDF/OWL classes support data structures?  They
obviously support data - a property can be a string type and a property
instance "created" = "by: [email protected], when: 2019-10-12T07:20:50.52Z".
There is no need to consider compression and references and reuse, the
value of a string, and the value of a "struct" or "non-Element Class" is
just a value whether it is re-used or not.  Again, the logical model
doesn't define serialization, and re-use or not of strings and structs
exists only in serialized data, not in the logical value of a "created"
property.  An instance of "created" of type CreationInfo has two fields,
whether they are serialized as a string or a JSON object.

RDF/OWL/SHACL is designed to model and express information this way.
>
> In RDF/OWL/SHACL every class instance MUST have an id by which it can be
> referenced.
>

[dpk] Then a "non-element class" MUST NOT be called a class because it
doesn't have the semantics of a class.  Every instance of a struct is an
atomic data value like a string.

Dave

>


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


Reply via email to