Class: Glossarist::V3::PartitiveMember
- Inherits:
-
Lutaml::Model::Serializable
- Object
- Lutaml::Model::Serializable
- Glossarist::V3::PartitiveMember
- Defined in:
- lib/glossarist/v3/partitive_member.rb
Overview
PartitiveMember — one member of a PartitiveRelation, carrying a ConceptRef to the partitive concept plus ISO 704:2022 multiplicity and delimiting metadata.
ISO 704:2022 partitive member notation:
multiplicity (diagram line notation):
compulsory — 1 solid line (must exist in every instance)
optional — 1 dashed line (exists in some instances only)
compulsory_multiple — 2 solid lines (multiple must exist)
optional_multiple — 2 dashed lines (multiple may exist)
at_least_one — 1 solid + 1 dashed line (≥1 must exist)
is_delimiting (orthogonal, bold 3x-width line in diagram):
A delimiting part behaves like a delimiting characteristic:
it distinguishes the comprehensive from coordinate concepts.
Example (ISO 704 §5.5.4.2.2): for "optomechanical mouse",
the delimiting parts are mouse ball, x/y-axis rollers,
infrared emitter/sensor — they distinguish it from
"mechanical mouse" and "optical mouse". Mouse button is
NOT delimiting (all computer mice have buttons).
Constant Summary collapse
- DEFAULT_MULTIPLICITY =
"compulsory"
Instance Method Summary collapse
Instance Method Details
#compulsory? ⇒ Boolean
47 48 49 |
# File 'lib/glossarist/v3/partitive_member.rb', line 47 def compulsory? multiplicity == "compulsory" end |
#delimiting? ⇒ Boolean
55 56 57 |
# File 'lib/glossarist/v3/partitive_member.rb', line 55 def delimiting? is_delimiting == true end |
#optional? ⇒ Boolean
51 52 53 |
# File 'lib/glossarist/v3/partitive_member.rb', line 51 def optional? multiplicity == "optional" end |
#validate! ⇒ Object
41 42 43 44 45 |
# File 'lib/glossarist/v3/partitive_member.rb', line 41 def validate! validate_ref! validate_multiplicity! self end |