Skip to content

Commit

Permalink
Update 06-other-clauses.adoc
Browse files Browse the repository at this point in the history
Updated the Mermaid Class diagram to avoid the "Diamond Inheritance" problem
  • Loading branch information
chris-little authored Jul 19, 2023
1 parent 011469b commit 5904c36
Showing 1 changed file with 28 additions and 44 deletions.
72 changes: 28 additions & 44 deletions abstract-specification/sections/06-other-clauses.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -39,76 +39,60 @@ This Mermaid diagram should be converted to PlantUML for Metanorma, by replacing
the Mermaid container with the following.
====

[source,plantuml]
----
`[plantuml]
@startuml
.
.
@enduml
----
@enduml`

[source,mermaid]
----
```mermaid
classDiagram
class ReferenceSystem {
<<Abstract Class>>
Dimension 1..*
ApplicableLocationTimeOrDomain 1
AuthoritativeOwnerOrDefiningBody 1
}
class SpatialReferenceSystem {
Dimension 1..*
class SpatialReferenceSystem {
<<Abstract Class>>
Dimension 1..3
ApplicableLocationTimeOrDomain 1
AuthoritativeOwnerOrDefiningBody 1
}
class TemporalReferenceSystem {
class TemporalReferenceSystem {
<<Abstract Class>>
Dimension 1
ApplicableLocationTimeOrDomain 1
AuthoritativeOwnerOrDefiningBody 1
}
ReferenceSystem "1" <|-- "1..*" SpatialReferenceSystem
ReferenceSystem "1" <|-- "1..*" TemporalReferenceSystem
TemporalReferenceSystem "0..1" <|-- "1" TemporalCoordinateReferenceSystem
TemporalReferenceSystem "0..1" <|-- "1" Calendar
TemporalReferenceSystem "0..1" <|-- "1" OrdinalTemporalReferenceSystem
note for ReferenceSystem "Note: Has at least one of:\nSpatialReferenceSystem, or \nTemporalReferenceSystem"
ReferenceSystem "1" o-- "0..*" SpatialReferenceSystem : has a
ReferenceSystem "1" o-- "0..*" TemporalReferenceSystem : has a
class TemporalCoordinateReferenceSystem {
NameOrId
OptionalEpochDefinedInSomeOtherTemporalReferenceSystem
OptionalNameForEachTick
OptionalEndTimeOrCount
OptionalLocation
OptionalNotation
}
Dimension 1
ApplicableLocationTimeOrDomain 1
}
class Calendar {
Dimension 1
ApplicableLocationTimeOrDomain 1
}
class OrdinalTemporalReferenceSystem {
Dimension 1
ApplicableLocationTimeOrDomain 1
}
note for TemporalReferenceSystem "Note: Consists of one only of:\nTemporalCoordinateReferenceSystem,\nCalendar, or \nOrdinalTemporalReferenceSystem"
TemporalReferenceSystem "0..1" o-- "1" TemporalCoordinateReferenceSystem : consists of
TemporalReferenceSystem "0..1" o-- "1" Calendar : consists of
TemporalReferenceSystem "0..1" o-- "1" OrdinalTemporalReferenceSystem: consists of
TemporalCoordinateReferenceSystem "1" o-- "1" Timescale
TemporalCoordinateReferenceSystem "1" o-- "1" Epoch
TemporalCoordinateReferenceSystem "1" --> "1..*" Notation
class Calendar {
NameOrId
AstronomicalAttribute [e.g. solar, sidereal, lunar, luni-solar]
PredictiveAttribute [e.g. observed or calculated]
EpochOrStartTime
OptionalEndTime
OptionalLocationOrRegionOfApplicability
ConstituentUnitsOrClocksAndCountsOrTimescales
OptionalNotation
}
Calendar "1" o-- "0..1" Epoch
Calendar "1" o-- "1..*" Timescale
Calendar "1" o-- "1" Algorithm
Calendar "1" --> "1..*" Notation
class OrdinalTemporalReferenceSystem {
NameOrId
ListedOrEnumeratedSequenceOfEvents
FirstAndLastEvents
OptionalEpochDefinedInSomeOtherTemporalReferenceSystem
OptionalLocationOrRegionOfApplicability
OptionalNotations
}
OrdinalTemporalReferenceSystem "1" o-- "0..1" Epoch
OrdinalTemporalReferenceSystem "1" o-- "2..*" Event
OrdinalTemporalReferenceSystem "1" --> "1..*" Notation
Timescale "1" o-- "1" Clock
----

```

== Temporal regimes

Expand Down

0 comments on commit 5904c36

Please sign in to comment.