Skip to content

Sign

sign Entity Type

What information requirement does this meet?

It is common to require information about how material things are identified, or named, using signs. Examples include:

  • The identifier that is used to unambiguously refer to something (e.g. VIN number, passport number, MAC address). This can allow formal documents, asset records and licensing conditions to refer to the thing that is allocated that identifier (either permanently, at least for much of its existence, or for part of it)

  • Keeping records of names, nicknames, spelling differences of people, other physical items and activities (such as projects).

  • Having indexes of part identifers, glossaries, records of product & product family names, etc.

  • ...

The sign model pattern can be crucial in keeping track of anything that there is an information requirement about. It is important to note here that the unique identifier used as a key for data objects based on HQDM (such as in Magma Core) are nothing to do with the signs that are used to name & refer to the physical items that these data objects represent.

This sign pattern is one of the mode advanced HQDM data model patterns but it is based on the association pattern. The sign Entity Type is a whole-life individual for the period of the existence of an actual sign. representation_by_sign is an association between a state_of_sign and a community that recognises that sign in the context required (recognizing_language_community). Each of those states are participant_in representation_by_sign and represent some thing.

Types-Supertype Hierarchy

The Entity Type sign is a subtype of individual and state_of_sign. A representation_by_sign can be a member_of one or more class_of_representation. A representation_by_sign consists_of one or more sign states, each of which will be a member_of_kind of one or more role(1), and consists_of_ one or more recognizing_language_community. The sign and recognizing_language_community states that it consists_of all share the same period of time (the same temporal extent) that the representation_by_sign association exists for but the thing that it represents need not have any temporal overlap with the representation_by_sign.

  1. The inclusion of role in this description is a logical (& natural) consequence of the type inheritance in HQDM. However, despite being a entailment of the conceptual model, it isn't necessary to use it in implementation (every sign can be considered to be of the same kind). It won't feature in our worked examples.
graph TD
  state_of_physical_object(state_of_physical <br> _object)-->|supertype_of|state_of_ordinary_physical_object(state_of_ordinary <br> _physical_object);
  abstract_object(abstract_object)-->|supertype_of|Class(Class);
  class_of_state_of_physical_object(class_of_state_of <br> _physical_object)-->|supertype_of|class_of_state_of_ordinary_physical_object(class_of_state_of <br> _ordinary_physical_object);
  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);
  thing(thing)-->|supertype_of|spatio_temporal_extent(spatio_temporal <br> _extent);
  state_of_ordinary_physical_object(state_of_ordinary <br> _physical_object)-->|supertype_of|state_of_system(state_of_system);
  Class(Class)-->|supertype_of|class_of_spatio_temporal_extent(class_of_spatio <br> _temporal_extent);
  class_of_state_of_ordinary_physical_object(class_of_state_of <br> _ordinary_physical_object)-->|supertype_of|class_of_state_of_system(class_of_state_of <br> _system);
  class_of_state_of_ordinary_physical_object(class_of_state_of <br> _ordinary_physical_object)-->|supertype_of|class_of_ordinary_physical_object(class_of_ordinary <br> _physical_object);
  class_of_physical_object(class_of_physical <br> _object)-->|supertype_of|class_of_ordinary_physical_object(class_of_ordinary <br> _physical_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);
  state(state)-->|supertype_of|state_of_intentionally_constructed_object(state_of_intentionally <br> _constructed_object);
  spatio_temporal_extent(spatio_temporal <br> _extent)-->|supertype_of|state(state);
  state_of_system(state_of_system)-->|supertype_of|state_of_party(state_of_party);
  class_of_spatio_temporal_extent(class_of_spatio <br> _temporal_extent)-->|supertype_of|class_of_state(class_of_state);
  class_of_state(class_of_state)-->|supertype_of|class_of_state_of_intentionally_constructed_object(class_of_state_of <br> _intentionally_constructed_object);
  class_of_state_of_system(class_of_state_of <br> _system)-->|supertype_of|class_of_state_of_party(class_of_state_of <br> _party);
  class_of_ordinary_physical_object(class_of_ordinary <br> _physical_object)-->|supertype_of|class_of_system(class_of_system);
  class_of_state_of_system(class_of_state_of <br> _system)-->|supertype_of|class_of_system(class_of_system);
  class_of_ordinary_physical_object(class_of_ordinary <br> _physical_object)-->|supertype_of|kind_of_ordinary_physical_object(kind_of_ordinary <br> _physical_object);
  kind_of_physical_object(kind_of_physical <br> _object)-->|supertype_of|kind_of_ordinary_physical_object(kind_of_ordinary <br> _physical_object);
  class_of_individual(class_of_individual)-->|supertype_of|kind_of_individual(kind_of_individual);
  state_of_intentionally_constructed_object(state_of_intentionally <br> _constructed_object)-->|supertype_of|state_of_socially_constructed_object(state_of_socially <br> _constructed_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_association(state_of_association);
  state(state)-->|supertype_of|individual(individual);
  state_of_socially_constructed_object(state_of_socially <br> _constructed_object)-->|supertype_of|state_of_organization(state_of_organi <br> zation);
  state_of_party(state_of_party)-->|supertype_of|state_of_organization(state_of_organi <br> zation);
  class_of_state(class_of_state)-->|supertype_of|class_of_state_of_association(class_of_state_of <br> _association);
  class_of_state(class_of_state)-->|supertype_of|class_of_individual(class_of_individual);
  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_state_of_intentionally_constructed_object(class_of_state_of <br> _intentionally_constructed_object)-->|supertype_of|class_of_state_of_socially_constructed_object(class_of_state_of <br> _socially_constructed_object);
  class_of_state_of_party(class_of_state_of <br> _party)-->|supertype_of|class_of_party(class_of_party);
  class_of_system(class_of_system)-->|supertype_of|class_of_party(class_of_party);
  kind_of_ordinary_physical_object(kind_of_ordinary <br> _physical_object)-->|supertype_of|kind_of_system(kind_of_system);
  class_of_system(class_of_system)-->|supertype_of|kind_of_system(kind_of_system);
  class_of_state_of_socially_constructed_object(class_of_state_of <br> _socially_constructed_object)-->|supertype_of|class_of_state_of_organization(class_of_state_of <br> _organization);
  class_of_state_of_party(class_of_state_of <br> _party)-->|supertype_of|class_of_state_of_organization(class_of_state_of <br> _organization);
  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);
  state_of_socially_constructed_object(state_of_socially <br> _constructed_object)-->|supertype_of|socially_constructed_object(socially_constructed <br> _object);
  intentionally_constructed_object(intentionally_constructed <br> _object)-->|supertype_of|socially_constructed_object(socially_constructed <br> _object);
  state_of_physical_object(state_of_physical <br> _object)-->|supertype_of|participant(participant);
  state_of_socially_constructed_object(state_of_socially <br> _constructed_object)-->|supertype_of|state_of_sign(state_of_sign);
  state_of_association(state_of_association)-->|supertype_of|association(association);
  individual(individual)-->|supertype_of|association(association);
  state_of_organization(state_of_organi <br> zation)-->|supertype_of|state_of_language_community(state_of_language <br> _community);
  class_of_state_of_association(class_of_state_of <br> _association)-->|supertype_of|class_of_association(class_of_association);
  class_of_individual(class_of_individual)-->|supertype_of|class_of_association(class_of_association);
  class_of_intentionally_constructed_object(class_of_intentionally <br> _constructed_object)-->|supertype_of|class_of_socially_constructed_object(class_of_socially <br> _constructed_object);
  class_of_state_of_socially_constructed_object(class_of_state_of <br> _socially_constructed_object)-->|supertype_of|class_of_socially_constructed_object(class_of_socially <br> _constructed_object);
  class_of_state_of_socially_constructed_object(class_of_state_of <br> _socially_constructed_object)-->|supertype_of|class_of_state_of_sign(class_of_state_of <br> _sign);
  class_of_party(class_of_party)-->|supertype_of|kind_of_party(kind_of_party);
  kind_of_system(kind_of_system)-->|supertype_of|kind_of_party(kind_of_party);
  class_of_party(class_of_party)-->|supertype_of|class_of_organization(class_of_organi <br> zation);
  class_of_socially_constructed_object(class_of_socially <br> _constructed_object)-->|supertype_of|class_of_organization(class_of_organi <br> zation);
  class_of_state_of_organization(class_of_state_of <br> _organization)-->|supertype_of|class_of_organization(class_of_organi <br> zation);
  class_of_socially_constructed_object(class_of_socially <br> _constructed_object)-->|supertype_of|kind_of_socially_constructed_object(kind_of_socially <br> _constructed_object);
  kind_of_intentionally_constructed_object(kind_of_intentionally <br> _constructed_object)-->|supertype_of|kind_of_socially_constructed_object(kind_of_socially <br> _constructed_object);
  class_of_state_of_physical_object(class_of_state_of <br> _physical_object)-->|supertype_of|class_of_participant(class_of_participant);
  socially_constructed_object(socially_constructed <br> _object)-->|supertype_of|sign(sign);
  participant(participant)-->|supertype_of|sign(sign);
  state_of_sign(state_of_sign)-->|supertype_of|sign(sign);
  association(association)-->|supertype_of|representation_by_sign(representation_by <br> _sign);
  participant(participant)-->|supertype_of|recognizing_language_community(recognizing_language <br> _community);
  state_of_language_community(state_of_language <br> _community)-->|supertype_of|recognizing_language_community(recognizing_language <br> _community);
  class_of_association(class_of_association)-->|supertype_of|class_of_representation(class_of_repres <br> entation);
  class_of_socially_constructed_object(class_of_socially <br> _constructed_object)-->|supertype_of|class_of_sign(class_of_sign);
  class_of_state_of_sign(class_of_state_of <br> _sign)-->|supertype_of|class_of_sign(class_of_sign);
  kind_of_party(kind_of_party)-->|supertype_of|kind_of_organization(kind_of_organization);
  class_of_organization(class_of_organi <br> zation)-->|supertype_of|kind_of_organization(kind_of_organization);
  kind_of_socially_constructed_object(kind_of_socially <br> _constructed_object)-->|supertype_of|kind_of_organization(kind_of_organization);
  class_of_participant(class_of_participant)-->|supertype_of|role(role);
  style sign stroke-width:4px;
  style representation_by_sign stroke-width:4px;
  style recognizing_language_community stroke-width:4px;
  style class_of_representation stroke-width:4px;
  style class_of_sign stroke-width:4px;
  style kind_of_organization stroke-width:4px;
  style role stroke-width:4px;
  thing-->|supertype_of|abstract_object;

Spacetime Diagram

The following diagram illustrates the association of two states, each state being a temporal_part_of an individual X and Y respectively. The constituent states in this association all share the same temporal bounds. This examples will be implemented below to illustrate the general entity-relationship and data patterns resulting from it.

An association between a state of X and a state of Y

Data Object Block Diagrams

The block diagram below illustrates the data objects comprising the generic representation by sign shown on the space-time diagram above.

Data object block diagram of representation_by_sign between a sigm, recognizing language community and the thing being represented

Full data object block diagram

The diagram below shows additional data objects required to populate the generic representation_by_sign pattern in 'full'. The dotted line shows the represented relationship sowing that this representation_by_pattern HQDM class has this pattern as a surrogate for the thing being represented.

Full association between a state of X and a state of Y

Additional data objects could also be used, if required, based on the inheritance patterns within HQDM but this diagram shows the primary objects entailed by the HQDM model.

Implementation

The data objects shown in the diagram above have been implemented using MagmaCore in SignExample.java. The filtered node-edge graphs below correspond to the data objects and their relationships with each other to implement the sign and pattern HQDM pattern. The Example_RepresentationBySign and the participant objects named Example_Sign and Example_RecognizingLanguageCommunity are shown in the first node-edge graph.

graph LR
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"represents"|9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"member_of_"|05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"beginning"|7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"member_of_kind"|5fd1a40f-e6f1-49ea-a598-ff8175cd5d84(("patterns-rdl <br> 5fd1a40f-e6f1-49ea <br> -a598-ff8175cd5d84"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"consists_of_participant"|1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"consists_of_participant"|984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"data_EntityName"|Example_RepresentationBySign["Example_Represe <br> ntationBySign"];
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"ending"|03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"type"|representation_by_sign(["hqdm <br> representation_by_ <br> sign"]);
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"member_of_"|c34f92ce-2503-4ed2-a611-973356bb9fbd(("patterns-rdl <br> c34f92ce-2503-4ed2 <br> -a611-973356bb9fbd"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"beginning"|7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"participant_in"|a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"data_EntityName"|Example_Sign["Example_Sign"];
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"ending"|03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"type"|sign(["hqdm <br> sign"]);
  984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"beginning"|7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"));
  984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"member_of_kind"|062a0895-1f41-4880-bf19-08b7a51d68ea(("patterns-rdl <br> 062a0895-1f41-4880 <br> -bf19-08b7a51d68ea"));
  984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"data_EntityName"|Example_RecognizingLanguageCommunity["Example_Recogni <br> zingLanguageCommunity"];
  984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"ending"|03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"));
  984ee964-23ad-490e-b29c-618d254866bc(("patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"type"|recognizing_language_community(["hqdm <br> recognizing_langua <br> ge_community"]);
  9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"))--->|"beginning"|36c50105-9456-4dd3-8663-0dfe78218963(("patterns <br> 36c50105-9456-4dd3 <br> -8663-0dfe78218963"));
  9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"))--->|"member_of_kind"|e29305e3-dcb1-45ea-a380-b0f2ba01dd67(("patterns-rdl <br> e29305e3-dcb1-45ea <br> -a380-b0f2ba01dd67"));
  9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"))--->|"data_EntityName"|Example_individual_X["Example_individual <br> _X"];
  9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"))--->|"ending"|dbbc329d-7bab-4d82-8400-15445cc37339(("patterns <br> dbbc329d-7bab-4d82 <br> -8400-15445cc37339"));
  9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"))--->|"type"|individual(["hqdm <br> individual"]);
Extended node-edge graph

An extended node-edge graph showing some of the additional dependencies is shown next.

graph LR
  c34f92ce-2503-4ed2-a611-973356bb9fbd(("patterns-rdl <br> c34f92ce-2503-4ed2 <br> -a611-973356bb9fbd"))--->|"data_EntityName"|Pa773rN["P@773rN"];
  c34f92ce-2503-4ed2-a611-973356bb9fbd(("patterns-rdl <br> c34f92ce-2503-4ed2 <br> -a611-973356bb9fbd"))--->|"type"|pattern(["hqdm <br> pattern"]);
  062a0895-1f41-4880-bf19-08b7a51d68ea(("patterns-rdl <br> 062a0895-1f41-4880 <br> -bf19-08b7a51d68ea"))--->|"data_EntityName"|Kind_of_recognizing_language_community_for_sign_examples["Kind_of_recognizing <br> _language_community_for_sign_examples"];
  062a0895-1f41-4880-bf19-08b7a51d68ea(("patterns-rdl <br> 062a0895-1f41-4880 <br> -bf19-08b7a51d68ea"))--->|"type"|role(["hqdm <br> role"]);
  7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"))--->|"member_of"|ffce7cdf-8496-4842-93cb-88fa8382893c(("patterns-rdl <br> ffce7cdf-8496-4842 <br> -93cb-88fa8382893c"));
  7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"))--->|"data_EntityName"|ts1["ts1"];
  7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"))--->|"type"|event(["hqdm <br> event"]);
  03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"))--->|"member_of"|ffce7cdf-8496-4842-93cb-88fa8382893c(("patterns-rdl <br> ffce7cdf-8496-4842 <br> -93cb-88fa8382893c"));
  03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"))--->|"data_EntityName"|ts2["ts2"];
  03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"))--->|"type"|event(["hqdm <br> event"]);
  984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"beginning"|7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"));
  984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"member_of_kind"|062a0895-1f41-4880-bf19-08b7a51d68ea(("patterns-rdl <br> 062a0895-1f41-4880 <br> -bf19-08b7a51d68ea"));
  984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"data_EntityName"|Example_RecognizingLanguageCommunity["Example_Recogni <br> zingLanguageCommunity"];
  984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"ending"|03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"));
  984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"))--->|"type"|recognizing_language_community(["hqdm <br> recognizing_langua <br> ge_community"]);
  05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"))--->|"consists_of_by_class"|c34f92ce-2503-4ed2-a611-973356bb9fbd(("patterns-rdl <br> c34f92ce-2503-4ed2 <br> -a611-973356bb9fbd"));
  05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"))--->|"consists_of_in_members"|984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"));
  05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"))--->|"data_EntityName"|Representation_by_pattern_class_for_sign_examples["Representation_by <br> _pattern_class_for_sign_examples"];
  05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"))--->|"represented"|9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"));
  05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"))--->|"type"|representation_by_pattern(["hqdm <br> representation_by_ <br> pattern"]);
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"represents"|9cd233dd-2831-427c-a508-80b6ddfa015a(("<b> patterns <br> 9cd233dd-2831-427c <br> -a508-80b6ddfa015a"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"member_of_"|05e75a89-b811-4cef-8e5e-c1ef7b509597(("patterns-rdl <br> 05e75a89-b811-4cef <br> -8e5e-c1ef7b509597"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"beginning"|7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"member_of_kind"|5fd1a40f-e6f1-49ea-a598-ff8175cd5d84(("patterns-rdl <br> 5fd1a40f-e6f1-49ea <br> -a598-ff8175cd5d84"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"consists_of_participant"|1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"consists_of_participant"|984ee964-23ad-490e-b29c-618d254866bc(("<b> patterns <br> 984ee964-23ad-490e <br> -b29c-618d254866bc"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"data_EntityName"|Example_RepresentationBySign["Example_Represe <br> ntationBySign"];
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"ending"|03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"));
  a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"))--->|"type"|representation_by_sign(["hqdm <br> representation_by_ <br> sign"]);
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"member_of_"|c34f92ce-2503-4ed2-a611-973356bb9fbd(("patterns-rdl <br> c34f92ce-2503-4ed2 <br> -a611-973356bb9fbd"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"beginning"|7e37c978-be4c-4ff0-b14f-5343191e4be9(("patterns <br> 7e37c978-be4c-4ff0 <br> -b14f-5343191e4be9"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"part_of_possible_world"|aa4f2ebf-e408-4702-be85-bc7dc44fb60e(("patterns <br> aa4f2ebf-e408-4702 <br> -be85-bc7dc44fb60e"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"participant_in"|a2a9e241-c3c1-4b93-b90c-76318579e855(("<b> patterns-rdl <br> a2a9e241-c3c1-4b93 <br> -b90c-76318579e855"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"data_EntityName"|Example_Sign["Example_Sign"];
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"ending"|03cf827a-1b06-4ebd-8f28-5bbc22fa48cc(("patterns <br> 03cf827a-1b06-4ebd <br> -8f28-5bbc22fa48cc"));
  1af1f828-284b-47d4-9b4a-be95a5f48522(("<b> patterns <br> 1af1f828-284b-47d4 <br> -9b4a-be95a5f48522"))--->|"type"|sign(["hqdm <br> sign"]);
  5fd1a40f-e6f1-49ea-a598-ff8175cd5d84(("patterns-rdl <br> 5fd1a40f-e6f1-49ea <br> -a598-ff8175cd5d84"))--->|"data_EntityName"|KindOfAssociation_Kind_of_representation_by_sign_class_for_sign_examples["KindOfAssociation <br> _Kind_of_representation_by_sign_class_for_sign_examples"];
  5fd1a40f-e6f1-49ea-a598-ff8175cd5d84(("patterns-rdl <br> 5fd1a40f-e6f1-49ea <br> -a598-ff8175cd5d84"))--->|"type"|kind_of_association(["hqdm <br> kind_of_associatio <br> n"]);

These examples of sign also build on the individual examples data object examples, showing how data can be added to existing data that has been consistently generated using HQDM (with MagmaCore, in this case). The TURTLE dataset showing the data used to generate these node-edge graphs is shown in the tab below.

TURTLE
Association 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:a2a9e241-c3c1-4b93-b90c-76318579e855
        a                             hqdm:representation_by_sign ;
        patterns-rdl:record_created   "2024-01-20T19:00:13.735446613Z" ;
        patterns-rdl:record_creator   "HqdmPatternProject_User1" ;
        hqdm:beginning                patterns:7e37c978-be4c-4ff0-b14f-5343191e4be9 ;
        hqdm:consists_of_participant  patterns:984ee964-23ad-490e-b29c-618d254866bc , patterns:1af1f828-284b-47d4-9b4a-be95a5f48522 ;
        hqdm:data_EntityName          "Example_RepresentationBySign" ;
        hqdm:ending                   patterns:03cf827a-1b06-4ebd-8f28-5bbc22fa48cc ;
        hqdm:member_of_               patterns-rdl:05e75a89-b811-4cef-8e5e-c1ef7b509597 ;
        hqdm:member_of_kind           patterns-rdl:5fd1a40f-e6f1-49ea-a598-ff8175cd5d84 ;
        hqdm:part_of_possible_world   patterns:aa4f2ebf-e408-4702-be85-bc7dc44fb60e ;
        hqdm:represents               patterns:9cd233dd-2831-427c-a508-80b6ddfa015a .

patterns:984ee964-23ad-490e-b29c-618d254866bc
        a                            hqdm:recognizing_language_community ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.732880011Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:beginning               patterns:7e37c978-be4c-4ff0-b14f-5343191e4be9 ;
        hqdm:data_EntityName         "Example_RecognizingLanguageCommunity" ;
        hqdm:ending                  patterns:03cf827a-1b06-4ebd-8f28-5bbc22fa48cc ;
        hqdm:member_of_kind          patterns-rdl:062a0895-1f41-4880-bf19-08b7a51d68ea ;
        hqdm:part_of_possible_world  patterns:aa4f2ebf-e408-4702-be85-bc7dc44fb60e .

patterns-rdl:5fd1a40f-e6f1-49ea-a598-ff8175cd5d84
        a                            hqdm:kind_of_association ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.734823213Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "KindOfAssociation_Kind_of_representation_by_sign_class_for_sign_examples" .

patterns:1af1f828-284b-47d4-9b4a-be95a5f48522
        a                            hqdm:sign ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.736358914Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:beginning               patterns:7e37c978-be4c-4ff0-b14f-5343191e4be9 ;
        hqdm:data_EntityName         "Example_Sign" ;
        hqdm:ending                  patterns:03cf827a-1b06-4ebd-8f28-5bbc22fa48cc ;
        hqdm:member_of_              patterns-rdl:c34f92ce-2503-4ed2-a611-973356bb9fbd ;
        hqdm:part_of_possible_world  patterns:aa4f2ebf-e408-4702-be85-bc7dc44fb60e ;
        hqdm:participant_in          patterns-rdl:a2a9e241-c3c1-4b93-b90c-76318579e855 .

patterns:7e37c978-be4c-4ff0-b14f-5343191e4be9
        a                            hqdm:event ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.731980211Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "ts1" ;
        hqdm:member_of               patterns-rdl:ffce7cdf-8496-4842-93cb-88fa8382893c ;
        hqdm:part_of_possible_world  patterns:aa4f2ebf-e408-4702-be85-bc7dc44fb60e .

patterns:03cf827a-1b06-4ebd-8f28-5bbc22fa48cc
        a                            hqdm:event ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.732094111Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "ts2" ;
        hqdm:member_of               patterns-rdl:ffce7cdf-8496-4842-93cb-88fa8382893c ;
        hqdm:part_of_possible_world  patterns:aa4f2ebf-e408-4702-be85-bc7dc44fb60e .

patterns-rdl:05e75a89-b811-4cef-8e5e-c1ef7b509597
        a                            hqdm:representation_by_pattern ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.734179712Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:consists_of_by_class    patterns-rdl:c34f92ce-2503-4ed2-a611-973356bb9fbd ;
        hqdm:consists_of_in_members  patterns:984ee964-23ad-490e-b29c-618d254866bc ;
        hqdm:data_EntityName         "Representation_by_pattern_class_for_sign_examples" ;
        hqdm:represented             patterns:9cd233dd-2831-427c-a508-80b6ddfa015a .

patterns-rdl:062a0895-1f41-4880-bf19-08b7a51d68ea
        a                            hqdm:role ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.730080009Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "Kind_of_recognizing_language_community_for_sign_examples" .

patterns-rdl:c34f92ce-2503-4ed2-a611-973356bb9fbd
        a                            hqdm:pattern ;
        patterns-rdl:comment         "This_is_an_example_pattern_held_as_the_data_EntityName" ;
        patterns-rdl:record_created  "2024-01-20T19:00:13.729090408Z" ;
        patterns-rdl:record_creator  "HqdmPatternProject_User1" ;
        hqdm:data_EntityName         "P@773rN" .
Strategies for implementation of the representation_by_sign HQDM pattern

While HQDM is parsimonious with its entities and relationships there are some implementation choices that may make implementation easier depending on the application, its architecture and data storage facilities. Here are some suggestions:

  • Don't store the beginning and ending relationships for each association as they can be queried from the participant states that it consists_of.

  • If lots of a particular association sub-type need to be created and the set membership of each is the same, consider creating a subtype of association and map it to a storage schema that includes the participant states and their roles. This would be a mapping that could be mapped back to a full HQDM schema if/when required.

  • Sometimes the beginning or ending of an association isn't completely known (for example, it may still be in-place and the possible ending may be in the future). In this case only store the beginning or ending that is known (as long as one of them is known).

References

HQDM book references: 13.9, 17.45

Entity Types: sign, representation_by_sign, recognizing_language_community

MagmaCore (Java) reference: sign, representation_by_sign

Source code for this example is available here