Skip to content

Eagle Lunar Lander 'Whole-life' Individual

Instances of the whole-life individual, it's temporal parts, and HQDM dependencies generated by the IndividualExample are shown in this section.

Apollo-11 Example

Our Apollo-11 example will make use of the individual and it's temporal parts pattern repeatedly. To illustrate the pattern we will take a look at the individual object that represents the Lunar Lander Module - LM-5 used on that Mission. This will build on the introduction to parts. Firstly, the individual, it's kind and directly related objects (and properties) are shown below, with the identity of the instance of individual in bold. To put the diagram into words, the individual that is our example Lunar Module LM-5 is a member of the set "KindOfFunctionalSystem__Lunar_Lander" and part of one possible_world.

From this record we have no temporal information, which is unsatisfactory from an information management perspective; especially from a 4-dimensionalist perspective with the information missing about when it existed. One strategy could be to create beginning and ending events for this individual but we can't be sure of when it started, at least not without more detailed analysis of when and how it was manufactured, prepared and selected for the Apollo-11 mission. However, we do know that the LM-5 module comprised two principal parts; a decent stage and an ascent stage, together they constituted the LM-5 lander. We will explore this in more detail in later sections but we do know when LM-5 as a lander ceased to exist as a whole. The ascent module detached from the descent stage at 17:54:00 GMT on the 21 July 1969. At that point the LM-5 lander was no longer assembled as one, with the descent module remaining on the surface of the moon(1). The ascent stage took the crew back to the Command Module and may have subsequently orbited the moon a number of times (after being jettisoned at 23:41:31 GMT) and at some point crashing into the lunar surface(2).

  1. This is an example of a information quality decision. We could have cut corners and represented the LM-5 lander in less detail, with less specific information as a result, or we could have represented it in more detail (as we shall see in later sections). For the illustration of this pattern it was decided that this level of detail is sufficient.

  2. When, or even if, the ascent stage of LM-5 ceased to exist is open to speculation. See here for an example of such claims.

Basic composition of LM-5

The design of the LM-5 lander vehicle was in two parts, the Ascent Stage that housed the astronauts throughout and had the ascent engine and the Descent Stage that had the landing gear, decent engine and related parts. LM Vehicle

The overlap between the Ascent and Descent Stage boxes is due to the diagram perspective, they are separate stages that together comprise the lunar lander vehicle.

The Ascent Stage returned the crew to the Command Module orbiting the moon while the Decent Stage remained on the lunar surface.

An illustration of these states of the LM-5 Lander is shown below:

States of LM-5

The data object for the individual representing Lunar Lander LM-5 is shown below. There is no beginning event committed to it but there is a definite ending event (as discussed above).

However, in the example code we don't just create an individual object to represent the Lunar Lander LM-5. We have

graph LR
  a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f(("<b> patterns <br> a5a6ba71-b2bb-4ed5 <br> -b079-e7cab5dac94f"))--->|"member_of_kind"|e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c(("patterns-rdl <br> e7f02ac1-d9bd-4d5a <br> -b961-442fcfdcd93c"));
  a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f(("<b> patterns <br> a5a6ba71-b2bb-4ed5 <br> -b079-e7cab5dac94f"))--->|"part_of_possible_world"|bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"));
  a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f(("<b> patterns <br> a5a6ba71-b2bb-4ed5 <br> -b079-e7cab5dac94f"))--->|"data_EntityName"|Example_individual_that_is_Lunar_Module_Eagle_LM-5["Example_individual <br> _that_is_Lunar_Module_Eagle_LM-5"];
  a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f(("<b> patterns <br> a5a6ba71-b2bb-4ed5 <br> -b079-e7cab5dac94f"))--->|"ending"|3a3962dd-59f5-4a60-b8c7-d57509b1314f(("patterns <br> 3a3962dd-59f5-4a60 <br> -b8c7-d57509b1314f"));
  a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f(("<b> patterns <br> a5a6ba71-b2bb-4ed5 <br> -b079-e7cab5dac94f"))--->|"type"|functional_system(["hqdm <br> functional_system"]);
  e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c(("patterns-rdl <br> e7f02ac1-d9bd-4d5a <br> -b961-442fcfdcd93c"))--->|"data_EntityName"|KindOfFunctionalSystem__Lunar_Lander["KindOfFunctionalSystem <br> __Lunar_Lander"];
  e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c(("patterns-rdl <br> e7f02ac1-d9bd-4d5a <br> -b961-442fcfdcd93c"))--->|"type"|kind_of_functional_system(["hqdm <br> kind_of_functional <br> _system"]);
  e42236eb-5602-4897-a2e3-a373944e3de9(("patterns-rdl <br> e42236eb-5602-4897 <br> -a2e3-a373944e3de9"))--->|"data_EntityName"|ClassOfStateOfFunctionalSystem__State_Of_Lunar_Lander["ClassOfStateOfFunctionalSystem <br> __State_Of_Lunar_Lander"];
  e42236eb-5602-4897-a2e3-a373944e3de9(("patterns-rdl <br> e42236eb-5602-4897 <br> -a2e3-a373944e3de9"))--->|"part__of_by_class"|e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c(("patterns-rdl <br> e7f02ac1-d9bd-4d5a <br> -b961-442fcfdcd93c"));
  e42236eb-5602-4897-a2e3-a373944e3de9(("patterns-rdl <br> e42236eb-5602-4897 <br> -a2e3-a373944e3de9"))--->|"type"|class_of_state_of_functional_system(["hqdm <br> class_of_state_of_ <br> functional_system"]);
  924b75ea-4fc1-4b2a-b8a3-1d415dc71f94(("patterns-rdl <br> 924b75ea-4fc1-4b2a <br> -b8a3-1d415dc71f94"))--->|"data_EntityName"|ClassOfPossibleWorld_PatternExamples["ClassOfPossibleWorld <br> _PatternExamples"];
  924b75ea-4fc1-4b2a-b8a3-1d415dc71f94(("patterns-rdl <br> 924b75ea-4fc1-4b2a <br> -b8a3-1d415dc71f94"))--->|"type"|class_of_possible_world(["hqdm <br> class_of_possible_ <br> world"]);
  585c2993-cb10-49de-b336-41d5da2718dd(("patterns-rdl <br> 585c2993-cb10-49de <br> -b336-41d5da2718dd"))--->|"data_EntityName"|ClassOfPointInTime__ISO8601_DateTime["ClassOfPointInTime <br> __ISO8601_DateTime"];
  585c2993-cb10-49de-b336-41d5da2718dd(("patterns-rdl <br> 585c2993-cb10-49de <br> -b336-41d5da2718dd"))--->|"type"|class_of_point_in_time(["hqdm <br> class_of_point_in_ <br> time"]);
  bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"))--->|"member_of"|924b75ea-4fc1-4b2a-b8a3-1d415dc71f94(("patterns-rdl <br> 924b75ea-4fc1-4b2a <br> -b8a3-1d415dc71f94"));
  bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"))--->|"data_EntityName"|Possible_world_for_Apollo_pattern_examples["Possible_world_for <br> _Apollo_pattern_examples"];
  bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"))--->|"type"|possible_world(["hqdm <br> possible_world"]);
  134d2714-dbee-45b2-9ff9-dbd57129f949(("patterns <br> 134d2714-dbee-45b2 <br> -9ff9-dbd57129f949"))--->|"part_of_possible_world"|bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"));
  134d2714-dbee-45b2-9ff9-dbd57129f949(("patterns <br> 134d2714-dbee-45b2 <br> -9ff9-dbd57129f949"))--->|"member_of"|585c2993-cb10-49de-b336-41d5da2718dd(("patterns-rdl <br> 585c2993-cb10-49de <br> -b336-41d5da2718dd"));
  134d2714-dbee-45b2-9ff9-dbd57129f949(("patterns <br> 134d2714-dbee-45b2 <br> -9ff9-dbd57129f949"))--->|"data_EntityName"|1969-07-20T20:17:40["1969-07-20T20:17:40"];
  134d2714-dbee-45b2-9ff9-dbd57129f949(("patterns <br> 134d2714-dbee-45b2 <br> -9ff9-dbd57129f949"))--->|"type"|point_in_time(["hqdm <br> point_in_time"]);
  3a3962dd-59f5-4a60-b8c7-d57509b1314f(("patterns <br> 3a3962dd-59f5-4a60 <br> -b8c7-d57509b1314f"))--->|"part_of_possible_world"|bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"));
  3a3962dd-59f5-4a60-b8c7-d57509b1314f(("patterns <br> 3a3962dd-59f5-4a60 <br> -b8c7-d57509b1314f"))--->|"member_of"|585c2993-cb10-49de-b336-41d5da2718dd(("patterns-rdl <br> 585c2993-cb10-49de <br> -b336-41d5da2718dd"));
  3a3962dd-59f5-4a60-b8c7-d57509b1314f(("patterns <br> 3a3962dd-59f5-4a60 <br> -b8c7-d57509b1314f"))--->|"data_EntityName"|1969-07-21T17:54:01["1969-07-21T17:54:01"];
  3a3962dd-59f5-4a60-b8c7-d57509b1314f(("patterns <br> 3a3962dd-59f5-4a60 <br> -b8c7-d57509b1314f"))--->|"type"|point_in_time(["hqdm <br> point_in_time"]);
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"beginning"|134d2714-dbee-45b2-9ff9-dbd57129f949(("patterns <br> 134d2714-dbee-45b2 <br> -9ff9-dbd57129f949"));
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"part_of_possible_world"|bb4dcf61-3ea6-48fa-820e-4eb739ae6671(("patterns <br> bb4dcf61-3ea6-48fa <br> -820e-4eb739ae6671"));
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"temporal_part_of"|a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f(("<b> patterns <br> a5a6ba71-b2bb-4ed5 <br> -b079-e7cab5dac94f"));
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"member_of"|e42236eb-5602-4897-a2e3-a373944e3de9(("patterns-rdl <br> e42236eb-5602-4897 <br> -a2e3-a373944e3de9"));
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"data_EntityName"|Example_state_of_Lunar_Lander_Module_Eagle_LM-5["Example_state_of <br> _Lunar_Lander_Module_Eagle_LM-5"];
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"ending"|3a3962dd-59f5-4a60-b8c7-d57509b1314f(("patterns <br> 3a3962dd-59f5-4a60 <br> -b8c7-d57509b1314f"));
  e7b2866d-7667-4e3c-b829-1a23ae21f1c1(("patterns <br> e7b2866d-7667-4e3c <br> -b829-1a23ae21f1c1"))--->|"type"|state_of_functional_system(["hqdm <br> state_of_functiona <br> l_system"]);
TURTLE
Eagle Lander as Individual objects example in TURTLE
@prefix diag:         <https://apollo-protocol.github.io/ns/2023/diagram-editor/diagram#> .
@prefix hqdm:         <https://hqdmtop.github.io/hqdm#> .
@prefix patterns:     <https://github.com/ClimbingAl/code-for-hqdm-patterns/patterns#> .
@prefix patterns-rdl: <https://github.com/ClimbingAl/code-for-hqdm-patterns/patterns-rdl#> .

patterns-rdl:924b75ea-4fc1-4b2a-b8a3-1d415dc71f94
        a                            hqdm:class_of_possible_world ;
        patterns-rdl:comment         "Class_of_possible_world_for_pattern_examples" ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.043922476Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "ClassOfPossibleWorld_PatternExamples" .

patterns-rdl:e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c
        a                            hqdm:kind_of_functional_system ;
        patterns-rdl:comment         "Kind_of_functional_system_that_is_Lunar_Lander._Note_this_is_subclass_of_class_of_ordinary_functional_object." ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.042095611Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "KindOfFunctionalSystem__Lunar_Lander" .

patterns:bb4dcf61-3ea6-48fa-820e-4eb739ae6671
        a                            hqdm:possible_world ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.044043473Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "Possible_world_for_Apollo_pattern_examples" ;
        hqdm:member_of               patterns-rdl:924b75ea-4fc1-4b2a-b8a3-1d415dc71f94 .

patterns:a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f
        a                            hqdm:functional_system ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.044100972Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "Example_individual_that_is_Lunar_Module_Eagle_LM-5" ;
        hqdm:ending                  patterns:3a3962dd-59f5-4a60-b8c7-d57509b1314f ;
        hqdm:member_of_kind          patterns-rdl:e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c ;
        hqdm:part_of_possible_world  patterns:bb4dcf61-3ea6-48fa-820e-4eb739ae6671 .

patterns:3a3962dd-59f5-4a60-b8c7-d57509b1314f
        a                            hqdm:point_in_time ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.049182974Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "1969-07-21T17:54:01" ;
        hqdm:member_of               patterns-rdl:585c2993-cb10-49de-b336-41d5da2718dd ;
        hqdm:part_of_possible_world  patterns:bb4dcf61-3ea6-48fa-820e-4eb739ae6671 .

patterns:134d2714-dbee-45b2-9ff9-dbd57129f949
        a                            hqdm:point_in_time ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.048616285Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "1969-07-20T20:17:40" ;
        hqdm:member_of               patterns-rdl:585c2993-cb10-49de-b336-41d5da2718dd ;
        hqdm:part_of_possible_world  patterns:bb4dcf61-3ea6-48fa-820e-4eb739ae6671 .

patterns-rdl:585c2993-cb10-49de-b336-41d5da2718dd
        a                            hqdm:class_of_point_in_time ;
        patterns-rdl:comment         "Class_of_point_in_time_for_events_in_ISO_8601-1:2019_date-time_format" ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.043498584Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "ClassOfPointInTime__ISO8601_DateTime" .

patterns:e7b2866d-7667-4e3c-b829-1a23ae21f1c1
        a                            hqdm:state_of_functional_system ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.049305571Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:beginning               patterns:134d2714-dbee-45b2-9ff9-dbd57129f949 ;
        hqdm:data_EntityName         "Example_state_of_Lunar_Lander_Module_Eagle_LM-5" ;
        hqdm:ending                  patterns:3a3962dd-59f5-4a60-b8c7-d57509b1314f ;
        hqdm:member_of               patterns-rdl:e42236eb-5602-4897-a2e3-a373944e3de9 ;
        hqdm:part_of_possible_world  patterns:bb4dcf61-3ea6-48fa-820e-4eb739ae6671 ;
        hqdm:temporal_part_of        patterns:a5a6ba71-b2bb-4ed5-b079-e7cab5dac94f .

patterns-rdl:e42236eb-5602-4897-a2e3-a373944e3de9
        a                            hqdm:class_of_state_of_functional_system ;
        patterns-rdl:comment         "Class_of_state_of_functional_system_that_is_temporal_part_of_Lunar_Lander" ;
        patterns-rdl:record_created  "2024-01-20T19:00:12.042797398Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "ClassOfStateOfFunctionalSystem__State_Of_Lunar_Lander" ;
        hqdm:part__of_by_class       patterns-rdl:e7f02ac1-d9bd-4d5a-b961-442fcfdcd93c .
Types-Supertype Hierarchy
graph TD
  abstract_object(abstract_object)-->|supertype_of|Class(Class);
  thing(thing)-->|supertype_of|spatio_temporal_extent(spatio_temporal <br> _extent);
  class_of_state(class_of_state)-->|supertype_of|class_of_individual(class_of_individual);
  Class(Class)-->|supertype_of|class_of_spatio_temporal_extent(class_of_spatio <br> _temporal_extent);
  state(state)-->|supertype_of|individual(individual);
  spatio_temporal_extent(spatio_temporal <br> _extent)-->|supertype_of|state(state);
  class_of_individual(class_of_individual)-->|supertype_of|kind_of_individual(kind_of_individual);
  class_of_state_of_physical_object(class_of_state_of <br> _physical_object)-->|supertype_of|class_of_physical_object(class_of_physical <br> _object);
  class_of_individual(class_of_individual)-->|supertype_of|class_of_physical_object(class_of_physical <br> _object);
  class_of_individual(class_of_individual)-->|supertype_of|class_of_intentionally_constructed_object(class_of_intentionally <br> _constructed_object);
  class_of_state_of_intentionally_constructed_object(class_of_state_of <br> _intentionally_constructed_object)-->|supertype_of|class_of_intentionally_constructed_object(class_of_intentionally <br> _constructed_object);
  class_of_spatio_temporal_extent(class_of_spatio <br> _temporal_extent)-->|supertype_of|class_of_state(class_of_state);
  state_of_physical_object(state_of_physical <br> _object)-->|supertype_of|physical_object(physical_object);
  individual(individual)-->|supertype_of|physical_object(physical_object);
  individual(individual)-->|supertype_of|intentionally_constructed_object(intentionally_constructed <br> _object);
  state_of_intentionally_constructed_object(state_of_intentionally <br> _constructed_object)-->|supertype_of|intentionally_constructed_object(intentionally_constructed <br> _object);
  state(state)-->|supertype_of|state_of_physical_object(state_of_physical <br> _object);
  state(state)-->|supertype_of|state_of_intentionally_constructed_object(state_of_intentionally <br> _constructed_object);
  kind_of_individual(kind_of_individual)-->|supertype_of|kind_of_physical_object(kind_of_physical <br> _object);
  class_of_physical_object(class_of_physical <br> _object)-->|supertype_of|kind_of_physical_object(kind_of_physical <br> _object);
  class_of_state_of_functional_object(class_of_state_of <br> _functional_object)-->|supertype_of|class_of_functional_object(class_of_functional <br> _object);
  class_of_intentionally_constructed_object(class_of_intentionally <br> _constructed_object)-->|supertype_of|class_of_functional_object(class_of_functional <br> _object);
  class_of_physical_object(class_of_physical <br> _object)-->|supertype_of|class_of_functional_object(class_of_functional <br> _object);
  class_of_intentionally_constructed_object(class_of_intentionally <br> _constructed_object)-->|supertype_of|kind_of_intentionally_constructed_object(kind_of_intentionally <br> _constructed_object);
  kind_of_individual(kind_of_individual)-->|supertype_of|kind_of_intentionally_constructed_object(kind_of_intentionally <br> _constructed_object);
  class_of_state(class_of_state)-->|supertype_of|class_of_state_of_physical_object(class_of_state_of <br> _physical_object);
  class_of_state(class_of_state)-->|supertype_of|class_of_state_of_intentionally_constructed_object(class_of_state_of <br> _intentionally_constructed_object);
  state_of_functional_object(state_of_functional <br> _object)-->|supertype_of|functional_object(functional_object);
  physical_object(physical_object)-->|supertype_of|functional_object(functional_object);
  intentionally_constructed_object(intentionally_constructed <br> _object)-->|supertype_of|functional_object(functional_object);
  state_of_physical_object(state_of_physical <br> _object)-->|supertype_of|state_of_functional_object(state_of_functional <br> _object);
  state_of_intentionally_constructed_object(state_of_intentionally <br> _constructed_object)-->|supertype_of|state_of_functional_object(state_of_functional <br> _object);
  kind_of_physical_object(kind_of_physical <br> _object)-->|supertype_of|kind_of_functional_object(kind_of_functional <br> _object);
  class_of_functional_object(class_of_functional <br> _object)-->|supertype_of|kind_of_functional_object(kind_of_functional <br> _object);
  kind_of_intentionally_constructed_object(kind_of_intentionally <br> _constructed_object)-->|supertype_of|kind_of_functional_object(kind_of_functional <br> _object);
  class_of_state_of_physical_object(class_of_state_of <br> _physical_object)-->|supertype_of|class_of_state_of_functional_object(class_of_state_of <br> _functional_object);
  class_of_state_of_intentionally_constructed_object(class_of_state_of <br> _intentionally_constructed_object)-->|supertype_of|class_of_state_of_functional_object(class_of_state_of <br> _functional_object);
  style functional_object stroke-width:4px;
  style state_of_functional_object stroke-width:4px;
  style kind_of_functional_object stroke-width:4px;
  style class_of_state_of_functional_object stroke-width:4px;
  thing-->|supertype_of|abstract_object;

References

HQDM book references: 11.2, 17.6, 17.26

MagmaCore (Java) reference: functional_object, state_of_functional_object

Source code for this example is available here