-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
S100WG7 4.20/4.20A Primary Association between FeatureTypes #6
Comments
The above transcription of the email chain between February 12 and February 27 captures all the discussion to date. Since there has been no resolution, and since this affects only S-101, I propose adopting the interim solution proposed by Hugh in Edition 5.1. The solution can be carried out by updating the S-101 feature catalogue, which is needed anyway.
Then deal with updating the feature catalogue model later, for Edition 6.0. |
I think as a work around the proposal from Hugh is good. It works as long as the association don't have the same role at each side. For 6.0 we should change the model/Schema. |
Before we jump in with both feet on this we might want to consider the potential impact. Normally we write children out before parents (as this was the convention in S-57) however if we use this new pattern and the existing S-101 FC I think it will mean that parents and aggregation features would need to be written out before the children and component features. Or else we would need to swap most of the association role definitions in the S-101 FC. There is also the paper S-101PT9_2022_08.7_EN_Order_of_records_in_S-101_V1.pdf which defines that child features be written before parents and oppositely for update/delete records. |
If these are going to be in the 5.1 UML / schemas, we should resolve them soon.
Regarding S100WG 4.20, Hugh made a suggestion before WG7, which I am pasting below (blue text) with my annotations (red text).
@TDYCARHugh
I agree that the FC is missing some detail to ensure consistent 8211 encoding of associations.
Adding the inverse association information to every binding would repeat the information and leave it open for inconsistencies across the bindings.
[A] What if the role types and multiplicity were defined within the association class (also the list of possible feature types) instead of being repeated on each binding.
[B(1)] Also the first role listed in the Association class would be the primary role for use in 8211 encoding.
And the bindings could then be simplified to just identify the role and association class.
[B(2)] To give us something to use with the existing S-100 Ed 5.0.0 encoding we could leave the FC as it is and just identify in Part 10a that only the first role listed in the association class needs to be encoded in the 8211.
@rmalyankar
Alternatives:
[C] One alternative to [A] is to encode a navigability attribute. The FeatureAssociation in the example above would become:
and
[D] Another alternative to [A] is to put the navigability in the binding, making the featureBinding in the example as follows:
In all cases the encoding format specification or the product specification must state whether datasets encode both or only one, just as in UML the navigability is advisory (the encoding format or PS can make it mandatory for the format or product).
I think [B] works as-is, without changing the FC model - it just requires a statement in Part 10a and appropriate changes to the S-101 feature catalogue.
In both [C] and [D] the role types and multiplicity are defined in the association class as shown in the example.
Where the role types and multiplicity are encoded is, I think, a separate issue from how to designate which role the 8211 encoding must use).
Any further ideas about this?
@HolgerBothien
Hi all,
I am in favour of alternative D, adding an information in the binding that makes clear which association must be encoded in ISO8211 and which not.
Though, the term navigable has a different semantic the place to add a Boolean attribute to indicate whether the association should be encoded or not seems to be correct.
The name of that attribute can be discussed. I still think ‘primary’ is an option. The term isn’t used in UML, yes that’s true but this rather about encoding than about UML.
Changes to the FC model and schema would be minimal. If the attribute is required (that I would require) older catalogues are not longer compatible with the schema.
That’s why a new namespace URL is needed.
@DavidGrant-NIWC
@rmalyankar
Adding that attribute (be it "primary" or "isNavigable") to the binding instead of the definition of the association allows half the structure/equipment bindings to have the link encoded from structure to equipment and half from equipment to structure. In theory that is not wrong, but in practice...I don't think it would be good practice. At the least it would add extra work in checking the feature catalogue to check the directions are consistent.
I don't see why it should be mandatory at the S-100 level when only one or two products use it. It should be made mandatory (if necessary) at the product specification level, i.e., in S-101.
The text was updated successfully, but these errors were encountered: