Class: Glossarist::V3::PartitiveMember

Inherits:
Lutaml::Model::Serializable
  • Object
show all
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

Returns:

  • (Boolean)


47
48
49
# File 'lib/glossarist/v3/partitive_member.rb', line 47

def compulsory?
  multiplicity == "compulsory"
end

#delimiting?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/glossarist/v3/partitive_member.rb', line 55

def delimiting?
  is_delimiting == true
end

#optional?Boolean

Returns:

  • (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