Geonovum / uml2json

Best Practise for OGC - UML to JSON Encoding Rules
https://geonovum.github.io/uml2json/document.html
0 stars 1 forks source link

7.3.1 - pja - <<schema>> and <<applicationSchema>> #12

Closed PalmJanssen closed 1 year ago

PalmJanssen commented 1 year ago

Is it really necessary to differentiate between a package using 19109 rules \<\> and a package not containing feature types \<\>? And if so, what are then the rules for a not 19109 schema?

jechterhoff commented 1 year ago

(Abstract) Schemas defined by ISO standards often use stereotype <<Schema>>. A <<Schema>> does not use classes with stereotype <<FeatureType>>, whereas an <<ApplicationSchema>> does. As mentioned in table 2, abstract schemas and application schemas are on different levels of abstraction.

The question should rather be, what rules exist for an ISO 19109 <<ApplicationSchema>>. They are defined in ISO 19109:2015, chapter 8.

PalmJanssen commented 1 year ago

aha I got the impresssion that a <<schema>> was also implementable but did not contain geographic objecttypes (feature types).

This is also expressed in this sentence: 'The stereotype <<schema>> has been introduced for packages that should be treated like application schemas, but do not contain feature types.'

I would also say that if an UML model is not meant to be implementable and only abstract then encoding rules ar not relevant.

jechterhoff commented 1 year ago

I would also say that if an UML model is not meant to be implementable and only abstract then encoding rules ar not relevant.

That is true, especially for schemas like ISO 19107. For the schema from ISO 19115, it would be a different matter.

PalmJanssen commented 1 year ago

That is true, especially for schemas like ISO 19107. For the schema from ISO 19115, it would be a different matter.

Why is that? ISO19115 has also a XML schema. And does not contain geometry (for many objecttypes.)

My point is that I think that reserving the stereotype <<ApplicationSchema>> only for schema's that include geometry is not a good idea.

jechterhoff commented 1 year ago

Who said that stereotype <<ApplicationSchema>> should only be used for schemas that include geometry?

What I meant to say is that while ISO 19115 is not defined as an <<ApplicationSchema>>, there indeed is a desire to create implementation schemas for it. The XML Schema is one example. A JSON Schema would be another example (not yet existing). So for the ISO 19115 schema, stereotype <<Schema>> would be appropriate, as well as its encoding as JSON Schema.

In contrast, the UML schema defined by ISO 19107 is not intended for direct encoding, and really should be considered to be abstract / on a different level of abstraction.

PalmJanssen commented 1 year ago

Who said that stereotype <<ApplicationSchema>> should only be used for schemas that include geometry?

This phrase made me think that way: 'The stereotype <<Schema>> has been introduced for packages that should be treated like application schemas, but do not contain feature types'.

What I understand now is that <<ApplicationSchema>> is a specific 19109 concept, with 19109 rules. So an <<ApplicationSchema>> model is modelled conforming to 19109. With or without geometries. The question is then what a <<Schema>> is other than a model not according to 19109

jechterhoff commented 1 year ago

I guess that you could say that a <<Schema>> is really just that: not an application schema according to ISO 19109 rules. The schema then does not use stereotype <<FeatureType>>. Otherwise, the stereotype of the schema package should be <<ApplicationSchema>> and not <<Schema>>.

In some UML models, you also do not find stereotype <<Schema>> on ISO packages. That is ok, I guess. The stereotype is needed, however, when tagged values need to be defined on the schema package, for example for encoding purposes.

cportele commented 1 year ago

AFAICT ISO/TC 211 has never defined or discussed the <<Schema>> stereotype (neither in a standard nor in the UML Best Practices).

I suspect that it is attached to some packages in the Harmonized Model to be able to use ShapeChange. The stereotype was added to the ShapeChange UML profile in order to be able to identify packages that are suitable for deriving XML Schemas etc. and adding tagged values relevant for the encoding, e.g., the XML namespace. For the same reasons we will need the stereotype (or some stereotype with another name) in our UML profile , too.

jechterhoff commented 1 year ago

Decision:

Instead of.

The stereotype <<Schema>> has been introduced for packages that should be treated like application schemas, but do not contain feature types.,

use:

The stereotype <<Schema>> has been introduced for schemas that conform to ISO 19103, but do not follow the rules for application schemas from ISO 19109, but still need a stereotype on the schema package for adding tagged values.