Systems Modeling API and Services Avatar
  1. OMG Specification

Systems Modeling API and Services — Open Issues

  • Acronym: SystemsModelingAPI
  • Issues Count: 39
  • Description: Issues not resolved
Open Closed All
Issues not resolved

Issues Summary

Key Issue Reported Fixed Disposition Status
SYSMOAS_-49 how is /versionData calculated SystemsModelingAPI 1.0b2 open
SYSMOAS_-45 two branches can have the same head SystemsModelingAPI 1.0b2 open
SYSMOAS_-59 create and delete should not be on DataIdentity SystemsModelingAPI 1.0b2 open
SYSMOAS_-58 scope on Query SystemsModelingAPI 1.0b2 open
SYSMOAS_-57 locking SystemsModelingAPI 1.0b2 open
SYSMOAS_-56 Branches are mutable SystemsModelingAPI 1.0b2 open
SYSMOAS_-55 wrong multiplicity on DataVersion SystemsModelingAPI 1.0b2 open
SYSMOAS_-54 previousCommits must be in the same project as the Commit SystemsModelingAPI 1.0b2 open
SYSMOAS_-53 Data needs to be reworked SystemsModelingAPI 1.0b2 open
SYSMOAS_-52 need the commit for a project SystemsModelingAPI 1.0b2 open
SYSMOAS_-51 Semantics of ProjectUsage needs to be defined SystemsModelingAPI 1.0b2 open
SYSMOAS_-50 Need both an internal and external ProjectUsage SystemsModelingAPI 1.0b2 open
SYSMOAS_-48 Head on Branch should be multiplicity 0..1 SystemsModelingAPI 1.0b2 open
SYSMOAS_-47 multiplicity change between Project and DataVersion SystemsModelingAPI 1.0b2 open
SYSMOAS_-46 navigation between DataVersion to DataIdentity SystemsModelingAPI 1.0b2 open
SYSMOAS_-44 multiplictiy change on Tag Commit SystemsModelingAPI 1.0b2 open
SYSMOAS_-43 OCL Constraints SystemsModelingAPI 1.0b2 open
SYSMOAS_-42 need attribute /usedProject SystemsModelingAPI 1.0b2 open
SYSMOAS_-41 some attributes need to be {readOnly} SystemsModelingAPI 1.0b2 open
SYSMOAS_-40 there needs to be a stament in the standard concerning how things are serialized SystemsModelingAPI 1.0b2 open
SYSMOAS_-39 should have defaults consistent in the parameters SystemsModelingAPI 1.0b2 open
SYSMOAS_-38 over specification of the API SystemsModelingAPI 1.0b2 open
SYSMOAS_-37 specification and language need to be {ordered} SystemsModelingAPI 1.0b2 open
SYSMOAS_-36 specification example SystemsModelingAPI 1.0b2 open
SYSMOAS_-35 value being 1..* SystemsModelingAPI 1.0b2 open
SYSMOAS_-34 Fig. 7 orderBy should be {ordered} SystemsModelingAPI 1.0b2 open
SYSMOAS_-33 inconsistency with queries SystemsModelingAPI 1.0b2 open
SYSMOAS_-32 JoinOperator and Operator are enumerations SystemsModelingAPI 1.0b2 open
SYSMOAS_-31 visibility needs to be consistent SystemsModelingAPI 1.0b2 open
SYSMOAS_-30 created needs to be consistent SystemsModelingAPI 1.0b2 open
SYSMOAS_-29 ownership dots SystemsModelingAPI 1.0b2 open
SYSMOAS_-28 all multiplicities explicity SystemsModelingAPI 1.0b2 open
SYSMOAS_-27 many of the association ends are wrapped SystemsModelingAPI 1.0b2 open
SYSMOAS_-26 All Attributes and AssociationEnds are singular SystemsModelingAPI 1.0b2 open
SYSMOAS_-25 IRI needs defintion SystemsModelingAPI 1.0b2 open
SYSMOAS_-24 other attributes in Record not needed SystemsModelingAPI 1.0b2 open
SYSMOAS_-23 What Language is are these models in SystemsModelingAPI 1.0b2 open
SYSMOAS_-22 Not everything needs to be a UUID SystemsModelingAPI 1.0b2 open
SYSMOAS_-21 Greater Scope SystemsModelingAPI 1.0b2 open

Issues Descriptions

how is /versionData calculated

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    the standard should specify how the commits (and previousCommit(s) ) are transverse to get all the elements

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:48 GMT
  • Updated: Tue, 23 Apr 2024 09:33 GMT

two branches can have the same head

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Two Branches can have the same head (Commit) … need multiplicity change
    for example to start them off with the same set of elements

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:43 GMT
  • Updated: Tue, 23 Apr 2024 09:20 GMT

create and delete should not be on DataIdentity

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    since DataIdentity is in the scope of the whole project, one can have multiple Branches where this DataIdentity is created in different Commits in different branches... and deleted in different Commits in different Branches...

    so these cannot be associated with the DataIdentity... DataVersion's commit is where that information must be stored...

    one could however have an operation that takes a project and branch and DataIdentity... and computes the Creation and Deletion Times from this

  • Reported: SystemsModelingAPI 1.0b2 — Mon, 22 Apr 2024 13:43 GMT
  • Updated: Mon, 22 Apr 2024 16:09 GMT

scope on Query

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    not sure one needs scope here... how would it work?... needs documentation in the spec about its use and an example

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 17:03 GMT
  • Updated: Mon, 22 Apr 2024 16:07 GMT


Branches are mutable


wrong multiplicity on DataVersion

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Data Version record is associated with up to one (0..1) Data Identity record, this is wrong it is multiplicity of 1

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:58 GMT
  • Updated: Mon, 22 Apr 2024 16:06 GMT

previousCommits must be in the same project as the Commit


Data needs to be reworked

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Data does not need to be further refined in the standard (i.e. no need for Relationship and operations like getRelationshipsByRelatedElements)... these could be there for operations that specifically deal with KerML models...
    I would suggest if doing that there should be two sections to this standard or possibly two standards... one that deals with
    versioning... the other that is specific to the serialized model

    I have a reworked model at https://material.elparazim.com/SysMLv2API/

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:56 GMT
  • Updated: Mon, 22 Apr 2024 16:05 GMT

need the commit for a project

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    "usage is the set of Project Usage records representing all other Projects being used by the given Project"… this does not work, need a particular commit for this

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:53 GMT
  • Updated: Mon, 22 Apr 2024 16:05 GMT

Semantics of ProjectUsage needs to be defined

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    What does project usage mean?... I am presuming this comes from Cameo kind of idea about ProjectUsage... but what in this spec does it mean and what can one surmise about it

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:51 GMT
  • Updated: Mon, 22 Apr 2024 16:05 GMT


Head on Branch should be multiplicity 0..1


multiplicity change between Project and DataVersion


navigation between DataVersion to DataIdentity

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    There should be a navigation between DataVersion to DataIdentity... presumably DataVersion knows about DataIdentity but not vice-versa

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 16:44 GMT
  • Updated: Mon, 22 Apr 2024 16:03 GMT

multiplictiy change on Tag Commit





there needs to be a stament in the standard concerning how things are serialized

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    there needs to be a statement in the standard concerning how things are serialized...

    I have reworked the model here https://material.elparazim.com/SysMLv2API/ and used two stereotypes...
    <<NS>> and <<SID>> which stand for "No Serialization" and "Serialize Id (only)"
    I believe this leads to a full understand of what will come when one serializing something from
    the APi (also examples are given for this serialization(s))

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:35 GMT
  • Updated: Mon, 22 Apr 2024 16:01 GMT

should have defaults consistent in the parameters

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    the standard for functions should be, e.g.

    getExternalRelationships(projectId:UUID, branchId:UID[0..1],commitId:UID[0..1]):ExternalRelationship[0..*]

    which means if a branchId is missing use the commitId, if commitId is missing then use the head of the branchId if it is there,
    otherwise, use the default Branch and its head of the project given
    many of the API operations need to be specified this way to be consistent

    I have a reworked model at https://material.elparazim.com/SysMLv2API/

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:29 GMT
  • Updated: Mon, 22 Apr 2024 16:01 GMT

over specification of the API

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Most of the API is over specified… as an example, getExternalRelationship has that you need to give it a Project… but you do not need a Project, you only need a ProjectId… so for this one example…
    getExternalRelationships(project:Project,commit:Commit):ExternalRelationship[0..*] should be
    getExternalRelationships(projectId:UID,commitId:UID):ExternalRelationship[0..*]

    this would follow the Interface Segregation Principle (“no client should be forced to depend on methods it does not use”)… most of the API is over specified in this way

    I have a reworked model at https://material.elparazim.com/SysMLv2API/

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:23 GMT
  • Updated: Mon, 22 Apr 2024 16:01 GMT

specification and language need to be {ordered}

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    specification and language need to be

    {ordered}

    ... this will have the same kind of semantics as
    Opaque/Expression or Behavior from UML (see fig 8.2 and its description in UML 2.5.1)

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:13 GMT
  • Updated: Mon, 22 Apr 2024 16:01 GMT

specification example

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Need at least one example of a specification for an ExternalRelationship...

    also need to define what it means if the specification is null (i.e. presume this means that one is referring to the entire element, so this is the way one specifies that an element in a model is really a remote element from another model)... this needs to be specified

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:10 GMT
  • Updated: Mon, 22 Apr 2024 16:00 GMT

value being 1..*

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    need to explain in the standard why value is 1..* (presuming because of the "in" operator, but the semantics of that is not specified)

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:07 GMT
  • Updated: Mon, 22 Apr 2024 15:59 GMT


inconsistency with queries

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Fig. 7 queries (which should be a singular, query) is an associationend… whereas in fig. 5 queries is shown as an attribute (needs to be removed in fig. 5)

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:04 GMT
  • Updated: Mon, 22 Apr 2024 15:59 GMT

JoinOperator and Operator are enumerations


visibility needs to be consistent

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    1. Fig 6 visibility is not shown on all the attributes, needs to be consistent
    2. Fig 7 visibility is not shown on all the attributes, needs to be consistent

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:01 GMT
  • Updated: Mon, 22 Apr 2024 15:58 GMT

created needs to be consistent

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    Fig 5 Project, Commit, CommitReference all have created as a attribute, But many of the examples (and some of the text have timestamp).. needs to be consistent… I like “created” as it tells one what the timestamp is for

    and deleted as the other timestamp name

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 15:00 GMT
  • Updated: Mon, 22 Apr 2024 15:58 GMT

ownership dots

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    would suggest using either MOF or UML to show diagrams and to employ ownership dots... note that KerML is specified this way

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 14:58 GMT
  • Updated: Mon, 22 Apr 2024 15:58 GMT

all multiplicities explicity

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    there are some multiplicities not shown... since there is no specification in the standard about what modeling language the diagram is in... do not know how to interpret these missing multiplicities... would suggest explicitly showing all multiplicities in the diagram

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 14:57 GMT
  • Updated: Mon, 22 Apr 2024 15:57 GMT

many of the association ends are wrapped

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    the models used in the standard have the association ends wrapped so you can't see them... suggest that they be unwrapped and
    shown on one line

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 14:55 GMT
  • Updated: Mon, 22 Apr 2024 15:57 GMT

All Attributes and AssociationEnds are singular

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    all the standard modeling languages use the same convention as well as most modeling style guides... and so does KerML...

    all attributes and association ends are singular... the fact that they can be plural is taken care of by multiplicity

    would suggest this convention be followed

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 14:53 GMT
  • Updated: Mon, 22 Apr 2024 15:57 GMT

IRI needs defintion

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    IRI standard is referenced, but that does not give a precise definition of how to use it, especially if one wants to be interoperable among implementations... would suggest...

    Standard ProjectI IRI:

    {protocol}://{serverIRI}/projects/{projectId}/commits/{commitId}/elements/{elementId}{protocol}

    ://

    {serverIRI}

    /projects/

    {projectId}

    /commits/

    {commitId}

    the first is for Elements and the second is for externally referenced projects

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 19 Apr 2024 14:51 GMT
  • Updated: Mon, 22 Apr 2024 15:56 GMT

other attributes in Record not needed

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    resourceIdentifier is not needed in the record (although would be interesting)... statements about that in another issue... but remove alias, humanidentifier... and description... for example DataVersion and DataIdentity does not need a description... would suggest creating a NamedRecord where name and description are added into that and have Project, Commit, CommitReference, Query specialize that

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 12 Apr 2024 13:27 GMT
  • Updated: Fri, 12 Apr 2024 19:31 GMT

What Language is are these models in

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    it does not specify what language these models are in... UML, SysML, KerML, SysML2, MOF?...
    it makes a difference in, e.g., interpreting the multiplicities... I would suggest doing the models in MOF and making everything explicit (e.g. multiplicities)

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 12 Apr 2024 13:23 GMT
  • Updated: Fri, 12 Apr 2024 19:30 GMT

Not everything needs to be a UUID

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    one needs Unique IDs (UID) but not UUID (Universally Unique ID) for most things in this standard,
    and would suggest that Record be changed and that it would have

    id : UID

    {readOnly, id}

    also adding

    {id}

    here... and make Project (which is the only thing I can see that needs a UUID)

    Project
    id : UUID

    {readOnly,id, redefines id}
  • Reported: SystemsModelingAPI 1.0b2 — Fri, 12 Apr 2024 13:21 GMT
  • Updated: Fri, 12 Apr 2024 19:30 GMT

Greater Scope

  • Status: open  
  • Source: Elparazim ( Mr. George Edward Roberts)
  • Summary:

    there is nothing in this standard specifically about SysML or KerML... which is good... I would suggest that the Scope be rewritten and the standard be called "Versioning" or something like that... there is greater use of this standard inside modeling (i.e. legacy modeling language can use this as well) as well as outside of modeling (i.e. anything that can serialized can use this standard to have versions of that serialization)... so would suggest the Scope be changed to say

    "The purpose of this standard is to specify the Versioning Application Programming Interface (API) and Services that provide standard services to access, navigate, and operate on serialized elements and in particular can be used for modeling languages."

  • Reported: SystemsModelingAPI 1.0b2 — Fri, 12 Apr 2024 13:11 GMT
  • Updated: Fri, 12 Apr 2024 19:29 GMT