The UML-based information modeling tool I use is called Notepad :-). The information model is a text file that is itself validated by an IM tool <https://pypi.org/project/jadn/> (currently written in Python), and is also used to validate serialized data. It can also be displayed in several formats including property tables and diagrams.
There are some example files in a gist <https://gist.github.com/davaya/31484c58fe6f1516bde8921fdd853638>. Dave On Thu, Mar 17, 2022 at 11:47 AM Dick Brooks < [email protected]> wrote: > Many years ago I used a tool called Rational Rose to model a piece of > software (C++) and I was able to produce .cpp stubs to help reduce some > typing. > > > > Is there a UML tool available that can model data objects and > relationships and generate a schema output, i.e. JSON or XML? > > > > Thanks, > > > > Dick Brooks > > *Never trust software, always verify and report! > <https://reliableenergyanalytics.com/products>* ™ > > http://www.reliableenergyanalytics.com > > Email: [email protected] > > Tel: +1 978-696-1788 > > > > *From:* [email protected] <[email protected]> *On Behalf Of > *David Kemp > *Sent:* Thursday, March 17, 2022 11:31 AM > *To:* Sean Barnum <[email protected]> > *Cc:* Gary O'Neall <[email protected]>; SPDX-list < > [email protected]> > *Subject:* Re: [spdx-tech] Follow-up on non-Element classes > > > > > > > > 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 (#4424): https://lists.spdx.org/g/Spdx-tech/message/4424 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]] -=-=-=-=-=-=-=-=-=-=-=-
