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
.
- 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 (everysign
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.
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.
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.
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
@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
andending
relationships for eachassociation
as they can be queried from theparticipant
states that itconsists_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 ofassociation
and map it to a storage schema that includes theparticipant
states and theirrole
s. This would be a mapping that could be mapped back to a full HQDM schema if/when required. -
Sometimes the
beginning
orending
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 thebeginning
orending
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