diff --git a/.gitignore b/.gitignore
index 81695d52..6e78c3e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+*.png
.idea
.vscode
.project
diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml
index 38b4d6a7..5d3ef2d2 100644
--- a/checkstyle-suppressions.xml
+++ b/checkstyle-suppressions.xml
@@ -2,19 +2,20 @@
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/checkstyles.xml b/checkstyles.xml
index 42ef640b..b951029e 100644
--- a/checkstyles.xml
+++ b/checkstyles.xml
@@ -39,7 +39,7 @@
-
+
@@ -224,7 +224,7 @@
-
+
diff --git a/core/src/main/java/uk/gov/gchq/magmacore/service/MagmaCoreService.java b/core/src/main/java/uk/gov/gchq/magmacore/service/MagmaCoreService.java
index 580fedb3..12f4bf14 100644
--- a/core/src/main/java/uk/gov/gchq/magmacore/service/MagmaCoreService.java
+++ b/core/src/main/java/uk/gov/gchq/magmacore/service/MagmaCoreService.java
@@ -211,7 +211,6 @@ public List extends Thing> findBySignValue(
*
* @param community The {@link RecognizingLanguageCommunity} that recognizes
* the sign value.
- * @param pattern The {@link Pattern} the sign conforms to.
* @param value {@link String} the partial sign value to look for.
* @param pointInTime {@link PointInTime} the point in time we are interested
* in.
@@ -221,7 +220,6 @@ public List extends Thing> findBySignValue(
*/
public List extends Thing> findByPartialSignValue(
final RecognizingLanguageCommunity community,
- final Pattern pattern,
final String value,
final PointInTime pointInTime) throws MagmaCoreException {
@@ -235,8 +233,7 @@ public List extends Thing> findByPartialSignValue(
final QueryResultList queryResultList = database
.executeQuery(String.format(MagmaCoreServiceQueries.FIND_BY_PARTIAL_SIGN_VALUE_CASE_INSENSITIVE_QUERY,
value,
- community.getId(),
- pattern.getId()));
+ community.getId()));
// Filter by the pointInTime
final QueryResultList queryResults = filterByPointInTime(when, queryResultList);
@@ -300,9 +297,11 @@ public List extends Thing> findByTypeKindAndSignPattern(
final Instant when = Instant.parse(pointInTimeValue);
+ final String queryString = String.format(MagmaCoreServiceQueries.FIND_OBJECTS_BY_TYPE_AND_SIGN_PATTERN,
+ type, kind, pattern, type, kind, pattern);
+
final QueryResultList queryResultList = database
- .executeQuery(String.format(MagmaCoreServiceQueries.FIND_OBJECTS_BY_TYPE_AND_SIGN_PATTERN,
- type, kind, pattern, type, kind, pattern));
+ .executeQuery(queryString);
// Filter by the pointInTime
final QueryResultList queryResults = filterByPointInTime(when, queryResultList);
@@ -669,6 +668,7 @@ private static SignPatternDto toSignPatternDto(final QueryResult qr) {
* @return {@link Thing} that was found.
* @throws RuntimeException If no or multiple results were found.
*/
+ @SuppressWarnings("unchecked")
public T findByEntityName(final String entityName) {
final List searchResult = findByPredicateIriAndValue(HQDM.ENTITY_NAME, entityName);
@@ -688,6 +688,7 @@ public T findByEntityName(final String entityName) {
* @param predicate the predicate {@link IRI}
* @return a List of {@link Thing} that were found.
*/
+ @SuppressWarnings("unchecked")
public List findByPredicateIriOnly(final IRI predicate) {
return (List) database.findByPredicateIriOnly(predicate);
}
@@ -700,6 +701,7 @@ public List findByPredicateIriOnly(final IRI predicate) {
* @param value The value of the predicate.
* @return a List of {@link Thing} that were found.
*/
+ @SuppressWarnings("unchecked")
public List findByPredicateIriAndValue(final IRI predicate, final Object value) {
return (List) database.findByPredicateIriAndValue(predicate, value);
}
diff --git a/core/src/main/java/uk/gov/gchq/magmacore/service/sparql/MagmaCoreServiceQueries.java b/core/src/main/java/uk/gov/gchq/magmacore/service/sparql/MagmaCoreServiceQueries.java
index 4a0e387d..ca00655a 100644
--- a/core/src/main/java/uk/gov/gchq/magmacore/service/sparql/MagmaCoreServiceQueries.java
+++ b/core/src/main/java/uk/gov/gchq/magmacore/service/sparql/MagmaCoreServiceQueries.java
@@ -33,32 +33,23 @@ public class MagmaCoreServiceQueries {
*
*/
public static final String FIND_BY_SIGN_VALUE_QUERY = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND("%s" as ?signvalue)
+ BIND("%s" as ?patternValue)
BIND(<%s> as ?rlc)
- BIND(<%s> as ?pattern)
-
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?s.
- ?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND(<%s> as ?patternIri)
+ ?patternIri skos:definition ?patternValue;
+ a hqdm:Pattern.
+ ?repByPattern hqdm:consistsOfByClass ?patternIri;
+ hqdm:represented ?s;
+ hqdm:consistsOfInMembers ?rlc.
+ ?s ?p ?o.
}
""";
@@ -76,7 +67,8 @@ public class MagmaCoreServiceQueries {
*
*/
public static final String FIND_BY_PARTIAL_SIGN_VALUE_CASE_INSENSITIVE_QUERY = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
@@ -84,25 +76,15 @@ public class MagmaCoreServiceQueries {
WHERE {
BIND("%s" as ?text)
BIND(<%s> as ?rlc)
- BIND(<%s> as ?pattern)
-
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signvalue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?s.
- ?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ ?patternIri skos:definition ?patternValue;
+ a hqdm:Pattern.
+ ?repByPattern hqdm:consistsOfByClass ?patternIri;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?s.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+
+ ?s ?p ?o.
}
""";
@@ -115,7 +97,8 @@ public class MagmaCoreServiceQueries {
*
*/
public static final String FIND_PARTICIPANT_DETAILS_QUERY = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
PREFIX xsd:
@@ -128,20 +111,20 @@ public class MagmaCoreServiceQueries {
BIND( <%s> as ?ind2)
BIND( <%s> as ?kind)
- ?s hqdm:temporal_part_of ?ind1;
- hqdm:participant_in ?assoc1;
+ ?s hqdm:temporalPartOf ?ind1;
+ hqdm:participantIn ?assoc1;
?p ?o.
- ?i2stat hqdm:temporal_part_of ?ind2;
- hqdm:participant_in ?assoc1;
+ ?i2stat hqdm:temporalPartOf ?ind2;
+ hqdm:participantIn ?assoc1;
?i2statp ?i2stato.
- ?assoc1 hqdm:member_of_kind ?kind.
+ ?assoc1 hqdm:memberOfKind ?kind.
OPTIONAL {
?assoc1 hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start
+ ?begin skos:prefLabel ?start
}
OPTIONAL {
?assoc1 hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish
+ ?end skos:prefLabel ?finish
}
}
}
@@ -153,20 +136,20 @@ public class MagmaCoreServiceQueries {
BIND( <%s> as ?ind2)
BIND( <%s> as ?kind)
- ?i2stat hqdm:temporal_part_of ?ind1;
- hqdm:participant_in ?assoc1;
+ ?i2stat hqdm:temporalPartOf ?ind1;
+ hqdm:participantIn ?assoc1;
?i2statp ?i2stato.
- ?s hqdm:temporal_part_of ?ind2;
- hqdm:participant_in ?assoc1;
+ ?s hqdm:temporalPartOf ?ind2;
+ hqdm:participantIn ?assoc1;
?p ?o.
- ?assoc1 hqdm:member_of_kind ?kind.
+ ?assoc1 hqdm:memberOfKind ?kind.
OPTIONAL {
?assoc1 hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start
+ ?begin skos:prefLabel ?start
}
OPTIONAL {
?assoc1 hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
+ ?end skos:prefLabel ?finish.
}
}
}
@@ -186,11 +169,12 @@ public class MagmaCoreServiceQueries {
*
*
*
- * The result includes `hqdm:value_` predicates for the signValues.
+ * The result includes `skos:definition` predicates for the signValues.
*
*/
public static final String FIND_OBJECTS_BY_TYPE_CLASS_AND_SIGN_PATTERN = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
select distinct *
@@ -198,61 +182,39 @@ public class MagmaCoreServiceQueries {
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND(<%s> as ?type)
- BIND(<%s> as ?kind)
- BIND(<%s> as ?pattern)
-
- ?s a ?type;
- hqdm:member_of ?kind;
- ?p ?o.
- ?st hqdm:temporal_part_of ?s.
- ?repBySign hqdm:represents ?st.
- ?signst hqdm:participant_in ?repBySign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
-
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish
- }
+ BIND(<%s> as ?typeIri)
+ BIND(<%s> as ?kindIri)
+ BIND(<%s> as ?patternIri)
+ ?s a ?typeIri;
+ hqdm:memberOf ?kindIri;
+ ?p ?o.
+ ?st hqdm:temporalPartOf ?s.
+ ?repByPattern hqdm:represented ?st;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfByClass ?patternIri.
+ ?patternIri a hqdm:Pattern;
+ skos:definition ?patternValue.
}
}
UNION
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND(<%s> as ?type)
- BIND(<%s> as ?kind)
- BIND(<%s> as ?pattern)
+ BIND(<%s> as ?typeIri)
+ BIND(<%s> as ?kindIri)
+ BIND(<%s> as ?patternIri)
- ?s a ?type;
- hqdm:member_of ?kind;
+ ?s a ?typeIri;
+ hqdm:memberOf ?kindIri;
?pr ?ob.
- ?st hqdm:temporal_part_of ?s.
- ?repBySign hqdm:represents ?st.
- ?signst hqdm:participant_in ?repBySign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
- ?sign hqdm:value_ ?o;
- ?p ?o;
- hqdm:member_of_ ?pattern.
-
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish
- }
-
+ ?st hqdm:temporalPartOf ?s.
+ ?repByPattern hqdm:represented ?st;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfByClass ?patternIri.
+ ?patternIri a hqdm:Pattern;
+ skos:definition ?o;
+ ?p ?o.
}
}
}
@@ -271,11 +233,12 @@ public class MagmaCoreServiceQueries {
*
*
*
- * The result includes `hqdm:value_` predicates for the signValues.
+ * The result includes `skos:definition` predicates for the signValues.
*
*/
public static final String FIND_OBJECTS_BY_TYPE_AND_SIGN_PATTERN = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
select distinct *
@@ -283,30 +246,17 @@ public class MagmaCoreServiceQueries {
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND(<%s> as ?type)
- BIND(<%s> as ?kind)
- BIND(<%s> as ?pattern)
-
- ?s a ?type;
- hqdm:member_of_kind ?kind;
- ?p ?o.
- ?st hqdm:temporal_part_of ?s.
- ?repBySign hqdm:represents ?st.
- ?signst hqdm:participant_in ?repBySign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
-
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish
- }
+ BIND(<%s> as ?typeIri)
+ BIND(<%s> as ?kindIri)
+ BIND(<%s> as ?patternIri)
+ ?s a ?typeIri;
+ hqdm:memberOfKind ?kindIri;
+ ?p ?o.
+ ?st hqdm:temporalPartOf ?s.
+ ?repByPattern a hqdm:RepresentationByPattern;
+ hqdm:represented ?st;
+ hqdm:consistsOfByClass ?patternIri.
}
}
UNION
@@ -318,26 +268,14 @@ public class MagmaCoreServiceQueries {
BIND(<%s> as ?pattern)
?s a ?type;
- hqdm:member_of_kind ?kind;
+ hqdm:memberOfKind ?kind;
?pr ?ob.
- ?st hqdm:temporal_part_of ?s.
- ?repBySign hqdm:represents ?st.
- ?signst hqdm:participant_in ?repBySign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
- ?sign hqdm:value_ ?o;
- ?p ?o;
- hqdm:member_of_ ?pattern.
-
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish
- }
-
+ ?st hqdm:temporalPartOf ?s.
+ ?repByPattern a hqdm:RepresentationByPattern;
+ hqdm:represented ?st;
+ hqdm:consistsOfByClass ?pattern.
+ ?pattern skos:definition ?o;
+ ?p ?o.
}
}
}
@@ -352,7 +290,8 @@ public class MagmaCoreServiceQueries {
*
*/
public static final String FIND_BY_KIND_OF_ASSOCIATION = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
select ?s ?p ?o
where
@@ -360,11 +299,11 @@ public class MagmaCoreServiceQueries {
{
select distinct ?s ?p ?o
WHERE {
- BIND(<%s> as ?kind_of_association)
- ?association hqdm:member_of_kind ?kind_of_association.
- ?participant hqdm:participant_in ?association;
- hqdm:member_of_kind ?role;
- hqdm:temporal_part_of ?s.
+ BIND(<%s> as ?kindOfAssociation)
+ ?association hqdm:memberOfKind ?kindOfAssociation.
+ ?participant hqdm:participantIn ?association;
+ hqdm:memberOfKind ?role;
+ hqdm:temporalPartOf ?s.
?s ?p ?o.
}
}
@@ -372,12 +311,12 @@ public class MagmaCoreServiceQueries {
{
select distinct ?s ?p ?o
WHERE {
- BIND(<%s> as ?kind_of_association)
- ?association hqdm:member_of_kind ?kind_of_association.
- ?participant hqdm:participant_in ?association;
- hqdm:member_of_kind ?role;
- hqdm:temporal_part_of ?s.
- ?role hqdm:data_EntityName ?o;
+ BIND(<%s> as ?kindOfAssociation)
+ ?association hqdm:memberOfKind ?kindOfAssociation.
+ ?participant hqdm:participantIn ?association;
+ hqdm:memberOfKind ?role;
+ hqdm:temporalPartOf ?s.
+ ?role skos:prefLabel ?o;
?p ?o.
}
}
@@ -385,17 +324,16 @@ public class MagmaCoreServiceQueries {
{
select distinct ?s ?p ?o
WHERE {
- BIND(<%s> as ?kind_of_association)
- ?association hqdm:member_of_kind ?kind_of_association.
- ?participant hqdm:participant_in ?association;
- hqdm:temporal_part_of ?s.
- ?state_of_individual hqdm:temporal_part_of ?s.
- ?repBySign hqdm:represents ?state_of_individual.
- ?repBySign a hqdm:representation_by_sign.
- ?state_of_sign hqdm:participant_in ?repBySign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
- ?sign hqdm:value_ ?o;
+ BIND(<%s> as ?kindOfAssociation)
+ ?association hqdm:memberOfKind ?kindOfAssociation.
+ ?participant hqdm:participantIn ?association;
+ hqdm:temporalPartOf ?s.
+ ?stateOfIndividual hqdm:temporalPartOf ?s.
+ ?repByPattern hqdm:represented ?stateOfIndividual;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfByClass ?patternIri.
+
+ ?patternIri skos:definition ?o;
?p ?o.
}
@@ -408,7 +346,8 @@ public class MagmaCoreServiceQueries {
* Find things associated to a given thing by an association of a given kind.
*/
public static final String FIND_ASSOCIATED = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
select ?s ?p ?o ?start ?finish
@@ -417,21 +356,21 @@ public class MagmaCoreServiceQueries {
{
select distinct ?s ?p ?o ?start ?finish
WHERE {
- BIND(<%s> as ?kind_of_association)
- ?from hqdm:temporal_part_of <%s>;
- hqdm:participant_in ?association.
- ?association hqdm:member_of_kind ?kind_of_association.
- ?participant hqdm:participant_in ?association;
- hqdm:temporal_part_of ?s.
+ BIND(<%s> as ?kindOfAssociation)
+ ?from hqdm:temporalPartOf <%s>;
+ hqdm:participantIn ?association.
+ ?association hqdm:memberOfKind ?kindOfAssociation.
+ ?participant hqdm:participantIn ?association;
+ hqdm:temporalPartOf ?s.
?s ?p ?o.
FILTER(?s != <%s>)
OPTIONAL {
?association hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
+ ?begin skos:prefLabel ?start.
}
OPTIONAL {
?association hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
+ ?end skos:prefLabel ?finish.
}
}
}
@@ -439,23 +378,23 @@ public class MagmaCoreServiceQueries {
{
select distinct ?s ?p ?o ?start ?finish
WHERE {
- BIND(<%s> as ?kind_of_association)
- ?from hqdm:temporal_part_of <%s>;
- hqdm:participant_in ?association.
- ?association hqdm:member_of_kind ?kind_of_association.
- ?participant hqdm:participant_in ?association;
- hqdm:temporal_part_of ?s;
- hqdm:member_of_kind ?role.
+ BIND(<%s> as ?kindOfAssociation)
+ ?from hqdm:temporalPartOf <%s>;
+ hqdm:participantIn ?association.
+ ?association hqdm:memberOfKind ?kindOfAssociation.
+ ?participant hqdm:participantIn ?association;
+ hqdm:temporalPartOf ?s;
+ hqdm:memberOfKind ?role.
FILTER(?s != <%s>)
OPTIONAL {
?association hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
+ ?begin skos:prefLabel ?start.
}
OPTIONAL {
?association hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
+ ?end skos:prefLabel ?finish.
}
- ?role hqdm:data_EntityName ?o;
+ ?role skos:prefLabel ?o;
?p ?o.
}
}
@@ -463,28 +402,26 @@ public class MagmaCoreServiceQueries {
{
select distinct ?s ?p ?o ?start ?finish
WHERE {
- BIND(<%s> as ?kind_of_association)
- ?from hqdm:temporal_part_of <%s>;
- hqdm:participant_in ?association.
- ?association hqdm:member_of_kind ?kind_of_association.
- ?participant hqdm:participant_in ?association;
- hqdm:temporal_part_of ?s.
+ BIND(<%s> as ?kindOfAssociation)
+ ?from hqdm:temporalPartOf <%s>;
+ hqdm:participantIn ?association.
+ ?association hqdm:memberOfKind ?kindOfAssociation.
+ ?participant hqdm:participantIn ?association;
+ hqdm:temporalPartOf ?s.
FILTER(?s != <%s>)
- ?state_of_individual hqdm:temporal_part_of ?s.
- ?repBySign hqdm:represents ?state_of_individual.
- ?repBySign a hqdm:representation_by_sign.
- ?state_of_sign hqdm:participant_in ?repBySign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
+ ?stateOfIndividual hqdm:temporalPartOf ?s.
+ ?repByPattern hqdm:represented ?stateOfIndividual.
+ ?repByPattern a hqdm:RepresentationByPattern.
+ ?repByPattern hqdm:consistsOfByClass ?patternIri.
OPTIONAL {
?association hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
+ ?begin skos:prefLabel ?start.
}
OPTIONAL {
?association hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
+ ?end skos:prefLabel ?finish.
}
- ?sign hqdm:value_ ?o;
+ ?patternIri skos:definition ?o;
?p ?o.
}
}
@@ -497,7 +434,8 @@ public class MagmaCoreServiceQueries {
* Search for items whose sign contains some text and are members of a specific class.
*/
public static final String FIND_MEMBERS_OF_CLASS_BY_PARTIAL_SIGN_CASE_SENSITIVE = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT distinct ?s ?p ?o ?start ?finish
@@ -508,78 +446,51 @@ public class MagmaCoreServiceQueries {
BIND("%s" as ?text)
BIND(<%s> as ?class) # IRI of the class
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?signvalue), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(str(?patternValue), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
}
}
UNION
{
- SELECT ?s (hqdm:value_ as ?p) ?o ?start ?finish
+ SELECT ?s (skos:definition as ?p) ?o ?start ?finish
WHERE {
BIND("%s" as ?text)
BIND(<%s> as ?class) # IRI of the class
- ?sign hqdm:value_ ?o;
- hqdm:member_of_ ?pattern.
+ ?pattern skos:definition ?o.
FILTER(CONTAINS(str(?o), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
}
}
UNION
{
- SELECT ?s (hqdm:data_EntityName as ?p) ?o ?start ?finish
+ SELECT ?s (skos:prefLabel as ?p) ?o ?start ?finish
WHERE {
BIND("%s" as ?text)
BIND(<%s> as ?class)
- ?sign hqdm:value_ ?signValue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?signValue), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?s hqdm:member_of_kind ?kind.
- ?kind hqdm:data_EntityName ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(str(?patternValue), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?s hqdm:memberOfKind ?kind.
+ ?kind skos:prefLabel ?o.
}
}
@@ -591,7 +502,8 @@ public class MagmaCoreServiceQueries {
* Search for items whose sign contains some text and are members of a specific class.
*/
public static final String FIND_MEMBERS_OF_CLASS_BY_PARTIAL_SIGN_CASE_INSENSITIVE = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT distinct ?s ?p ?o ?start ?finish
@@ -602,78 +514,51 @@ public class MagmaCoreServiceQueries {
BIND("%s" as ?text)
BIND(<%s> as ?class) # IRI of the class
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signvalue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
}
}
UNION
{
- SELECT ?s (hqdm:value_ as ?p) ?o ?start ?finish
+ SELECT ?s (skos:definition as ?p) ?o ?start ?finish
WHERE {
BIND("%s" as ?text)
BIND(<%s> as ?class) # IRI of the class
- ?sign hqdm:value_ ?o;
- hqdm:member_of_ ?pattern.
+ ?pattern skos:definition ?o.
FILTER(CONTAINS(lcase(str(?o)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
}
}
UNION
{
- SELECT ?s (hqdm:data_EntityName as ?p) ?o ?start ?finish
+ SELECT ?s (skos:prefLabel as ?p) ?o ?start ?finish
WHERE {
BIND("%s" as ?text)
BIND(<%s> as ?class)
- ?sign hqdm:value_ ?signValue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signValue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?s hqdm:member_of_kind ?kind.
- ?kind hqdm:data_EntityName ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?s hqdm:memberOfKind ?kind.
+ ?kind skos:prefLabel ?o.
}
}
@@ -685,7 +570,8 @@ public class MagmaCoreServiceQueries {
* A partial search by sign for entities referenced by an Activity.
*/
public static final String FIND_MEMBERS_OF_CLASS_BY_ACTIVITY_AND_PARTIAL_SIGN_CASE_SENSITIVE = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT distinct ?s ?p ?o ?start ?finish
@@ -693,87 +579,60 @@ public class MagmaCoreServiceQueries {
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?signvalue), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?topicId hqdm:references ?s.
- ?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(str(?patternValue), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?topicId hqdm:references ?s.
+ ?s ?p ?o.
}
}
UNION
{
- SELECT ?s (hqdm:value_ as ?p) ?o ?start ?finish
+ SELECT ?s (skos:definition as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?o;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?o), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?topicId hqdm:references ?s.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?o.
+ FILTER(CONTAINS(str(?o), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?topicId hqdm:references ?s.
}
}
UNION
{
- SELECT ?s (hqdm:data_EntityName as ?p) ?o ?start ?finish
+ SELECT ?s (skos:prefLabel as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signValue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?signValue), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?topicId hqdm:references ?s.
- ?s hqdm:member_of_kind ?kind.
- ?kind hqdm:data_EntityName ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(str(?patternValue), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?topicId hqdm:references ?s.
+ ?s hqdm:memberOfKind ?kind.
+ ?kind skos:prefLabel ?o.
}
}
}
@@ -784,7 +643,8 @@ public class MagmaCoreServiceQueries {
* A partial search by sign for entities referenced by an Activity.
*/
public static final String FIND_MEMBERS_OF_CLASS_BY_ACTIVITY_AND_PARTIAL_SIGN_CASE_INSENSITIVE = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT distinct ?s ?p ?o ?start ?finish
@@ -792,87 +652,60 @@ public class MagmaCoreServiceQueries {
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signvalue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?topicId hqdm:references ?s.
- ?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?topicId hqdm:references ?s.
+ ?s ?p ?o.
}
}
UNION
{
- SELECT ?s (hqdm:value_ as ?p) ?o ?start ?finish
+ SELECT ?s (skos:definition as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?o;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?o)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?topicId hqdm:references ?s.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?o.
+ FILTER(CONTAINS(lcase(str(?o)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?topicId hqdm:references ?s.
}
}
UNION
{
- SELECT ?s (hqdm:data_EntityName as ?p) ?o ?start ?finish
+ SELECT ?s (skos:prefLabel as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signValue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signValue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?topicId hqdm:references ?s.
- ?s hqdm:member_of_kind ?kind.
- ?kind hqdm:data_EntityName ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?topicId hqdm:references ?s.
+ ?s hqdm:memberOfKind ?kind.
+ ?kind skos:prefLabel ?o.
}
}
}
@@ -883,7 +716,8 @@ public class MagmaCoreServiceQueries {
* A partial search by sign for entities composed into a whole entity.
*/
public static final String FIND_MEMBERS_OF_CLASS_BY_COMPOSITION_AND_PARTIAL_SIGN_CASE_SENSITIVE = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT distinct ?s ?p ?o ?start ?finish
@@ -891,90 +725,65 @@ public class MagmaCoreServiceQueries {
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?signvalue), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?comp hqdm:part ?s;
- hqdm:whole ?topicId.
- ?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(str(?patternValue), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+
+ ?comp hqdm:part ?s;
+ hqdm:whole ?topicId.
+ ?s ?p ?o.
}
}
UNION
{
- SELECT ?s (hqdm:value_ as ?p) ?o ?start ?finish
+ SELECT ?s (skos:definition as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?o;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?o), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?comp hqdm:part ?s;
- hqdm:whole ?topicId.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?o.
+ FILTER(CONTAINS(str(?o), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+
+ ?comp hqdm:part ?s;
+ hqdm:whole ?topicId.
}
}
UNION
{
- SELECT ?s (hqdm:data_EntityName as ?p) ?o ?start ?finish
+ SELECT ?s (skos:prefLabel as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signValue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(str(?signValue), ?text))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?comp hqdm:part ?s;
- hqdm:whole ?topicId.
- ?s hqdm:member_of_kind ?kind.
- ?kind hqdm:data_EntityName ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(str(?patternValue), ?text))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?comp hqdm:part ?s;
+ hqdm:whole ?topicId.
+ ?s hqdm:memberOfKind ?kind.
+ ?kind skos:prefLabel ?o.
}
}
}
@@ -985,7 +794,8 @@ public class MagmaCoreServiceQueries {
* A partial search by sign for entities composed into a whole entity.
*/
public static final String FIND_MEMBERS_OF_CLASS_BY_COMPOSITION_AND_PARTIAL_SIGN_CASE_INSENSITIVE = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT distinct ?s ?p ?o ?start ?finish
@@ -993,90 +803,65 @@ public class MagmaCoreServiceQueries {
{
SELECT ?s ?p ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signvalue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signvalue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?comp hqdm:part ?s;
- hqdm:whole ?topicId.
- ?s ?p ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+
+ ?comp hqdm:part ?s;
+ hqdm:whole ?topicId.
+ ?s ?p ?o.
}
}
UNION
{
- SELECT ?s (hqdm:value_ as ?p) ?o ?start ?finish
+ SELECT ?s (skos:definition as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?o;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?o)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?comp hqdm:part ?s;
- hqdm:whole ?topicId.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?o.
+ FILTER(CONTAINS(lcase(str(?o)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+
+ ?comp hqdm:part ?s;
+ hqdm:whole ?topicId.
}
}
UNION
{
- SELECT ?s (hqdm:data_EntityName as ?p) ?o ?start ?finish
+ SELECT ?s (skos:prefLabel as ?p) ?o ?start ?finish
WHERE {
- BIND("%s" as ?text)
- BIND(<%s> as ?class)
- BIND(<%s> as ?topicId)
-
- ?sign hqdm:value_ ?signValue;
- hqdm:member_of_ ?pattern.
- FILTER(CONTAINS(lcase(str(?signValue)), lcase(?text)))
- ?sos hqdm:temporal_part_of ?sign;
- hqdm:participant_in ?repBySign.
- ?rlc hqdm:participant_in ?repBySign.
- ?repBySign hqdm:represents ?state.
- ?state hqdm:temporal_part_of ?s.
- ?s hqdm:member_of ?class.
- ?comp hqdm:part ?s;
- hqdm:whole ?topicId.
- ?s hqdm:member_of_kind ?kind.
- ?kind hqdm:data_EntityName ?o.
- OPTIONAL {
- ?repBySign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?repBySign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
+ BIND("%s" as ?text)
+ BIND(<%s> as ?class)
+ BIND(<%s> as ?topicId)
+
+ ?pattern skos:definition ?patternValue.
+ FILTER(CONTAINS(lcase(str(?patternValue)), lcase(?text)))
+ ?repByPattern hqdm:consistsOfByClass ?pattern;
+ a hqdm:RepresentationByPattern;
+ hqdm:consistsOfInMembers ?rlc;
+ hqdm:represented ?state.
+ ?state hqdm:temporalPartOf ?s.
+ ?s hqdm:memberOf ?class.
+ ?comp hqdm:part ?s;
+ hqdm:whole ?topicId.
+ ?s hqdm:memberOfKind ?kind.
+ ?kind skos:prefLabel ?o.
}
}
}
@@ -1087,35 +872,22 @@ public class MagmaCoreServiceQueries {
* Find the signs for an entity and the pattern and representation by pattern ENTITY_NAMES.
*/
public static final String FIND_SIGNS_FOR_ENTITY = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
- SELECT distinct ?sign_value ?pattern_name ?rep_by_pattern_name ?start ?finish
+ SELECT distinct ?signValue ?patternName ?repByPatternName ?start ?finish
WHERE
{
{
SELECT *
WHERE {
BIND(<%s> as ?s)
- ?state_of_s hqdm:temporal_part_of ?s.
- ?rep_by_sign hqdm:represents ?state_of_s;
- hqdm:member_of_ ?rep_by_pattern.
- ?rep_by_pattern hqdm:data_EntityName ?rep_by_pattern_name.
- ?state_of_sign hqdm:participant_in ?rep_by_sign;
- a hqdm:state_of_sign;
- hqdm:temporal_part_of ?sign.
- ?sign hqdm:value_ ?sign_value;
- hqdm:member_of_ ?pattern.
- ?pattern hqdm:data_EntityName ?pattern_name.
- OPTIONAL {
- ?rep_by_sign hqdm:beginning ?begin.
- ?begin hqdm:data_EntityName ?start.
- }
- OPTIONAL {
- ?rep_by_sign hqdm:ending ?end.
- ?end hqdm:data_EntityName ?finish.
- }
-
+ ?stateOfS hqdm:temporalPartOf ?s.
+ ?repByPattern hqdm:represented ?stateOfS;
+ hqdm:consistsOfByClass ?pattenrIri;
+ skos:prefLabel ?repByPatternName.
+ ?patternIri skos:definition ?signValue.
}
}
}
@@ -1125,7 +897,8 @@ public class MagmaCoreServiceQueries {
* Find by field value and class query.
*/
public static final String FIND_BY_FIELD_VALUE_AND_CLASS = """
- PREFIX hqdm:
+ PREFIX hqdm:
+ PREFIX skos:
PREFIX rdf:
SELECT ?s ?p ?o
diff --git a/core/src/main/java/uk/gov/gchq/magmacore/service/verify/DataIntegrityReport.java b/core/src/main/java/uk/gov/gchq/magmacore/service/verify/DataIntegrityReport.java
index 135f3c91..61158672 100644
--- a/core/src/main/java/uk/gov/gchq/magmacore/service/verify/DataIntegrityReport.java
+++ b/core/src/main/java/uk/gov/gchq/magmacore/service/verify/DataIntegrityReport.java
@@ -12,125 +12,125 @@
public class DataIntegrityReport {
private static final String CHECK_MISSING_DATA_ENTITY_NAME = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_entity_name "Should have a data_EntityName.".
+ ?s hqdm:errorMissingEntityName "Should have a dataentityName.".
?s a ?type.
}
where {
?s a ?type;
?p ?o.
OPTIONAL {
- ?s hqdm:data_EntityName ?name.
+ ?s hqdm:dataentityName ?name.
}
FILTER(!bound(?name))
FILTER(?type in (
hqdm:class,
hqdm:classification,
- hqdm:class_of_abstract_object,
- hqdm:class_of_activity,
- hqdm:class_of_agree_contract,
- hqdm:class_of_agreement_execution,
- hqdm:class_of_agreement_process,
- hqdm:class_of_amount_of_money,
- hqdm:class_of_association,
- hqdm:class_of_biological_object,
- hqdm:class_of_biological_system,
- hqdm:class_of_biological_system_component,
- hqdm:class_of_class,
- hqdm:class_of_class_of_spatio_temporal_extent,
- hqdm:class_of_contract_execution,
- hqdm:class_of_contract_process,
- hqdm:class_of_event,
- hqdm:class_of_functional_object,
- hqdm:class_of_functional_system,
- hqdm:class_of_functional_system_component,
- hqdm:class_of_individual,
- hqdm:class_of_in_place_biological_component,
- hqdm:class_of_installed_functional_system_component,
- hqdm:class_of_installed_object,
- hqdm:class_of_intentionally_constructed_object,
- hqdm:class_of_offer,
- hqdm:class_of_ordinary_biological_object,
- hqdm:class_of_ordinary_functional_object,
- hqdm:class_of_ordinary_physical_object,
- hqdm:class_of_organization,
- hqdm:class_of_organization_component,
- hqdm:class_of_participant,
- hqdm:class_of_party,
- hqdm:class_of_period_of_time,
- hqdm:class_of_person,
- hqdm:class_of_person_in_position,
- hqdm:class_of_physical_object,
- hqdm:class_of_physical_property,
- hqdm:class_of_physical_quantity,
- hqdm:class_of_point_in_time,
- hqdm:class_of_position,
- hqdm:class_of_possible_world,
- hqdm:class_of_reaching_agreement,
- hqdm:class_of_relationship,
- hqdm:class_of_representation,
- hqdm:class_of_sales_product_instance,
- hqdm:class_of_sign,
- hqdm:class_of_socially_constructed_activity,
- hqdm:class_of_socially_constructed_object,
- hqdm:class_of_spatio_temporal_extent,
- hqdm:class_of_state,
- hqdm:class_of_state_of_activity,
- hqdm:class_of_state_of_amount_of_money,
- hqdm:class_of_state_of_association,
- hqdm:class_of_state_of_biological_object,
- hqdm:class_of_state_of_biological_system,
- hqdm:class_of_state_of_biological_system_component,
- hqdm:class_of_state_of_functional_object,
- hqdm:class_of_state_of_functional_system,
- hqdm:class_of_state_of_functional_system_component,
- hqdm:class_of_state_of_intentionally_constructed_object,
- hqdm:class_of_state_of_ordinary_biological_object,
- hqdm:class_of_state_of_ordinary_functional_object,
- hqdm:class_of_state_of_ordinary_physical_object,
- hqdm:class_of_state_of_organization,
- hqdm:class_of_state_of_organization_component,
- hqdm:class_of_state_of_party,
- hqdm:class_of_state_of_person,
- hqdm:class_of_state_of_physical_object,
- hqdm:class_of_state_of_position,
- hqdm:class_of_state_of_sales_product_instance,
- hqdm:class_of_state_of_sign,
- hqdm:class_of_state_of_socially_constructed_activity,
- hqdm:class_of_state_of_socially_constructed_object,
- hqdm:class_of_state_of_system,
- hqdm:class_of_state_of_system_component,
- hqdm:class_of_system,
- hqdm:class_of_system_component,
- hqdm:kind_of_activity,
- hqdm:kind_of_association,
- hqdm:kind_of_biological_object,
- hqdm:kind_of_biological_system,
- hqdm:kind_of_biological_system_component,
- hqdm:kind_of_functional_object,
- hqdm:kind_of_functional_system,
- hqdm:kind_of_functional_system_component,
- hqdm:kind_of_individual,
- hqdm:kind_of_intentionally_constructed_object,
- hqdm:kind_of_ordinary_biological_object,
- hqdm:kind_of_ordinary_functional_object,
- hqdm:kind_of_ordinary_physical_object,
- hqdm:kind_of_organization,
- hqdm:kind_of_organization_component,
- hqdm:kind_of_party,
- hqdm:kind_of_person,
- hqdm:kind_of_physical_object,
- hqdm:kind_of_physical_property,
- hqdm:kind_of_physical_quantity,
- hqdm:kind_of_position,
- hqdm:kind_of_relationship_with_restriction,
- hqdm:kind_of_relationship_with_signature,
- hqdm:kind_of_socially_constructed_object,
- hqdm:kind_of_system,
- hqdm:kind_of_system_component,
+ hqdm:classOfAbstractObject,
+ hqdm:classOfActivity,
+ hqdm:classOfAgreeContract,
+ hqdm:classOfAgreementExecution,
+ hqdm:classOfAgreementProcess,
+ hqdm:classOfAmountOfMoney,
+ hqdm:classOfAssociation,
+ hqdm:classOfBiologicalObject,
+ hqdm:classOfBiologicalSystem,
+ hqdm:classOfBiologicalSystemComponent,
+ hqdm:classOfClass,
+ hqdm:classOfClassOfSpatioTemporalExtent,
+ hqdm:classOfContractExecution,
+ hqdm:classOfContractProcess,
+ hqdm:classOfEvent,
+ hqdm:classOfFunctionalObject,
+ hqdm:classOfFunctionalSystem,
+ hqdm:classOfFunctionalSystemComponent,
+ hqdm:classOfIndividual,
+ hqdm:classOfInPlaceBiologicalComponent,
+ hqdm:classOfInstalledFunctionalSystemComponent,
+ hqdm:classOfInstalledObject,
+ hqdm:classOfIntentionallyConstructedObject,
+ hqdm:classOfOffer,
+ hqdm:classOfOrdinaryBiologicalObject,
+ hqdm:classOfOrdinaryFunctionalObject,
+ hqdm:classOfOrdinaryPhysicalObject,
+ hqdm:classOfOrganization,
+ hqdm:classOfOrganizationComponent,
+ hqdm:classOfParticipant,
+ hqdm:classOfParty,
+ hqdm:classOfPeriodOfTime,
+ hqdm:classOfPerson,
+ hqdm:classOfpersonInPosition,
+ hqdm:classOfPhysicalObject,
+ hqdm:classOfPhysicalProperty,
+ hqdm:classOfPhysicalQuantity,
+ hqdm:classOfPointInTime,
+ hqdm:classOfPosition,
+ hqdm:classOfPossibleWorld,
+ hqdm:classOfReachingAgreement,
+ hqdm:classOfRelationship,
+ hqdm:classOfRepresentation,
+ hqdm:classOfSalesProductInstance,
+ hqdm:classOfSign,
+ hqdm:classOfSociallyConstructedActivity,
+ hqdm:classOfSociallyConstructedObject,
+ hqdm:classOfSpatioTemporalExtent,
+ hqdm:classOfState,
+ hqdm:classOfStateOfActivity,
+ hqdm:classOfStateOfAmountOfMoney,
+ hqdm:classOfStateOfAssociation,
+ hqdm:classOfStateOfBiologicalObject,
+ hqdm:classOfStateOfBiologicalSystem,
+ hqdm:classOfStateOfBiologicalSystemComponent,
+ hqdm:classOfStateOfFunctionalObject,
+ hqdm:classOfStateOfFunctionalSystem,
+ hqdm:classOfStateOfFunctionalSystemComponent,
+ hqdm:classOfStateOfIntentionallyConstructedObject,
+ hqdm:classOfStateOfOrdinaryBiologicalObject,
+ hqdm:classOfStateOfOrdinaryFunctionalObject,
+ hqdm:classOfStateOfOrdinaryPhysicalObject,
+ hqdm:classOfStateOfOrganization,
+ hqdm:classOfStateOfOrganizationComponent,
+ hqdm:classOfStateOfParty,
+ hqdm:classOfStateOfPerson,
+ hqdm:classOfStateOfPhysicalObject,
+ hqdm:classOfStateOfPosition,
+ hqdm:classOfStateOfSalesProductInstance,
+ hqdm:classOfStateOfSign,
+ hqdm:classOfStateOfSociallyConstructedActivity,
+ hqdm:classOfStateOfSociallyConstructedObject,
+ hqdm:classOfStateOfSystem,
+ hqdm:classOfStateOfSystemComponent,
+ hqdm:classOfSystem,
+ hqdm:classOfSystemComponent,
+ hqdm:kindOfActivity,
+ hqdm:kindOfAssociation,
+ hqdm:kindOfBiologicalObject,
+ hqdm:kindOfBiologicalSystem,
+ hqdm:kindOfBiologicalSystemComponent,
+ hqdm:kindOfFunctionalObject,
+ hqdm:kindOfFunctionalSystem,
+ hqdm:kindOfFunctionalSystemComponent,
+ hqdm:kindOfIndividual,
+ hqdm:kindOfIntentionallyConstructedObject,
+ hqdm:kindOfOrdinaryBiologicalObject,
+ hqdm:kindOfOrdinaryFunctionalObject,
+ hqdm:kindOfOrdinaryPhysicalObject,
+ hqdm:kindOfOrganization,
+ hqdm:kindOfOrganizationComponent,
+ hqdm:kindOfParty,
+ hqdm:kindOfPerson,
+ hqdm:kindOfPhysicalObject,
+ hqdm:kindOfPhysicalProperty,
+ hqdm:kindOfPhysicalQuantity,
+ hqdm:kindOfPosition,
+ hqdm:kindOfRelationshipWithRestriction,
+ hqdm:kindOfRelationshipWithSignature,
+ hqdm:kindOfSociallyConstructedObject,
+ hqdm:kindOfSystem,
+ hqdm:kindOfSystemComponent,
hqdm:role,
hqdm:pattern,
hqdm:description,
@@ -141,20 +141,20 @@ public class DataIntegrityReport {
""";
private static final String CHECK_MISSING_PARTICIPANT_ROLES = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_participant_with_no_role "Should be a member_of_kind of a role.".
+ ?s hqdm:errorParticipantWithNoRole "Should be a memberOfKind of a role.".
?s a ?type.
}
where {
- ?s hqdm:participant_in ?association;
+ ?s hqdm:participantIn ?association;
a ?type.
?association a hqdm:association.
OPTIONAL {
- ?s hqdm:member_of_kind ?kind.
+ ?s hqdm:memberOfKind ?kind.
?kind a hqdm:role.
}
@@ -163,199 +163,199 @@ public class DataIntegrityReport {
""";
private static final String CHECK_POSSIBLE_WORLD_MEMBERSHIP = """
- PREFIX hqdm:
+ PREFIX hqdm:
PREFIX rdfs:
construct {
- ?s hqdm:error_possible_world "Should be part of a possible world.".
+ ?s hqdm:errorPossibleWorld "Should be part of a possible world.".
?s a ?type.
}
where {
?s a ?type;
?p ?o.
OPTIONAL {
- ?s hqdm:part_of_possible_world ?pw.
+ ?s hqdm:partOfPossibleWorld ?pw.
}
FILTER(!bound(?pw))
FILTER(?type in (
- hqdm:acceptance_of_offer,
- hqdm:acceptance_of_offer_for_goods,
+ hqdm:acceptanceOfOffer,
+ hqdm:acceptanceOfOfferForGoods,
hqdm:activity,
hqdm:aggregation,
- hqdm:agree_contract,
- hqdm:agreement_execution,
- hqdm:agreement_process,
- hqdm:amount_of_money,
+ hqdm:agreeContract,
+ hqdm:agreementExecution,
+ hqdm:agreementProcess,
+ hqdm:amountOfMoney,
hqdm:asset,
hqdm:association,
- hqdm:beginning_of_ownership,
- hqdm:biological_object,
- hqdm:biological_system,
- hqdm:biological_system_component,
+ hqdm:beginningOfOwnership,
+ hqdm:biologicalObject,
+ hqdm:biologicalSystem,
+ hqdm:biologicalSystemComponent,
hqdm:composition,
- hqdm:contract_execution,
- hqdm:contract_process,
+ hqdm:contractExecution,
+ hqdm:contractProcess,
hqdm:currency,
hqdm:employee,
hqdm:employer,
hqdm:employment,
- hqdm:ending_of_ownership,
+ hqdm:endingOfOwnership,
hqdm:event,
- hqdm:exchange_of_goods_and_money,
- hqdm:function_,
- hqdm:functional_object,
- hqdm:functional_system,
- hqdm:functional_system_component,
- hqdm:identification_of_physical_quantity,
+ hqdm:exchangeOfGoodsAndMoney,
+ hqdm:function,
+ hqdm:functionalObject,
+ hqdm:functionalSystem,
+ hqdm:functionalSystemComponent,
+ hqdm:identificationOfPhysicalQuantity,
hqdm:individual,
- hqdm:in_place_biological_component,
- hqdm:installed_functional_system_component,
- hqdm:installed_object,
- hqdm:intentionally_constructed_object,
- hqdm:language_community,
- hqdm:money_asset,
+ hqdm:inPlaceBiologicalComponent,
+ hqdm:installedFunctionalSystemComponent,
+ hqdm:installedObject,
+ hqdm:intentionallyConstructedObject,
+ hqdm:languageCommunity,
+ hqdm:moneyAsset,
hqdm:offer,
- hqdm:offer_and_acceptance_for_goods,
- hqdm:offer_for_goods,
+ hqdm:offerAndAcceptanceForGoods,
+ hqdm:offerForGoods,
hqdm:offering,
- hqdm:ordinary_biological_object,
- hqdm:ordinary_functional_object,
- hqdm:ordinary_physical_object,
+ hqdm:ordinaryBiologicalObject,
+ hqdm:ordinaryFunctionalObject,
+ hqdm:ordinaryPhysicalObject,
hqdm:organization,
- hqdm:organization_component,
+ hqdm:organizationComponent,
hqdm:owner,
hqdm:ownership,
hqdm:participant,
- hqdm:participant_in_activity_or_association,
+ hqdm:participantInActivityOrAssociation,
hqdm:party,
- hqdm:period_of_time,
+ hqdm:periodOfTime,
hqdm:person,
- hqdm:person_in_position,
- hqdm:physical_object,
- hqdm:physical_property,
- hqdm:physical_property_range,
- hqdm:physical_quantity,
- hqdm:physical_quantity_range,
+ hqdm:personInPosition,
+ hqdm:physicalObject,
+ hqdm:physicalProperty,
+ hqdm:physicalPropertyRange,
+ hqdm:physicalQuantity,
+ hqdm:physicalQuantityRange,
hqdm:plan,
- hqdm:point_in_time,
+ hqdm:pointInTime,
hqdm:position,
- hqdm:possible_world,
+ hqdm:possibleWorld,
hqdm:price,
- hqdm:product_brand,
- hqdm:product_offering,
- hqdm:reaching_agreement,
- hqdm:recognizing_language_community,
+ hqdm:productBrand,
+ hqdm:productOffering,
+ hqdm:reachingAgreement,
+ hqdm:recognizingLanguageCommunity,
hqdm:relationship,
- hqdm:representation_by_sign,
+ hqdm:representationBySign,
hqdm:requirement,
- hqdm:requirement_specification,
- hqdm:sale_of_goods,
- hqdm:sales_product,
- hqdm:sales_product_instance,
- hqdm:sales_product_version,
+ hqdm:requirementSpecification,
+ hqdm:saleOfGoods,
+ hqdm:salesProduct,
+ hqdm:salesProductInstance,
+ hqdm:salesProductVersion,
hqdm:scale,
hqdm:sign,
- hqdm:socially_constructed_activity,
- hqdm:socially_constructed_object,
- hqdm:spatio_temporal_extent,
+ hqdm:sociallyConstructedActivity,
+ hqdm:sociallyConstructedObject,
+ hqdm:spatioTemporalExtent,
hqdm:state,
- hqdm:state_of_activity,
- hqdm:state_of_amount_of_money,
- hqdm:state_of_association,
- hqdm:state_of_biological_object,
- hqdm:state_of_biological_system,
- hqdm:state_of_biological_system_component,
- hqdm:state_of_functional_object,
- hqdm:state_of_functional_system,
- hqdm:state_of_functional_system_component,
- hqdm:state_of_intentionally_constructed_object,
- hqdm:state_of_language_community,
- hqdm:state_of_ordinary_biological_object,
- hqdm:state_of_ordinary_functional_object,
- hqdm:state_of_ordinary_physical_object,
- hqdm:state_of_organization,
- hqdm:state_of_organization_component,
- hqdm:state_of_party,
- hqdm:state_of_person,
- hqdm:state_of_physical_object,
- hqdm:state_of_position,
- hqdm:state_of_sales_product_instance,
- hqdm:state_of_sign,
- hqdm:state_of_socially_constructed_activity,
- hqdm:state_of_socially_constructed_object,
- hqdm:state_of_system,
- hqdm:state_of_system_component,
+ hqdm:stateOfActivity,
+ hqdm:stateOfAmountOfMoney,
+ hqdm:stateOfAssociation,
+ hqdm:stateOfBiologicalObject,
+ hqdm:stateOfBiologicalSystem,
+ hqdm:stateOfBiologicalSystemComponent,
+ hqdm:stateOfFunctionalObject,
+ hqdm:stateOfFunctionalSystem,
+ hqdm:stateOfFunctionalSystemComponent,
+ hqdm:stateOfIntentionallyConstructedObject,
+ hqdm:stateOfLanguageCommunity,
+ hqdm:stateOfOrdinaryBiologicalObject,
+ hqdm:stateOfOrdinaryFunctionalObject,
+ hqdm:stateOfOrdinaryPhysicalObject,
+ hqdm:stateOfOrganization,
+ hqdm:stateOfOrganizationComponent,
+ hqdm:stateOfParty,
+ hqdm:stateOfPerson,
+ hqdm:stateOfPhysicalObject,
+ hqdm:stateOfPosition,
+ hqdm:stateOfSalesProductInstance,
+ hqdm:stateOfSign,
+ hqdm:stateOfSociallyConstructedActivity,
+ hqdm:stateOfSociallyConstructedObject,
+ hqdm:stateOfSystem,
+ hqdm:stateOfSystemComponent,
hqdm:system,
- hqdm:system_component,
- hqdm:temporal_composition,
+ hqdm:systemComponent,
+ hqdm:temporalComposition,
hqdm:transferee,
- hqdm:transfer_of_ownership,
- hqdm:transfer_of_ownership_of_money,
+ hqdm:transferOfOwnership,
+ hqdm:transferOfOwnershipOfMoney,
hqdm:transferor,
- hqdm:unit_of_measure
+ hqdm:unitOfMeasure
))
}
""";
private static final String CHECK_STATE_TEMPORAL_PART_OF = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_temporal_part_of "Should be a temporal_part_of some individual.".
+ ?s hqdm:errorMissingTemporalPartOf "Should be a temporalPartOf some individual.".
?s a ?type.
}
where {
?s a ?type;
?p ?o.
OPTIONAL {
- ?s hqdm:temporal_part_of ?individual.
+ ?s hqdm:temporalPartOf ?individual.
}
FILTER(!bound(?individual))
FILTER(?type in (
- hqdm:state_of_activity,
- hqdm:state_of_amount_of_money,
- hqdm:state_of_association,
- hqdm:state_of_biological_object,
- hqdm:state_of_biological_system,
- hqdm:state_of_biological_system_component,
- hqdm:state_of_functional_object,
- hqdm:state_of_functional_system,
- hqdm:state_of_functional_system_component,
- hqdm:state_of_intentionally_constructed_object,
- hqdm:state_of_language_community,
- hqdm:state_of_ordinary_biological_object,
- hqdm:state_of_ordinary_functional_object,
- hqdm:state_of_ordinary_physical_object,
- hqdm:state_of_organization,
- hqdm:state_of_organization_component,
- hqdm:state_of_party,
- hqdm:state_of_person,
- hqdm:state_of_physical_object,
- hqdm:state_of_position,
- hqdm:state_of_sales_product_instance,
- hqdm:state_of_sign,
- hqdm:state_of_socially_constructed_activity,
- hqdm:state_of_socially_constructed_object,
- hqdm:state_of_system,
- hqdm:state_of_system_component
+ hqdm:stateOfActivity,
+ hqdm:stateOfAmountOfMoney,
+ hqdm:stateOfAssociation,
+ hqdm:stateOfBiologicalObject,
+ hqdm:stateOfBiologicalSystem,
+ hqdm:stateOfBiologicalSystemComponent,
+ hqdm:stateOfFunctionalObject,
+ hqdm:stateOfFunctionalSystem,
+ hqdm:stateOfFunctionalSystemComponent,
+ hqdm:stateOfIntentionallyConstructedObject,
+ hqdm:stateOfLanguageCommunity,
+ hqdm:stateOfOrdinaryBiologicalObject,
+ hqdm:stateOfOrdinaryFunctionalObject,
+ hqdm:stateOfOrdinaryPhysicalObject,
+ hqdm:stateOfOrganization,
+ hqdm:stateOfOrganizationComponent,
+ hqdm:stateOfParty,
+ hqdm:stateOfPerson,
+ hqdm:stateOfPhysicalObject,
+ hqdm:stateOfPosition,
+ hqdm:stateOfSalesProductInstance,
+ hqdm:stateOfSign,
+ hqdm:stateOfSociallyConstructedActivity,
+ hqdm:stateOfSociallyConstructedObject,
+ hqdm:stateOfSystem,
+ hqdm:stateOfSystemComponent
))
}
""";
private static final String CHECK_SIGN_VALUE_ = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_value_ "Should have a value_ for a sign.".
+ ?s hqdm:errorMissingValue "Should have a value for a sign.".
?s a hqdm:sign.
}
where {
?s a hqdm:sign;
?p ?o.
OPTIONAL {
- ?s hqdm:value_ ?v.
+ ?s skos:definition ?v.
}
FILTER(!bound(?v))
@@ -363,17 +363,17 @@ public class DataIntegrityReport {
""";
private static final String CHECK_SIGN_MEMBER_OF_PATTERN = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_member_of_ "Should be a member_of_ of some pattern.".
+ ?s hqdm:errorMissingMemberOf "Should be a memberOf of some pattern.".
?s a hqdm:sign.
}
where {
?s a hqdm:sign;
?p ?o.
OPTIONAL {
- ?s hqdm:member_of_ ?pattern.
+ ?s hqdm:memberOf ?pattern.
}
FILTER(!bound(?pattern))
@@ -381,17 +381,17 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_PATTERN_CONSISTS_OF_BY_CLASS = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_consists_of_by_class
- "Should be a target of a consists_of_by_class from Rep By Pattern.".
+ ?s hqdm:errorMissingConsistsOfByClass
+ "Should be a target of a consistsOfByClass from Rep By Pattern.".
?s a hqdm:pattern.
}
where {
?s a hqdm:pattern.
OPTIONAL {
- ?repByPattern hqdm:consists_of_by_class ?s.
+ ?repByPattern hqdm:consistsOfByClass ?s.
}
FILTER(!bound(?repByPattern))
@@ -399,16 +399,16 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_SIGN_CONSISTS_OF_COMMUNITY = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_consists_of_ "Should have a consists_of_ from Rep By Sign.".
- ?s a hqdm:representation_by_sign.
+ ?s hqdm:errorMissingConsistsOf "Should have a consistsOf from Rep By Sign.".
+ ?s a hqdm:representationBySign.
}
where {
- ?s a hqdm:representation_by_sign.
+ ?s a hqdm:representationBySign.
OPTIONAL {
- ?s hqdm:consists_of_ ?community.
+ ?s hqdm:consistsOf ?community.
}
FILTER(!bound(?community))
@@ -416,38 +416,38 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_SIGN_CONSISTS_OF_SIGN = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_consists_of "Should have a consists_of from Rep By Sign.".
- ?s a hqdm:representation_by_sign.
+ ?s hqdm:errorMissingConsistsOf "Should have a consistsOf from Rep By Sign.".
+ ?s a hqdm:representationBySign.
}
where {
- ?s a hqdm:representation_by_sign.
+ ?s a hqdm:representationBySign.
OPTIONAL {
- ?s hqdm:consists_of ?state_of_sign.
+ ?s hqdm:consistsOf ?stateOfSign.
}
- FILTER(!bound(?state_of_sign))
+ FILTER(!bound(?stateOfSign))
}
""";
private static final String CHECK_REP_BY_PATTERN_CONSISTS_OF_IN_MEMBERS = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_consists_of_in_members "Should have a consists_of_in_members from Rep By Pattern.".
+ ?s hqdm:errorMissingConsistsOfInMembers "Should have a consistsOfInMembers from Rep By Pattern.".
?s a ?type.
}
where {
?s a ?type.
OPTIONAL {
- ?s hqdm:consists_of_in_members ?community.
+ ?s hqdm:consistsOfInMembers ?community.
}
FILTER(!bound(?community))
FILTER(?type in (
- hqdm:representation_by_pattern,
+ hqdm:representationByPattern,
hqdm:identification,
hqdm:definition,
hqdm:description
@@ -456,14 +456,14 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_SIGN_REPRESENTS = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_represents "Should have a represents from Rep By Sign.".
- ?s a hqdm:representation_by_sign.
+ ?s hqdm:errorMissingRepresents "Should have a represents from Rep By Sign.".
+ ?s a hqdm:representationBySign.
}
where {
- ?s a hqdm:representation_by_sign.
+ ?s a hqdm:representationBySign.
OPTIONAL {
?s hqdm:represents ?thing.
}
@@ -473,16 +473,16 @@ public class DataIntegrityReport {
""";
private static final String CHECK_STATE_OF_SIGN_PARTICIPANT_IN = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_sign_participant_in "Should have a participant_in to Rep By Sign.".
- ?s a hqdm:state_of_sign.
+ ?s hqdm:errorMissingSignParticipantIn "Should have a participantIn to Rep By Sign.".
+ ?s a hqdm:stateOfSign.
}
where {
- ?s a hqdm:state_of_sign.
+ ?s a hqdm:stateOfSign.
OPTIONAL {
- ?s hqdm:participant_in ?repBySign.
+ ?s hqdm:participantIn ?repBySign.
}
FILTER(!bound(?repBySign))
@@ -490,16 +490,16 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_SIGN_MEMBER_OF = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_member_of_ "Should have a member_of_ to Rep By Pattern.".
- ?s a hqdm:representation_by_sign.
+ ?s hqdm:errorMissingMemberOf "Should have a memberOf to Rep By Pattern.".
+ ?s a hqdm:representationBySign.
}
where {
- ?s a hqdm:representation_by_sign.
+ ?s a hqdm:representationBySign.
OPTIONAL {
- ?s hqdm:member_of_ ?repByPattern.
+ ?s hqdm:memberOf ?repByPattern.
}
FILTER(!bound(?repByPattern))
@@ -507,17 +507,17 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_SIGN_HAS_SIGN_PARTICIPANT = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_sign "Should have a state_of_sign as a participant_in this Rep By Sign.".
- ?s a hqdm:representation_by_sign.
+ ?s hqdm:errorMissingSign "Should have a stateOfSign as a participantIn this Rep By Sign.".
+ ?s a hqdm:representationBySign.
}
where {
- ?s a hqdm:representation_by_sign.
+ ?s a hqdm:representationBySign.
OPTIONAL {
- ?sign hqdm:participant_in ?s;
- a hqdm:state_of_sign.
+ ?sign hqdm:participantIn ?s;
+ a hqdm:stateOfSign.
}
FILTER(!bound(?sign))
@@ -525,18 +525,18 @@ public class DataIntegrityReport {
""";
private static final String CHECK_REP_BY_SIGN_HAS_COMMUNITY_PARTICIPANT = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_community
- "Should have a recognizing_language_community as a participant_in this Rep By Sign.".
- ?s a hqdm:representation_by_sign.
+ ?s hqdm:errorMissingCommunity
+ "Should have a recognizingLanguageCommunity as a participantIn this Rep By Sign.".
+ ?s a hqdm:representationBySign.
}
where {
- ?s a hqdm:representation_by_sign.
+ ?s a hqdm:representationBySign.
OPTIONAL {
- ?community hqdm:participant_in ?s;
- a hqdm:recognizing_language_community.
+ ?community hqdm:participantIn ?s;
+ a hqdm:recognizingLanguageCommunity.
}
FILTER(!bound(?community))
@@ -544,38 +544,38 @@ public class DataIntegrityReport {
""";
private static final String CHECK_ROLE_PART_OF_BY_CLASS_ = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_part_of_by_class_ "Should have a part_of_by_class_ to a kind_of_association.".
+ ?s hqdm:errorMissingPartOfByClass "Should have a partOfByClass to a kindOfAssociation.".
?s a hqdm:role.
}
where {
?s a hqdm:role.
OPTIONAL {
- ?s hqdm:part_of_by_class_ ?kind_of_association.
- ?kind_of_association a hqdm:kind_of_association.
+ ?s hqdm:partOfByClass ?kindOfAssociation.
+ ?kindOfAssociation a hqdm:kindOfAssociation.
}
- FILTER(!bound(?kind_of_association))
+ FILTER(!bound(?kindOfAssociation))
}
""";
private static final String CHECK_ASSOCIATION_MEMBER_OF_KIND = """
- PREFIX hqdm:
+ PREFIX hqdm:
construct {
- ?s hqdm:error_missing_kind_of_association "Should have a member_of_kind to a kind_of_association.".
+ ?s hqdm:errorMissingKindOfAssociation "Should have a memberOfKind to a kindOfAssociation.".
?s a hqdm:association.
}
where {
?s a hqdm:association.
OPTIONAL {
- ?s hqdm:member_of_kind ?kind_of_association.
- ?kind_of_association a hqdm:kind_of_association.
+ ?s hqdm:memberOfKind ?kindOfAssociation.
+ ?kindOfAssociation a hqdm:kindOfAssociation.
}
- FILTER(!bound(?kind_of_association))
+ FILTER(!bound(?kindOfAssociation))
}
""";
diff --git a/core/src/test/java/uk/gov/gchq/magmacore/service/AssociationPatternTestData.java b/core/src/test/java/uk/gov/gchq/magmacore/service/AssociationPatternTestData.java
index 03eb46dd..71de045b 100644
--- a/core/src/test/java/uk/gov/gchq/magmacore/service/AssociationPatternTestData.java
+++ b/core/src/test/java/uk/gov/gchq/magmacore/service/AssociationPatternTestData.java
@@ -26,12 +26,9 @@
import uk.gov.gchq.magmacore.hqdm.model.PointInTime;
import uk.gov.gchq.magmacore.hqdm.model.RecognizingLanguageCommunity;
import uk.gov.gchq.magmacore.hqdm.model.RepresentationByPattern;
-import uk.gov.gchq.magmacore.hqdm.model.RepresentationBySign;
import uk.gov.gchq.magmacore.hqdm.model.Role;
-import uk.gov.gchq.magmacore.hqdm.model.Sign;
import uk.gov.gchq.magmacore.hqdm.model.StateOfFunctionalSystem;
import uk.gov.gchq.magmacore.hqdm.model.StateOfPerson;
-import uk.gov.gchq.magmacore.hqdm.model.StateOfSign;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.IriBase;
@@ -69,7 +66,8 @@ public class AssociationPatternTestData {
/**
* Create some Associations for the test.
*
- * @param db A {@link MagmaCoreDatabase}.
+ * @param db
+ * A {@link MagmaCoreDatabase}.
*/
static void createAssociationPattern(final MagmaCoreDatabase db) {
// Create PossibleWorlds IRI.
@@ -91,25 +89,25 @@ static void createAssociationPattern(final MagmaCoreDatabase db) {
userRole = ClassServices.createRole(userRoleIri);
userRole.addValue(RDFS.RDF_TYPE, HQDM.ROLE);
userRole.addStringValue(HQDM.ENTITY_NAME, "userRole");
- userRole.addValue(HQDM.PART_OF_BY_CLASS_, userAssociationKindIri);
+ userRole.addValue(HQDM.PART_OF_BY_CLASS, userAssociationKindIri);
systemRoleIri = new IRI(TEST_BASE, "systemRole");
systemRole = ClassServices.createRole(systemRoleIri);
systemRole.addValue(RDFS.RDF_TYPE, HQDM.ROLE);
systemRole.addStringValue(HQDM.ENTITY_NAME, "systemRole");
- systemRole.addValue(HQDM.PART_OF_BY_CLASS_, userAssociationKindIri);
+ systemRole.addValue(HQDM.PART_OF_BY_CLASS, userAssociationKindIri);
final IRI managerRoleIri = new IRI(TEST_BASE, "managerRole");
final Role managerRole = ClassServices.createRole(managerRoleIri);
managerRole.addValue(RDFS.RDF_TYPE, HQDM.ROLE);
managerRole.addStringValue(HQDM.ENTITY_NAME, "managerRole");
- managerRole.addValue(HQDM.PART_OF_BY_CLASS_, managerKindIri);
+ managerRole.addValue(HQDM.PART_OF_BY_CLASS, managerKindIri);
final IRI workerRoleIri = new IRI(TEST_BASE, "workerRole");
final Role workerRole = ClassServices.createRole(workerRoleIri);
workerRole.addValue(RDFS.RDF_TYPE, HQDM.ROLE);
workerRole.addStringValue(HQDM.ENTITY_NAME, "workerRole");
- workerRole.addValue(HQDM.PART_OF_BY_CLASS_, managerKindIri);
+ workerRole.addValue(HQDM.PART_OF_BY_CLASS, managerKindIri);
// Create People
final IRI person1Iri = new IRI(TEST_BASE, "person1");
@@ -159,13 +157,13 @@ static void createAssociationPattern(final MagmaCoreDatabase db) {
final IRI person2WorkerForPerson3Iri = new IRI(TEST_BASE, "person2WorkerForPerson3");
final Association person1UserOfSystem1 = SpatioTemporalExtentServices
- .createAssociation(person1UserOfSystem1Iri);
+ .createAssociation(person1UserOfSystem1Iri);
final Association person2UserOfSystem2 = SpatioTemporalExtentServices
- .createAssociation(person2UserOfSystem2Iri);
+ .createAssociation(person2UserOfSystem2Iri);
final Association person1WorkerForPerson2 = SpatioTemporalExtentServices
- .createAssociation(person1WorkerForPerson2Iri);
+ .createAssociation(person1WorkerForPerson2Iri);
final Association person2WorkerForPerson3 = SpatioTemporalExtentServices
- .createAssociation(person2WorkerForPerson3Iri);
+ .createAssociation(person2WorkerForPerson3Iri);
person1UserOfSystem1.addValue(RDFS.RDF_TYPE, HQDM.ASSOCIATION);
person1UserOfSystem1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
@@ -201,7 +199,7 @@ static void createAssociationPattern(final MagmaCoreDatabase db) {
person1State1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
system1State1 = SpatioTemporalExtentServices
- .createStateOfFunctionalSystem(new IRI(TEST_BASE, "system1State1"));
+ .createStateOfFunctionalSystem(new IRI(TEST_BASE, "system1State1"));
system1State1.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_FUNCTIONAL_SYSTEM);
system1State1.addValue(RDFS.RDF_TYPE, HQDM.PARTICIPANT);
system1State1.addValue(HQDM.TEMPORAL_PART_OF, system1Iri);
@@ -219,7 +217,7 @@ static void createAssociationPattern(final MagmaCoreDatabase db) {
person2State1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
system2State1 = SpatioTemporalExtentServices
- .createStateOfFunctionalSystem(new IRI(TEST_BASE, "system2State1"));
+ .createStateOfFunctionalSystem(new IRI(TEST_BASE, "system2State1"));
system2State1.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_FUNCTIONAL_SYSTEM);
system2State1.addValue(RDFS.RDF_TYPE, HQDM.PARTICIPANT);
system2State1.addValue(HQDM.TEMPORAL_PART_OF, system2Iri);
@@ -259,76 +257,42 @@ static void createAssociationPattern(final MagmaCoreDatabase db) {
person3State1.addValue(HQDM.PARTICIPANT_IN, person2WorkerForPerson3Iri);
person3State1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
- // Add signs to name the people, re-using person states for brevity.
- final IRI patternIri = new IRI(TEST_BASE, UID.uid());
- final Pattern pattern = ClassServices.createPattern(patternIri);
- pattern.addValue(RDFS.RDF_TYPE, HQDM.PATTERN);
- pattern.addStringValue(HQDM.ENTITY_NAME, "pattern");
-
- final IRI repByPatternIri = new IRI(TEST_BASE, UID.uid());
- final RepresentationByPattern repByPattern = ClassServices
- .createRepresentationByPattern(repByPatternIri);
- repByPattern.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_PATTERN);
- repByPattern.addValue(HQDM.CONSISTS_OF_BY_CLASS, patternIri);
+ // Create a community to recognize the patterns
final IRI communityIri = new IRI(TEST_BASE, UID.uid());
final RecognizingLanguageCommunity community = SpatioTemporalExtentServices
- .createRecognizingLanguageCommunity(communityIri);
+ .createRecognizingLanguageCommunity(communityIri);
community.addValue(RDFS.RDF_TYPE, HQDM.RECOGNIZING_LANGUAGE_COMMUNITY);
community.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
- repByPattern.addValue(HQDM.CONSISTS_OF_IN_MEMBERS, communityIri);
-
- // Represent person1State1 using sign1
- final IRI sign1Iri = new IRI(TEST_BASE, UID.uid());
- final Sign sign1 = SpatioTemporalExtentServices.createSign(sign1Iri);
- sign1.addValue(RDFS.RDF_TYPE, HQDM.SIGN);
- sign1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
- sign1.addValue(HQDM.MEMBER_OF_, patternIri);
- sign1.addStringValue(HQDM.VALUE_, "sign1Value");
-
- final IRI stateOfSign1Iri = new IRI(TEST_BASE, UID.uid());
- final StateOfSign stateOfSign1 = SpatioTemporalExtentServices.createStateOfSign(stateOfSign1Iri);
- stateOfSign1.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN);
- stateOfSign1.addValue(HQDM.TEMPORAL_PART_OF, sign1Iri);
- stateOfSign1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
-
- final IRI repBySign1Iri = new IRI(TEST_BASE, UID.uid());
- final RepresentationBySign repBySign1 = SpatioTemporalExtentServices
- .createRepresentationBySign(repBySign1Iri);
- repBySign1.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_SIGN);
- repBySign1.addValue(HQDM.REPRESENTS, person1State1Iri);
- repBySign1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
- repBySign1.addValue(HQDM.CONSISTS_OF, stateOfSign1Iri);
- repBySign1.addValue(HQDM.MEMBER_OF_, repByPatternIri);
- repBySign1.addValue(HQDM.CONSISTS_OF_, communityIri);
- stateOfSign1.addValue(HQDM.PARTICIPANT_IN, repBySign1Iri);
- community.addValue(HQDM.PARTICIPANT_IN, repBySign1Iri);
-
- // Represent person2State1 using sign2
- final IRI sign2Iri = new IRI(TEST_BASE, UID.uid());
- final Sign sign2 = SpatioTemporalExtentServices.createSign(sign2Iri);
- sign2.addValue(RDFS.RDF_TYPE, HQDM.SIGN);
- sign2.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
- sign2.addValue(HQDM.MEMBER_OF_, patternIri);
- sign2.addStringValue(HQDM.VALUE_, "sign2Value");
-
- final IRI stateOfSign2Iri = new IRI(TEST_BASE, UID.uid());
- final StateOfSign stateOfSign2 = SpatioTemporalExtentServices.createStateOfSign(stateOfSign2Iri);
- stateOfSign2.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN);
- stateOfSign2.addValue(HQDM.TEMPORAL_PART_OF, sign2Iri);
- stateOfSign2.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
-
- final IRI repBySign2Iri = new IRI(TEST_BASE, UID.uid());
- final RepresentationBySign repBySign2 = SpatioTemporalExtentServices
- .createRepresentationBySign(repBySign2Iri);
- repBySign2.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_SIGN);
- repBySign2.addValue(HQDM.REPRESENTS, person2State1Iri);
- repBySign2.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
- repBySign2.addValue(HQDM.CONSISTS_OF, stateOfSign2Iri);
- repBySign2.addValue(HQDM.MEMBER_OF_, repByPatternIri);
- repBySign2.addValue(HQDM.CONSISTS_OF_, communityIri);
- stateOfSign2.addValue(HQDM.PARTICIPANT_IN, repBySign2Iri);
- community.addValue(HQDM.PARTICIPANT_IN, repBySign2Iri);
+
+ // Represent person1State1 using pattern1
+
+ final IRI pattern1Iri = new IRI(TEST_BASE, UID.uid());
+ final Pattern pattern1 = ClassServices.createPattern(pattern1Iri);
+ pattern1.addValue(RDFS.RDF_TYPE, HQDM.PATTERN);
+ pattern1.addStringValue(HQDM.SKOS_DEFINITION, "sign1Value");
+
+ final IRI repByPattern1Iri = new IRI(TEST_BASE, UID.uid());
+ final RepresentationByPattern repByPattern1 = ClassServices
+ .createRepresentationByPattern(repByPattern1Iri);
+ repByPattern1.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_PATTERN);
+ repByPattern1.addValue(HQDM.REPRESENTED, person1State1Iri);
+ repByPattern1.addValue(HQDM.CONSISTS_OF_BY_CLASS, pattern1Iri);
+ repByPattern1.addValue(HQDM.CONSISTS_OF_IN_MEMBERS, communityIri);
+
+ // Represent person2State1 using pattern2
+ final IRI pattern2Iri = new IRI(TEST_BASE, UID.uid());
+ final Pattern pattern2 = ClassServices.createPattern(pattern2Iri);
+ pattern2.addValue(RDFS.RDF_TYPE, HQDM.PATTERN);
+ pattern2.addStringValue(HQDM.SKOS_DEFINITION, "sign2Value");
+
+ final IRI repByPattern2Iri = new IRI(TEST_BASE, UID.uid());
+ final RepresentationByPattern repByPattern2 = ClassServices
+ .createRepresentationByPattern(repByPattern2Iri);
+ repByPattern2.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_PATTERN);
+ repByPattern2.addValue(HQDM.REPRESENTED, person2State1Iri);
+ repByPattern2.addValue(HQDM.CONSISTS_OF_BY_CLASS, pattern2Iri);
+ repByPattern2.addValue(HQDM.CONSISTS_OF_IN_MEMBERS, communityIri);
// Persist all objects
db.beginWrite();
@@ -359,16 +323,13 @@ static void createAssociationPattern(final MagmaCoreDatabase db) {
db.create(system1State1);
db.create(system2State1);
- db.create(sign1);
- db.create(stateOfSign1);
- db.create(pattern);
db.create(community);
- db.create(repByPattern);
- db.create(repBySign1);
- db.create(sign2);
- db.create(stateOfSign2);
- db.create(repBySign2);
+ db.create(pattern1);
+ db.create(pattern2);
+
+ db.create(repByPattern1);
+ db.create(repByPattern2);
db.commit();
}
diff --git a/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByKindOfAssociationTest.java b/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByKindOfAssociationTest.java
index 34e56555..a81b9457 100644
--- a/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByKindOfAssociationTest.java
+++ b/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByKindOfAssociationTest.java
@@ -66,7 +66,7 @@ public void testFindSuccess() {
// This query augments its object with HQDM.VALUE predicates for the current Sign values for the
// object.
- final Set values = person.values(HQDM.VALUE_);
+ final Set values = person.values(HQDM.SKOS_DEFINITION);
assertNotNull(values);
assertEquals(1, values.size());
diff --git a/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByTypeKindAndSignPatternTest.java b/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByTypeKindAndSignPatternTest.java
index bb2d47af..a76cc50b 100644
--- a/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByTypeKindAndSignPatternTest.java
+++ b/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceFindByTypeKindAndSignPatternTest.java
@@ -56,7 +56,7 @@ public void testFindSuccess() {
// This query augments its object with HQDM.VALUE predicates for the current Sign values for the
// object.
- final Set values = person.values(HQDM.VALUE_);
+ final Set values = person.values(HQDM.SKOS_DEFINITION);
assertNotNull(values);
assertEquals(1, values.size());
assertEquals("person1", values.iterator().next().toString());
diff --git a/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceTest.java b/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceTest.java
index 8c412737..907372a3 100644
--- a/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceTest.java
+++ b/core/src/test/java/uk/gov/gchq/magmacore/service/MagmaCoreServiceTest.java
@@ -159,9 +159,9 @@ public void testFindByPartialSignSuccess() throws MagmaCoreException {
// Find the required Things by sign in a transaction.
db.beginWrite();
final List extends Thing> found1 = service.findByPartialSignValue(SignPatternTestData.community1,
- SignPatternTestData.pattern1, "son1", now);
+ "son1", now);
final List extends Thing> found2 = service.findByPartialSignValue(SignPatternTestData.community2,
- SignPatternTestData.pattern2, "ERSON", now);
+ "ERSON", now);
db.commit();
// Assert the results are correct.
diff --git a/core/src/test/java/uk/gov/gchq/magmacore/service/SignPatternTestData.java b/core/src/test/java/uk/gov/gchq/magmacore/service/SignPatternTestData.java
index 0143ec6d..6c405219 100644
--- a/core/src/test/java/uk/gov/gchq/magmacore/service/SignPatternTestData.java
+++ b/core/src/test/java/uk/gov/gchq/magmacore/service/SignPatternTestData.java
@@ -14,19 +14,13 @@
package uk.gov.gchq.magmacore.service;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-
import uk.gov.gchq.magmacore.database.MagmaCoreDatabase;
import uk.gov.gchq.magmacore.hqdm.model.Pattern;
import uk.gov.gchq.magmacore.hqdm.model.Person;
-import uk.gov.gchq.magmacore.hqdm.model.PointInTime;
import uk.gov.gchq.magmacore.hqdm.model.RecognizingLanguageCommunity;
import uk.gov.gchq.magmacore.hqdm.model.RepresentationByPattern;
import uk.gov.gchq.magmacore.hqdm.model.RepresentationBySign;
-import uk.gov.gchq.magmacore.hqdm.model.Sign;
import uk.gov.gchq.magmacore.hqdm.model.StateOfPerson;
-import uk.gov.gchq.magmacore.hqdm.model.StateOfSign;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.IriBase;
@@ -44,6 +38,7 @@ public class SignPatternTestData {
static RecognizingLanguageCommunity community2;
static Pattern pattern1;
static Pattern pattern2;
+ static Pattern pattern3;
static Person person1;
static Person person2;
static Person person3;
@@ -81,10 +76,17 @@ static void createSignPattern(final MagmaCoreDatabase db) {
final IRI pattern1Iri = new IRI(TEST_BASE, "pattern1");
pattern1 = ClassServices.createPattern(pattern1Iri);
pattern1.addValue(RDFS.RDF_TYPE, HQDM.PATTERN);
+ pattern1.addStringValue(HQDM.SKOS_DEFINITION, "person1");
final IRI pattern2Iri = new IRI(TEST_BASE, "pattern2");
pattern2 = ClassServices.createPattern(pattern2Iri);
pattern2.addValue(RDFS.RDF_TYPE, HQDM.PATTERN);
+ pattern2.addStringValue(HQDM.SKOS_DEFINITION, "person2");
+
+ final IRI pattern3Iri = new IRI(TEST_BASE, "pattern3");
+ pattern3 = ClassServices.createPattern(pattern3Iri);
+ pattern3.addValue(RDFS.RDF_TYPE, HQDM.PATTERN);
+ pattern3.addStringValue(HQDM.SKOS_DEFINITION, "person3");
// Create RepresentationByPatterns
final RepresentationByPattern repByPattern1 = ClassServices
@@ -106,7 +108,7 @@ static void createSignPattern(final MagmaCoreDatabase db) {
repByPattern1.addValue(HQDM.CONSISTS_OF_BY_CLASS, pattern1.getId());
repByPattern2.addValue(HQDM.CONSISTS_OF_BY_CLASS, pattern2.getId());
- repByPattern3.addValue(HQDM.CONSISTS_OF_BY_CLASS, pattern2.getId());
+ repByPattern3.addValue(HQDM.CONSISTS_OF_BY_CLASS, pattern3.getId());
// Create KindOfPerson
kindOfPersonIri = new IRI(TEST_BASE, "kindOfPerson1");
@@ -146,82 +148,9 @@ static void createSignPattern(final MagmaCoreDatabase db) {
stateOfPerson3.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_PERSON);
stateOfPerson3.addValue(HQDM.TEMPORAL_PART_OF, person3.getId());
- // Create signs
- final Sign sign1 = SpatioTemporalExtentServices.createSign(new IRI(TEST_BASE, "sign1"));
- sign1.addValue(RDFS.RDF_TYPE, HQDM.SIGN);
- sign1.addValue(HQDM.MEMBER_OF_, pattern1Iri);
- sign1.addStringValue(HQDM.VALUE_, "person1");
-
- final Sign sign2 = SpatioTemporalExtentServices.createSign(new IRI(TEST_BASE, "sign2"));
- sign2.addValue(RDFS.RDF_TYPE, HQDM.SIGN);
- sign2.addValue(HQDM.MEMBER_OF_, pattern2Iri);
- sign2.addStringValue(HQDM.VALUE_, "person2");
-
- final Sign sign3 = SpatioTemporalExtentServices.createSign(new IRI(TEST_BASE, "sign3"));
- sign3.addValue(RDFS.RDF_TYPE, HQDM.SIGN);
- sign3.addValue(HQDM.MEMBER_OF_, pattern2Iri);
- sign3.addStringValue(HQDM.VALUE_, "person3");
-
- // Create states for the Signs
- final StateOfSign stateOfSign1 = SpatioTemporalExtentServices
- .createStateOfSign(new IRI(TEST_BASE, "stateOfSign1"));
- stateOfSign1.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN);
- stateOfSign1.addValue(HQDM.TEMPORAL_PART_OF, sign1.getId());
-
- final StateOfSign stateOfSign2 = SpatioTemporalExtentServices
- .createStateOfSign(new IRI(TEST_BASE, "stateOfSign2"));
- stateOfSign2.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN);
- stateOfSign2.addValue(HQDM.TEMPORAL_PART_OF, sign2.getId());
-
- final StateOfSign stateOfSign3 = SpatioTemporalExtentServices
- .createStateOfSign(new IRI(TEST_BASE, "stateOfSign3"));
- stateOfSign3.addValue(RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN);
- stateOfSign3.addValue(HQDM.TEMPORAL_PART_OF, sign3.getId());
-
- // Create Events for the BEGINNING and ENDING of the RepresentationBySigns
- final PointInTime begin = SpatioTemporalExtentServices.createPointInTime(new IRI(TEST_BASE, "begin"));
- final PointInTime end = SpatioTemporalExtentServices.createPointInTime(new IRI(TEST_BASE, "end"));
-
- begin.addValue(RDFS.RDF_TYPE, HQDM.POINT_IN_TIME);
- end.addValue(RDFS.RDF_TYPE, HQDM.POINT_IN_TIME);
-
- begin.addStringValue(HQDM.ENTITY_NAME, LocalDateTime.now().minusDays(1L).toInstant(ZoneOffset.UTC).toString());
- end.addStringValue(HQDM.ENTITY_NAME, LocalDateTime.now().plusDays(1L).toInstant(ZoneOffset.UTC).toString());
-
- final IRI objectId = begin.getId();
- final IRI objectId2 = end.getId();
-
- // Create RepresentationBySigns
- final RepresentationBySign repBySign1 = SpatioTemporalExtentServices
- .createRepresentationBySign(new IRI(TEST_BASE, "repBySign1"));
- repBySign1.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_SIGN);
- repBySign1.addValue(HQDM.REPRESENTS, stateOfPerson1.getId());
- repBySign1.addValue(HQDM.MEMBER_OF_, repByPattern1.getId());
- repBySign1.addValue(HQDM.BEGINNING, objectId);
- repBySign1.addValue(HQDM.ENDING, objectId2);
- community1.addValue(HQDM.PARTICIPANT_IN, repBySign1.getId());
- stateOfSign1.addValue(HQDM.PARTICIPANT_IN, repBySign1.getId());
-
- final RepresentationBySign repBySign2 = SpatioTemporalExtentServices
- .createRepresentationBySign(new IRI(TEST_BASE, "repBySign2"));
- repBySign2.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_SIGN);
- repBySign2.addValue(HQDM.REPRESENTS, stateOfPerson2.getId());
- repBySign2.addValue(HQDM.MEMBER_OF_, repByPattern2.getId());
- repBySign2.addValue(HQDM.BEGINNING, objectId);
- repBySign2.addValue(HQDM.ENDING, objectId2);
- community2.addValue(HQDM.PARTICIPANT_IN, repBySign2.getId());
- stateOfSign2.addValue(HQDM.PARTICIPANT_IN, repBySign2.getId());
-
- final RepresentationBySign repBySign3 = SpatioTemporalExtentServices
- .createRepresentationBySign(new IRI(TEST_BASE, "repBySign3"));
- repBySign3.addValue(RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_SIGN);
- repBySign3.addValue(HQDM.REPRESENTS, stateOfPerson3.getId());
- repBySign3.addValue(HQDM.MEMBER_OF_, repByPattern2.getId());
- repBySign3.addValue(HQDM.BEGINNING, objectId);
- repBySign3.addValue(HQDM.ENDING, objectId2);
- community2.addValue(HQDM.PARTICIPANT_IN, repBySign3.getId());
- stateOfSign3.addValue(HQDM.PARTICIPANT_IN, repBySign3.getId());
-
+ repByPattern1.addValue(HQDM.REPRESENTED, stateOfPerson1.getId());
+ repByPattern2.addValue(HQDM.REPRESENTED, stateOfPerson2.getId());
+ repByPattern3.addValue(HQDM.REPRESENTED, stateOfPerson3.getId());
// Persist all objects
db.beginWrite();
@@ -229,6 +158,7 @@ static void createSignPattern(final MagmaCoreDatabase db) {
db.create(community2);
db.create(pattern1);
db.create(pattern2);
+ db.create(pattern3);
db.create(repByPattern1);
db.create(repByPattern2);
db.create(repByPattern3);
@@ -238,17 +168,6 @@ static void createSignPattern(final MagmaCoreDatabase db) {
db.create(stateOfPerson1);
db.create(stateOfPerson2);
db.create(stateOfPerson3);
- db.create(sign1);
- db.create(sign2);
- db.create(sign3);
- db.create(stateOfSign1);
- db.create(stateOfSign2);
- db.create(stateOfSign3);
- db.create(begin);
- db.create(end);
- db.create(repBySign1);
- db.create(repBySign2);
- db.create(repBySign3);
db.commit();
}
diff --git a/examples/pom.xml b/examples/pom.xml
index 5a6bba49..4ab02797 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -1,5 +1,7 @@
-
+
4.0.0
uk.gov.gchq.magma-core
@@ -23,10 +25,18 @@
uk.gov.gchq.magma-core
core
+
+ uk.gov.gchq.magma-core
+ hqdm-canonical
+
uk.gov.gchq.magma-core
model-extension-example
-
+
+
+ uk.gov.gchq.magma-core
+ model-extension-f35
+
junit
junit
diff --git a/examples/src/main/java/module-info.java b/examples/src/main/java/module-info.java
index 0e304e74..c6baa8be 100644
--- a/examples/src/main/java/module-info.java
+++ b/examples/src/main/java/module-info.java
@@ -20,7 +20,7 @@
requires uk.gov.gchq.magmacore.hqdm;
requires uk.gov.gchq.magmacore;
requires uk.gov.gchq.magmacore.examples.extensions;
+ requires uk.gov.gchq.magmacore.examples.extensions.f35;
+ requires uk.gov.gchq.magmacore.hqdm.canonical;
exports uk.gov.gchq.magmacore.examples.service;
-
- uses uk.gov.gchq.magmacore.hqdm.extensions.ExtensionServiceProvider;
}
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/F35ModelExtensionTest.java b/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/F35ModelExtensionTest.java
new file mode 100644
index 00000000..bcc8046d
--- /dev/null
+++ b/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/F35ModelExtensionTest.java
@@ -0,0 +1,325 @@
+package uk.gov.gchq.magmacore.examples.extensions;
+
+import java.util.List;
+
+import uk.gov.gchq.magmacore.examples.extensions.f35.ext.F35ExtensionService;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.Constants;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135Engine;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135EngineComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135EngineSystem;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135Turbine;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135TurbineComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135VerticalLiftSystem;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F135VerticalLiftSystemComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35Aircraft;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35Airframe;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35AirframeComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35EjectionSeatComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35EngineComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35TurbineComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.F35VerticalLiftSystemComponent;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF135EngineInF135EngineSystem;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF135EngineInF35Aircraft;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF135TurbineInF135EngineSystem;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF135TurbineInF35Aircraft;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF135VLSInF135EngineSystem;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF135VLSInF35Aircraft;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledF35AirframeInF35Aircraft;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.InstalledUS16EEjectionSeatInF35Aircraft;
+import uk.gov.gchq.magmacore.examples.extensions.f35.model.US16EEjectionSeat;
+import uk.gov.gchq.magmacore.hqdm.model.Event;
+import uk.gov.gchq.magmacore.hqdm.model.Thing;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IriBase;
+import uk.gov.gchq.magmacore.hqdm.services.SpatioTemporalExtentServices;
+import uk.gov.gchq.magmacore.service.MagmaCoreServiceFactory;
+
+/**
+ * Test the model extension provided by the model-extension-f35 module.
+ *
+ *
+ * Run this using mvn exec:java
+ * -Dexec.mainClass=uk.gov.gchq.magmacore.examples.extensions.F35ModelExtensionTest
+ *
+ */
+public class F35ModelExtensionTest {
+
+ // Declare an IRI base for the data to be created.
+ private static final IriBase TEST_BASE = new IriBase("test", "http://example.com/test#");
+
+ private static final F35ExtensionService f35 = new F35ExtensionService();
+
+ /**
+ * Main entry point.
+ *
+ * @param args
+ * a String array
+ */
+ public static void main(final String[] args) {
+ // Create a MagmaCoreService with an in-memory Apache Jena database.
+ final var mcs = MagmaCoreServiceFactory.createWithJenaDatabase();
+ mcs.loadTtl(f35.getDomainTtl());
+
+ // Persist the entity in the database.
+ mcs.runInWriteTransaction(svc -> {
+ final var entities = run();
+ entities.stream().forEach(e -> {
+ svc.create(e);
+ });
+ return svc;
+ });
+
+ mcs.exportTtl(System.out);
+ }
+
+ /**
+ * Build an F35.
+ *
+ * @return A List of FunctionalObject.
+ */
+ private static List run() {
+ // Create a PossibleWorld.
+ final var possibleWorldIri = iri();
+ final var possibleWorld = SpatioTemporalExtentServices.createPossibleWorld(possibleWorldIri);
+
+ // ------------------------------------------------------------------------------------------------
+ // Create the OrdinaryFunctionalObjects that will be installed in an aircraft
+ // ------------------------------------------------------------------------------------------------
+
+ // Manufacture a VLS
+ final var vlsIri = iri();
+ final F135VerticalLiftSystem vls = f35.createEntity(Constants.F135_VERTICAL_LIFT_SYSTEM_TYPE_NAME, vlsIri);
+ vls.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+
+ // Manufacture a Turbine
+ final var turbineIri = iri();
+ final F135Turbine turbine = f35.createEntity(Constants.F135_TURBINE_TYPE_NAME, turbineIri);
+ turbine.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+
+ // Manufacture an Engine
+ final var engineIri = iri();
+ final F135Engine engine = f35.createEntity(Constants.F135_ENGINE_TYPE_NAME, engineIri);
+ engine.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+
+ // Manufacture an Ejection Seat
+ final var ejectionSeatIri = iri();
+ final US16EEjectionSeat ejectionSeat = f35.createEntity(Constants.US16E_EJECTION_SEAT_TYPE_NAME, ejectionSeatIri);
+ ejectionSeat.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+
+ // Manufacture an Airframe
+ final var airframeIri = iri();
+ final F35Airframe airframe = f35.createEntity(Constants.F35_AIRFRAME_TYPE_NAME, airframeIri);
+ airframe.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+
+ // ------------------------------------------------------------------------------------------------
+ // Create the engine Functional System.
+ // ------------------------------------------------------------------------------------------------
+
+ // Manufacture an Engine System
+ final var engineSystem1Iri = iri();
+ final var engineComponentIri = iri();
+ final var turbineComponentIri = iri();
+ final var vlsComponentIri = iri();
+
+ final F135EngineComponent engineComponent = f35.createEntity(Constants.F135_ENGINE_COMPONENT_TYPE_NAME, engineComponentIri);
+ final F135TurbineComponent turbineComponent = f35.createEntity(Constants.F135_TURBINE_COMPONENT_TYPE_NAME, turbineComponentIri);
+ final F135VerticalLiftSystemComponent vlsComponent = f35.createEntity(Constants.F135_VERTICAL_LIFT_SYSTEM_COMPONENT_TYPE_NAME, vlsComponentIri);
+
+ final F135EngineSystem engineSystem1 = f35.createEntity(Constants.F135_ENGINE_SYSTEM_TYPE_NAME, engineSystem1Iri);
+ engineSystem1.setEngine(engineComponent);
+ engineSystem1.setTurbine(turbineComponent);
+ engineSystem1.setVerticalLiftSystem(vlsComponent);
+
+ engineSystem1.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ engineComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ turbineComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ vlsComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ // ------------------------------------------------------------------------------------------------
+ // Create the Aircraft Functional System
+ // ------------------------------------------------------------------------------------------------
+
+ // Manufacture an Aircraft
+ final var f35AircraftSystemIri = iri();
+ final var f35AirframeComponentIri = iri();
+ final var f35EngineComponentIri = iri();
+ final var f35EjectionSeatComponentIri = iri();
+ final var f35VerticalLiftSystemComponentIri = iri();
+ final var f35TurbineComponentIri = iri();
+
+ final F35Aircraft aircraft2101 = f35.createEntity(Constants.F35_AIRCRAFT_TYPE_NAME, f35AircraftSystemIri);
+ final F35AirframeComponent f35AirframeComponent = f35.createEntity(Constants.F35_AIRFRAME_COMPONENT_TYPE_NAME, f35AirframeComponentIri);
+ final F35EngineComponent f35EngineComponent = f35.createEntity(Constants.F35_ENGINE_COMPONENT_TYPE_NAME, f35EngineComponentIri);
+ final F35EjectionSeatComponent f35EjectionSeatComponent = f35.createEntity(Constants.F35_EJECTION_SEAT_COMPONENT_TYPE_NAME,
+ f35EjectionSeatComponentIri);
+ final F35VerticalLiftSystemComponent f35VerticalLiftSystemComponent = f35.createEntity(Constants.F35_VERTICAL_LIFT_SYSTEM_COMPONENT_TYPE_NAME,
+ f35VerticalLiftSystemComponentIri);
+ final F35TurbineComponent f35TurbineComponent = f35.createEntity(Constants.F35_TURBINE_COMPONENT_TYPE_NAME, f35TurbineComponentIri);
+
+ aircraft2101.setEngine(f35EngineComponent);
+ aircraft2101.setTurbine(f35TurbineComponent);
+ aircraft2101.setAirframe(f35AirframeComponent);
+ aircraft2101.setEjectionSeat(f35EjectionSeatComponent);
+ aircraft2101.setVerticalLiftSystem(f35VerticalLiftSystemComponent);
+
+ aircraft2101.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ f35AirframeComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ f35EngineComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ f35EjectionSeatComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ f35VerticalLiftSystemComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ f35TurbineComponent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+
+ // ------------------------------------------------------------------------------------------------
+ // Install the parts of the engine system.
+ // ------------------------------------------------------------------------------------------------
+
+ // Install the engine in the engine system
+ final var engineInstalledEngineSystemIri = iri();
+ final InstalledF135EngineInF135EngineSystem engineInstalledInEngineSystem =
+ f35.createEntity(Constants.INSTALLED_F135_ENGINE_IN_F135_ENGINE_SYSTEM_TYPE_NAME, engineInstalledEngineSystemIri);
+
+ final var engineInstalledEngineSystemBeginningIri = iri();
+ final Event engineInstalledEngineSystemBeginningEvent = SpatioTemporalExtentServices.createEvent(engineInstalledEngineSystemBeginningIri);
+ engineInstalledEngineSystemBeginningEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ engineInstalledInEngineSystem.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ engineInstalledInEngineSystem.addValue(HQDM.BEGINNING, engineInstalledEngineSystemBeginningIri);
+ engineInstalledInEngineSystem.addValue(HQDM.TEMPORAL_PART_OF, engineIri);
+ engineInstalledInEngineSystem.addValue(HQDM.TEMPORAL_PART_OF, engineComponentIri);
+
+ // Install the turbine in the engine system.
+ final var turbineInstalledInEngineSystemIri = iri();
+ final InstalledF135TurbineInF135EngineSystem turbineInF135EngineSystem =
+ f35.createEntity(Constants.INSTALLED_F135_TURBINE_IN_F135_ENGINE_SYSTEM_TYPE_NAME, turbineInstalledInEngineSystemIri);
+
+ final var turbineInstalledInEngineSystemBeginningIri = iri();
+ final Event turbineInstalledInEngineSystemEvent = SpatioTemporalExtentServices.createEvent(turbineInstalledInEngineSystemBeginningIri);
+ turbineInstalledInEngineSystemEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ turbineInF135EngineSystem.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ turbineInF135EngineSystem.addValue(HQDM.BEGINNING, turbineInstalledInEngineSystemBeginningIri);
+ turbineInF135EngineSystem.addValue(HQDM.TEMPORAL_PART_OF, turbineIri);
+ turbineInF135EngineSystem.addValue(HQDM.TEMPORAL_PART_OF, turbineComponentIri);
+
+ // Install the vls in the engine system.
+ final var vlsInstalledInEngineSystemIri = iri();
+ final InstalledF135VLSInF135EngineSystem vlsInstalledInEngineSystem =
+ f35.createEntity(Constants.INSTALLED_F135_VLS_IN_F135_ENGINE_SYSTEM_TYPE_NAME, vlsInstalledInEngineSystemIri);
+
+ final var vlsInstalledInEngineSystemBeginningIri = iri();
+ final Event vlsInstalledInEngineSystemEvent = SpatioTemporalExtentServices.createEvent(vlsInstalledInEngineSystemBeginningIri);
+ vlsInstalledInEngineSystemEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ vlsInstalledInEngineSystem.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ vlsInstalledInEngineSystem.addValue(HQDM.BEGINNING, vlsInstalledInEngineSystemBeginningIri);
+ vlsInstalledInEngineSystem.addValue(HQDM.TEMPORAL_PART_OF, vlsIri);
+ vlsInstalledInEngineSystem.addValue(HQDM.TEMPORAL_PART_OF, vlsComponentIri);
+
+ // ------------------------------------------------------------------------------------------------
+ // Install the parts of the Aircraft System.
+ // ------------------------------------------------------------------------------------------------
+
+ // Install the airframe in the aircraft
+ final var airframeInstalledInF35AircraftIri = iri();
+ final InstalledF35AirframeInF35Aircraft airframeInstalledInF35Aircraft =
+ f35.createEntity(Constants.INSTALLED_F35_AIRFRAME_IN_F35_AIRCRAFT_NAME, airframeInstalledInF35AircraftIri);
+
+ final var airframeInstalledInF35AircraftBeginningIri = iri();
+ final var airframeInstalledInF35AircraftBeginningEvent = SpatioTemporalExtentServices.createEvent(airframeInstalledInF35AircraftBeginningIri);
+ airframeInstalledInF35AircraftBeginningEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ airframeInstalledInF35Aircraft.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ airframeInstalledInF35Aircraft.addValue(HQDM.BEGINNING, airframeInstalledInF35AircraftBeginningIri);
+ airframeInstalledInF35Aircraft.addValue(HQDM.TEMPORAL_PART_OF, airframeIri);
+ airframeInstalledInF35Aircraft.addValue(HQDM.TEMPORAL_PART_OF, f35AirframeComponentIri);
+
+ // Install the engine in the aircraft.
+ final var engineInAircraftIri = iri();
+ final InstalledF135EngineInF35Aircraft engineInAircraft = f35.createEntity(Constants.INSTALLED_F135_ENGINE_IN_F35_AIRCRAFT_NAME, engineInAircraftIri);
+
+ final var engineInAircraftBeginningIri = iri();
+ final var engineInAircraftBeginningEvent = SpatioTemporalExtentServices.createEvent(engineInAircraftBeginningIri);
+ engineInAircraftBeginningEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ engineInAircraft.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ engineInAircraft.addValue(HQDM.BEGINNING, engineInAircraftBeginningIri);
+ engineInAircraft.addValue(HQDM.TEMPORAL_PART_OF, engineIri);
+ engineInAircraft.addValue(HQDM.TEMPORAL_PART_OF, f35EngineComponentIri);
+
+ // Install the ejection seat in the aircraft.
+ final var ejectionSeatInAircraftIri = iri();
+ final InstalledUS16EEjectionSeatInF35Aircraft ejectionSeatInAircraft =
+ f35.createEntity(Constants.INSTALLED_US16E_EJECTION_SEAT_IN_F35_AIRCRAFT_NAME, ejectionSeatInAircraftIri);
+
+ final var ejectionSeatInAircraftBeginningIri = iri();
+ final var ejectionSeatInAircraftBeginningEvent = SpatioTemporalExtentServices.createEvent(ejectionSeatInAircraftBeginningIri);
+ ejectionSeatInAircraftBeginningEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ ejectionSeatInAircraft.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ ejectionSeatInAircraft.addValue(HQDM.BEGINNING, ejectionSeatInAircraftBeginningIri);
+ ejectionSeatInAircraft.addValue(HQDM.TEMPORAL_PART_OF, ejectionSeatIri);
+ ejectionSeatInAircraft.addValue(HQDM.TEMPORAL_PART_OF, f35EjectionSeatComponentIri);
+
+ // Install the VLS in the aircraft.
+ final var vlsInAircraftIri = iri();
+ final InstalledF135VLSInF35Aircraft vlsInAircraft = f35.createEntity(Constants.INSTALLED_F135_VLS_IN_F35_AIRCRAFT_TYPE_NAME, vlsInAircraftIri);
+
+ final var vlsInAircraftBeginningIri = iri();
+ final var vlsInAircraftBeginningEvent = SpatioTemporalExtentServices.createEvent(vlsInAircraftBeginningIri);
+ vlsInAircraftBeginningEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ vlsInAircraft.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ vlsInAircraft.addValue(HQDM.BEGINNING, vlsInAircraftBeginningIri);
+ vlsInAircraft.addValue(HQDM.TEMPORAL_PART_OF, vlsIri);
+ vlsInAircraft.addValue(HQDM.TEMPORAL_PART_OF, f35VerticalLiftSystemComponentIri);
+
+ // Install the turbine in the aircraft.
+ final var turbineInAircraftIri = iri();
+ final InstalledF135TurbineInF35Aircraft turbineInAircraft = f35.createEntity(Constants.INSTALLED_F135_TURBINE_IN_F35_AIRCRAFT_TYPE_NAME, turbineInAircraftIri);
+
+ final var turbineInAircraftBeginningIri = iri();
+ final var turbineInAircraftBeginningEvent = SpatioTemporalExtentServices.createEvent(turbineInAircraftBeginningIri);
+ turbineInAircraftBeginningEvent.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ turbineInAircraft.addValue(HQDM.PART_OF_POSSIBLE_WORLD, possibleWorldIri);
+ turbineInAircraft.addValue(HQDM.BEGINNING, turbineInAircraftBeginningIri);
+ turbineInAircraft.addValue(HQDM.TEMPORAL_PART_OF, turbineIri);
+ turbineInAircraft.addValue(HQDM.TEMPORAL_PART_OF, f35TurbineComponentIri);
+ // ------------------------------------------------------------------------------------------------
+ // return all the entities.
+ // ------------------------------------------------------------------------------------------------
+
+ return List.of(
+ possibleWorld,
+ vls,
+ turbine,
+ engine,
+ ejectionSeat,
+ airframe,
+ engineComponent,
+ turbineComponent,
+ vlsComponent,
+ engineSystem1,
+ aircraft2101,
+ f35AirframeComponent,
+ f35EngineComponent,
+ f35EjectionSeatComponent,
+ f35VerticalLiftSystemComponent,
+ f35TurbineComponent,
+ engineInstalledInEngineSystem,
+ engineInstalledEngineSystemBeginningEvent,
+ turbineInF135EngineSystem,
+ turbineInstalledInEngineSystemEvent,
+ vlsInstalledInEngineSystem,
+ vlsInstalledInEngineSystemEvent,
+ airframeInstalledInF35Aircraft,
+ airframeInstalledInF35AircraftBeginningEvent,
+ engineInAircraft,
+ engineInAircraftBeginningEvent,
+ ejectionSeatInAircraft,
+ ejectionSeatInAircraftBeginningEvent,
+ vlsInAircraft,
+ vlsInAircraftBeginningEvent,
+ turbineInAircraft,
+ turbineInAircraftBeginningEvent
+ );
+ }
+
+ private static long id = 0;
+
+ private static IRI iri() {
+ return new IRI(TEST_BASE, Long.toString(id++));
+ }
+}
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/ModelExtensionTest.java b/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/ModelExtensionTest.java
index 980829d3..117fa4a4 100644
--- a/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/ModelExtensionTest.java
+++ b/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/ModelExtensionTest.java
@@ -2,9 +2,9 @@
import java.util.UUID;
+import uk.gov.gchq.magmacore.examples.extensions.ext.HqdmExtensionService;
import uk.gov.gchq.magmacore.examples.extensions.model.Constants;
import uk.gov.gchq.magmacore.examples.extensions.model.UkLimitedCompany;
-import uk.gov.gchq.magmacore.examples.extensions.model.UkLimitedCompanyImpl;
import uk.gov.gchq.magmacore.hqdm.model.Thing;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
@@ -25,6 +25,8 @@ public class ModelExtensionTest {
// Declare an IRI base for the data to be created.
private static final IriBase TEST_BASE = new IriBase("test", "http://example.com/test#");
+ private static final HqdmExtensionService EXT = new HqdmExtensionService();
+
/**
* Main entry point.
*
@@ -33,6 +35,7 @@ public class ModelExtensionTest {
public static void main(final String[] args) {
// Create a MagmaCoreService with an in-memory Apache Jena database.
final var mcs = MagmaCoreServiceFactory.createWithJenaDatabase();
+ mcs.loadTtl(EXT.getDomainTtl());
// The entity will be a part of a dummy possible_world, we just use the IRI
// rather than creating the possible_world for this example.
@@ -40,7 +43,7 @@ public static void main(final String[] args) {
// Create an IRI for the entity we want to create, then create the entity.
final var entityIri = new IRI(TEST_BASE, UUID.randomUUID().toString());
- final Thing entity = new UkLimitedCompanyImpl(entityIri);
+ final Thing entity = EXT.createEntity(Constants.UK_LIMITED_COMPANY_TYPE_NAME, entityIri);
// Set the RDF_TYPE and add the entity as a `part_of_possible_world`.
entity.addValue(RDFS.RDF_TYPE, Constants.UK_LIMITED_COMPANY_IRI);
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/README.md b/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/README.md
new file mode 100644
index 00000000..4bc1c692
--- /dev/null
+++ b/examples/src/main/java/uk/gov/gchq/magmacore/examples/extensions/README.md
@@ -0,0 +1,87 @@
+# F35 Model Extension Test
+
+This project demonstrates how to use the **F-35 Model Extension** within the [MagmaCore HQDM](https://github.com/gchq/MagmaCore) framework to build a semantically rich model of an F-35 aircraft, its subsystems, and installed components.
+
+## Overview
+
+`F35ModelExtensionTest.java` is a runnable Java class that:
+
+1. Creates an **in-memory RDF model** using Apache Jena.
+2. Loads the **F-35 domain model** from the `F35ExtensionService`.
+3. Programmatically constructs:
+ - A `PossibleWorld` context.
+ - An F-35 aircraft and its subsystems.
+ - All major components (engine, turbine, vertical lift system, airframe, ejection seat).
+4. Models installation events for each component.
+5. Saves and exports the model in **Turtle (TTL)** format.
+
+The code follows HQDM (High Quality Data Model) principles, where every object is created with clear temporal and spatial context.
+
+## Key Concepts
+
+- **Possible World**
+ A conceptual container for all entities created in this test.
+
+- **Functional Objects**
+ Tangible systems and components, e.g. `F135Engine`, `F135Turbine`, `F35Airframe`.
+
+- **Functional Systems**
+ Logical groupings of components, e.g. `F135EngineSystem` and the full `F35Aircraft`.
+
+- **Installation Events**
+ HQDM events linking a physical component to a system at a specific time.
+
+## Structure
+
+The build process is divided into steps:
+
+1. **Initialisation**
+ - Sets a test IRI base.
+ - Creates a MagmaCoreService with in-memory Jena.
+ - Loads the F-35 domain ontology.
+
+2. **Component Creation**
+ - Instantiates each F-35 component using `F35ExtensionService.createEntity`.
+ - Links each component to the `PossibleWorld`.
+
+3. **System Assembly**
+ - Groups components into higher-level systems (engine system, aircraft system).
+ - Uses setter methods (e.g. `setEngine()`) to define relationships.
+
+4. **Installation Modelling**
+ - Creates `Installed...` entities.
+ - Adds temporal properties (beginning events).
+ - Links installed components to both their physical object and system component.
+
+5. **Persistence & Export**
+ - Saves all created entities to the RDF model.
+ - Outputs the complete model in TTL to stdout.
+
+## Running the Example
+
+From the project root:
+
+```bash
+mvn compile exec:java \
+ -Dexec.mainClass=uk.gov.gchq.magmacore.examples.extensions.F35ModelExtensionTest
+````
+
+The output will be an RDF Turtle representation of the F-35 model.
+
+## Dependencies
+
+* **Java 17+** (recommended)
+* **Apache Maven**
+* **Apache Jena**
+* **MagmaCore HQDM**
+ Including the F-35 extension module.
+
+## How It Fits Into the Bigger Picture
+
+This example is intended as:
+
+* A **template** for building domain-specific HQDM models.
+* A **reference** for working with MagmaCore extensions.
+* A **validation tool** for the F-35 ontology.
+
+It shows how to translate complex real-world assemblies (like aircraft) into a structured semantic model that supports temporal reasoning and system configuration tracking.
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/functional/FunctionalProgrammingExample.java b/examples/src/main/java/uk/gov/gchq/magmacore/examples/functional/FunctionalProgrammingExample.java
index eb3b17af..985cd3a9 100644
--- a/examples/src/main/java/uk/gov/gchq/magmacore/examples/functional/FunctionalProgrammingExample.java
+++ b/examples/src/main/java/uk/gov/gchq/magmacore/examples/functional/FunctionalProgrammingExample.java
@@ -207,7 +207,7 @@ private static class Context {
*/
ctx.startOfResearch = SpatioTemporalExtentServices
.createPointInTime(randomIri());
- ctx.startOfResearch.addStringValue(HQDM.VALUE_, now);
+ ctx.startOfResearch.addStringValue(HQDM.SKOS_DEFINITION, now);
/*
* Create the Activity.
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExamplePatterns.java b/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExamplePatterns.java
new file mode 100644
index 00000000..3212f6f5
--- /dev/null
+++ b/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExamplePatterns.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright 2021 Crown Copyright
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package uk.gov.gchq.magmacore.examples.signs;
+
+import static uk.gov.gchq.magmacore.examples.util.DemoUtils.USER_BASE;
+import static uk.gov.gchq.magmacore.util.UID.uid;
+
+import java.util.List;
+import java.util.Map;
+
+import uk.gov.gchq.magmacore.hqdm.model.RecognizingLanguageCommunity;
+import uk.gov.gchq.magmacore.hqdm.model.Thing;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.RDFS;
+import uk.gov.gchq.magmacore.service.MagmaCoreService;
+import uk.gov.gchq.magmacore.service.transformation.DbChangeSet;
+import uk.gov.gchq.magmacore.service.transformation.DbCreateOperation;
+import uk.gov.gchq.magmacore.service.transformation.DbTransformation;
+
+/**
+ * Example signs.
+ *
+ * This actually uses patterns to represent a person.
+ *
+ */
+public class ExamplePatterns {
+
+ /**
+ * A function that populates a database.
+ *
+ * @param mcService A {@link MagmaCoreService}.
+ * @return {@link DbTransformation}.
+ */
+ public static DbTransformation populateExampleData(final MagmaCoreService mcService) {
+
+ // Apply the transformation to the database. There are dependencies between these change sets
+ // since they both depend on RDL being present, but also the occupancies depend on the
+ // individuals being present, so each change set needs to be applied before the next one
+ // can be created.
+ final DbChangeSet rdlChangeSet = ExampleSignsRdl.createRefDataObjects();
+
+ // Apply the DbChangeSet.
+ mcService.runInWriteTransaction(rdlChangeSet);
+
+ // mcService now contains the RDL needed for the next DbChangeSet
+ final DbChangeSet signsChangeSet = addPatterns(mcService);
+
+ // Apply the DbChangeSet.
+ mcService.runInWriteTransaction(signsChangeSet);
+
+ // Combine the DbChangeSets into a DbTransformation and return it as a record of the changes.
+ return new DbTransformation(List.of(rdlChangeSet, signsChangeSet));
+ }
+
+ /**
+ * Create a {@link DbChangeSet} to add the representation by sign.
+ *
+ * @param mcService {@link MagmaCoreService}.
+ * @return {@link DbChangeSet}.
+ */
+ private static DbChangeSet addPatterns(final MagmaCoreService mcService) {
+ final Map entities = mcService
+ .findByEntityNameInTransaction(List.of("English Speakers"));
+
+ // Find the required classes, kinds, and roles.
+ final RecognizingLanguageCommunity englishSpeakers = (RecognizingLanguageCommunity) entities
+ .get("English Speakers");
+ final IRI englishSpeakersIri = englishSpeakers.getId();
+
+ // Create IRIs for the new entities.
+ final IRI possibleWorld = new IRI(USER_BASE, uid());
+ final IRI person = new IRI(USER_BASE, uid());
+ final IRI wikipediaPattern = new IRI(USER_BASE, uid());
+ final IRI britannicaPattern = new IRI(USER_BASE, uid());
+ final IRI biographyPattern = new IRI(USER_BASE, uid());
+ final IRI stanfordPattern = new IRI(USER_BASE, uid());
+ final IRI nationalGeographicPattern = new IRI(USER_BASE, uid());
+ final IRI startEvent = new IRI(USER_BASE, uid());
+ final IRI endEvent = new IRI(USER_BASE, uid());
+
+ final IRI representationByWikipediaPattern = new IRI(USER_BASE, uid());
+ final IRI representationByBritannicaPattern = new IRI(USER_BASE, uid());
+ final IRI representationByBiographyPattern = new IRI(USER_BASE, uid());
+ final IRI representationByStanfordPattern = new IRI(USER_BASE, uid());
+ final IRI representationByNationalGeographicPattern = new IRI(USER_BASE, uid());
+
+ // Create the set of DbCreateOperations.
+ final List creates = List.of(
+
+ // Create the possible world that we are working in.
+ new DbCreateOperation(possibleWorld, RDFS.RDF_TYPE, HQDM.POSSIBLE_WORLD),
+ new DbCreateOperation(possibleWorld, HQDM.ENTITY_NAME, "Example Signs World"),
+
+ // Create the thing represented.
+ new DbCreateOperation(person, RDFS.RDF_TYPE, HQDM.PERSON),
+ new DbCreateOperation(person, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
+ new DbCreateOperation(person, HQDM.BEGINNING, startEvent),
+ new DbCreateOperation(person, HQDM.ENDING, endEvent),
+
+ // Create the signs that represent the thing.
+ new DbCreateOperation(wikipediaPattern, RDFS.RDF_TYPE, HQDM.PATTERN),
+ new DbCreateOperation(wikipediaPattern, HQDM.SKOS_DEFINITION, "https://en.wikipedia.org/wiki/Socrates"),
+
+ new DbCreateOperation(britannicaPattern, RDFS.RDF_TYPE, HQDM.PATTERN),
+ new DbCreateOperation(britannicaPattern, HQDM.SKOS_DEFINITION, "https://www.britannica.com/biography/Socrates"),
+
+ new DbCreateOperation(biographyPattern, RDFS.RDF_TYPE, HQDM.PATTERN),
+ new DbCreateOperation(biographyPattern, HQDM.SKOS_DEFINITION, "https://www.biography.com/scholar/socrates"),
+
+ new DbCreateOperation(stanfordPattern, RDFS.RDF_TYPE, HQDM.PATTERN),
+ new DbCreateOperation(stanfordPattern, HQDM.SKOS_DEFINITION, "https://plato.stanford.edu/entries/socrates/"),
+
+ new DbCreateOperation(nationalGeographicPattern, RDFS.RDF_TYPE, HQDM.PATTERN),
+ new DbCreateOperation(nationalGeographicPattern, HQDM.SKOS_DEFINITION,
+ "https://www.nationalgeographic.com/culture/article/socrates"),
+
+ // Create the representation by patterns.
+ new DbCreateOperation(representationByWikipediaPattern, RDFS.RDF_TYPE, HQDM.IDENTIFICATION),
+ new DbCreateOperation(representationByWikipediaPattern, HQDM.CONSISTS_OF_IN_MEMBERS,
+ englishSpeakersIri),
+ new DbCreateOperation(representationByWikipediaPattern, HQDM.CONSISTS_OF_BY_CLASS, wikipediaPattern),
+ new DbCreateOperation(representationByWikipediaPattern, HQDM.REPRESENTED, person),
+
+ new DbCreateOperation(representationByBritannicaPattern, RDFS.RDF_TYPE, HQDM.IDENTIFICATION),
+ new DbCreateOperation(representationByBritannicaPattern, HQDM.CONSISTS_OF_IN_MEMBERS,
+ englishSpeakersIri),
+ new DbCreateOperation(representationByBritannicaPattern, HQDM.CONSISTS_OF_BY_CLASS, britannicaPattern),
+ new DbCreateOperation(representationByBritannicaPattern, HQDM.REPRESENTED, person),
+
+ new DbCreateOperation(representationByBiographyPattern, RDFS.RDF_TYPE, HQDM.IDENTIFICATION),
+ new DbCreateOperation(representationByBiographyPattern, HQDM.CONSISTS_OF_IN_MEMBERS,
+ englishSpeakersIri),
+ new DbCreateOperation(representationByBiographyPattern, HQDM.CONSISTS_OF_BY_CLASS, biographyPattern),
+ new DbCreateOperation(representationByBiographyPattern, HQDM.REPRESENTED, person),
+
+ new DbCreateOperation(representationByStanfordPattern, RDFS.RDF_TYPE, HQDM.IDENTIFICATION),
+ new DbCreateOperation(representationByStanfordPattern, HQDM.CONSISTS_OF_IN_MEMBERS,
+ englishSpeakersIri),
+ new DbCreateOperation(representationByStanfordPattern, HQDM.CONSISTS_OF_BY_CLASS, stanfordPattern),
+ new DbCreateOperation(representationByStanfordPattern, HQDM.REPRESENTED, person),
+
+ new DbCreateOperation(representationByNationalGeographicPattern, RDFS.RDF_TYPE, HQDM.IDENTIFICATION),
+ new DbCreateOperation(representationByNationalGeographicPattern, HQDM.CONSISTS_OF_IN_MEMBERS,
+ englishSpeakersIri),
+ new DbCreateOperation(representationByNationalGeographicPattern, HQDM.CONSISTS_OF_BY_CLASS,
+ nationalGeographicPattern),
+ new DbCreateOperation(representationByNationalGeographicPattern, HQDM.REPRESENTED, person),
+
+ // Add beginning, ending, etc. from `association`.
+ new DbCreateOperation(startEvent, RDFS.RDF_TYPE, HQDM.EVENT),
+ new DbCreateOperation(startEvent, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
+ new DbCreateOperation(startEvent, HQDM.SKOS_DEFINITION, "2020-01-01T00:00:00"),
+
+ new DbCreateOperation(endEvent, RDFS.RDF_TYPE, HQDM.EVENT),
+ new DbCreateOperation(endEvent, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
+ new DbCreateOperation(endEvent, HQDM.SKOS_DEFINITION, "2022-12-01T00:00:00")
+ );
+
+ // Create a change set and return it.
+ return new DbChangeSet(List.of(), creates);
+ }
+}
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSigns.java b/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSigns.java
deleted file mode 100644
index fd083247..00000000
--- a/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSigns.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright 2021 Crown Copyright
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package uk.gov.gchq.magmacore.examples.signs;
-
-import static uk.gov.gchq.magmacore.examples.util.DemoUtils.USER_BASE;
-import static uk.gov.gchq.magmacore.util.UID.uid;
-
-import java.util.List;
-import java.util.Map;
-
-import uk.gov.gchq.magmacore.hqdm.model.Description;
-import uk.gov.gchq.magmacore.hqdm.model.Pattern;
-import uk.gov.gchq.magmacore.hqdm.model.RecognizingLanguageCommunity;
-import uk.gov.gchq.magmacore.hqdm.model.Thing;
-import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
-import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
-import uk.gov.gchq.magmacore.hqdm.rdf.iri.RDFS;
-import uk.gov.gchq.magmacore.service.MagmaCoreService;
-import uk.gov.gchq.magmacore.service.transformation.DbChangeSet;
-import uk.gov.gchq.magmacore.service.transformation.DbCreateOperation;
-import uk.gov.gchq.magmacore.service.transformation.DbTransformation;
-
-/**
- * Example signs.
- */
-public class ExampleSigns {
-
- /**
- * A function that populates a database.
- *
- * @param mcService A {@link MagmaCoreService}.
- * @return {@link DbTransformation}.
- */
- public static DbTransformation populateExampleData(final MagmaCoreService mcService) {
-
- // Apply the transformation to the database. There are dependencies between these change sets
- // since they both depend on RDL being present, but also the occupancies depend on the
- // individuals being present, so each change set needs to be applied before the next one
- // can be created.
- final DbChangeSet rdlChangeSet = ExampleSignsRdl.createRefDataObjects();
-
- // Apply the DbChangeSet.
- mcService.runInWriteTransaction(rdlChangeSet);
-
- // mcService now contains the RDL needed for the next DbChangeSet
- final DbChangeSet signsChangeSet = addSigns(mcService);
-
- // Apply the DbChangeSet.
- mcService.runInWriteTransaction(signsChangeSet);
-
- // Combine the DbChangeSets into a DbTransformation and return it as a record of the changes.
- return new DbTransformation(List.of(rdlChangeSet, signsChangeSet));
- }
-
- /**
- * Create a {@link DbChangeSet} to add the representation by sign.
- *
- * @param mcService {@link MagmaCoreService}.
- * @return {@link DbChangeSet}.
- */
- private static DbChangeSet addSigns(final MagmaCoreService mcService) {
- final Map entities = mcService
- .findByEntityNameInTransaction(List.of("URL Pattern", "Description By URL", "English Speakers"));
-
- // Find the required classes, kinds, and roles.
- final Pattern urlPattern = (Pattern) entities.get("URL Pattern");
- final Description descriptionByUrl = (Description) entities.get("Description By URL");
- final RecognizingLanguageCommunity englishSpeakers = (RecognizingLanguageCommunity) entities
- .get("English Speakers");
- final IRI englishSpeakersIri = englishSpeakers.getId();
-
- // Create IRIs for the new entities.
- final IRI possibleWorld = new IRI(USER_BASE, uid());
- final IRI person = new IRI(USER_BASE, uid());
- final IRI wikipediaSign = new IRI(USER_BASE, uid());
- final IRI britannica = new IRI(USER_BASE, uid());
- final IRI biography = new IRI(USER_BASE, uid());
- final IRI stanford = new IRI(USER_BASE, uid());
- final IRI nationalGeographic = new IRI(USER_BASE, uid());
- final IRI representationBySign = new IRI(USER_BASE, uid());
- final IRI startEvent = new IRI(USER_BASE, uid());
- final IRI endEvent = new IRI(USER_BASE, uid());
-
- // Create the set of DbCreateOperations.
- final List creates = List.of(
-
- // Create the possible world that we are working in.
- new DbCreateOperation(possibleWorld, RDFS.RDF_TYPE, HQDM.POSSIBLE_WORLD),
- new DbCreateOperation(possibleWorld, HQDM.ENTITY_NAME, "Example Signs World"),
-
- // Create the thing represented.
- new DbCreateOperation(person, RDFS.RDF_TYPE, HQDM.PERSON),
- new DbCreateOperation(person, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- // Create the signs that represent the thing.
- new DbCreateOperation(wikipediaSign, RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN),
- new DbCreateOperation(wikipediaSign, HQDM.MEMBER_OF_, urlPattern.getId()),
- new DbCreateOperation(wikipediaSign, HQDM.VALUE_, "https://en.wikipedia.org/wiki/Socrates"),
- new DbCreateOperation(wikipediaSign, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- new DbCreateOperation(britannica, RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN),
- new DbCreateOperation(britannica, HQDM.MEMBER_OF_, urlPattern.getId()),
- new DbCreateOperation(britannica, HQDM.VALUE_, "https://www.britannica.com/biography/Socrates"),
- new DbCreateOperation(britannica, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- new DbCreateOperation(biography, RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN),
- new DbCreateOperation(biography, HQDM.MEMBER_OF_, urlPattern.getId()),
- new DbCreateOperation(biography, HQDM.VALUE_, "https://www.biography.com/scholar/socrates"),
- new DbCreateOperation(biography, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- new DbCreateOperation(stanford, RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN),
- new DbCreateOperation(stanford, HQDM.MEMBER_OF_, urlPattern.getId()),
- new DbCreateOperation(stanford, HQDM.VALUE_, "https://plato.stanford.edu/entries/socrates/"),
- new DbCreateOperation(stanford, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- new DbCreateOperation(nationalGeographic, RDFS.RDF_TYPE, HQDM.STATE_OF_SIGN),
- new DbCreateOperation(nationalGeographic, HQDM.MEMBER_OF_, urlPattern.getId()),
- new DbCreateOperation(nationalGeographic, HQDM.VALUE_,
- "https://www.nationalgeographic.com/culture/article/socrates"),
- new DbCreateOperation(nationalGeographic, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- // Create the representation by signs.
- new DbCreateOperation(representationBySign, RDFS.RDF_TYPE, HQDM.REPRESENTATION_BY_SIGN),
- new DbCreateOperation(representationBySign, HQDM.MEMBER_OF_, descriptionByUrl.getId()),
- new DbCreateOperation(representationBySign, HQDM.REPRESENTS, person),
- new DbCreateOperation(representationBySign, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
-
- // Add beginning, ending, etc. from `association`.
- new DbCreateOperation(startEvent, RDFS.RDF_TYPE, HQDM.EVENT),
- new DbCreateOperation(startEvent, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
- new DbCreateOperation(startEvent, HQDM.ENTITY_NAME, "2020-01-01T00:00:00"),
-
- new DbCreateOperation(endEvent, RDFS.RDF_TYPE, HQDM.EVENT),
- new DbCreateOperation(endEvent, HQDM.PART_OF_POSSIBLE_WORLD, possibleWorld),
- new DbCreateOperation(endEvent, HQDM.ENTITY_NAME, "2022-12-01T00:00:00"),
-
- new DbCreateOperation(representationBySign, HQDM.BEGINNING, startEvent),
- new DbCreateOperation(representationBySign, HQDM.ENDING, endEvent),
-
- // Add the participants.
- new DbCreateOperation(englishSpeakersIri, HQDM.PARTICIPANT_IN, representationBySign),
- new DbCreateOperation(wikipediaSign, HQDM.PARTICIPANT_IN, representationBySign),
- new DbCreateOperation(britannica, HQDM.PARTICIPANT_IN, representationBySign),
- new DbCreateOperation(biography, HQDM.PARTICIPANT_IN, representationBySign),
- new DbCreateOperation(stanford, HQDM.PARTICIPANT_IN, representationBySign),
- new DbCreateOperation(nationalGeographic, HQDM.PARTICIPANT_IN, representationBySign));
-
- // Create a change set and return it.
- return new DbChangeSet(List.of(), creates);
- }
-}
diff --git a/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsRdl.java b/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsRdl.java
index e50a211a..c1b1f85c 100644
--- a/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsRdl.java
+++ b/examples/src/main/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsRdl.java
@@ -46,7 +46,7 @@ public static DbChangeSet createRefDataObjects() {
// Add DbCreateOperations to create the objects and their properties.
final List creates = List.of(
new DbCreateOperation(urlPattern, RDFS.RDF_TYPE, HQDM.PATTERN),
- new DbCreateOperation(urlPattern, HQDM.ENTITY_NAME, "URL Pattern"),
+ new DbCreateOperation(urlPattern, HQDM.SKOS_DEFINITION, "URL Pattern"),
new DbCreateOperation(description, RDFS.RDF_TYPE, HQDM.DESCRIPTION),
new DbCreateOperation(description, HQDM.ENTITY_NAME, "Description By URL"),
diff --git a/examples/src/test/java/uk/gov/gchq/magmacore/examples/extensions/ParentChildAssociationFunctionTest.java b/examples/src/test/java/uk/gov/gchq/magmacore/examples/extensions/ParentChildAssociationFunctionTest.java
index b93d9fcd..024ae609 100644
--- a/examples/src/test/java/uk/gov/gchq/magmacore/examples/extensions/ParentChildAssociationFunctionTest.java
+++ b/examples/src/test/java/uk/gov/gchq/magmacore/examples/extensions/ParentChildAssociationFunctionTest.java
@@ -40,11 +40,11 @@ public void testSuccessCase() {
// Create a beginning event for the association and its participants.
final PointInTime beginning = SpatioTemporalExtentServices.createPointInTime(randomIri());
- beginning.addStringValue(HQDM.VALUE_, "1967-04-04T10:15:30.00Z");
+ beginning.addStringValue(HQDM.SKOS_DEFINITION, "1967-04-04T10:15:30.00Z");
// Create an ending event for the association and its participants.
final PointInTime ending = SpatioTemporalExtentServices.createPointInTime(randomIri());
- ending.addStringValue(HQDM.VALUE_, "2040-12-03T10:15:30.00Z");
+ ending.addStringValue(HQDM.SKOS_DEFINITION, "2040-12-03T10:15:30.00Z");
// The entities will all be added to this PossibleWorld.
final PossibleWorld possibleWorld = SpatioTemporalExtentServices.createPossibleWorld(randomIri());
@@ -65,7 +65,7 @@ public void testSuccessCase() {
ending));
// Export the TTL for inspection.
- svc.exportTtl(System.out);
+ // svc.exportTtl(System.out);
}
diff --git a/examples/src/test/java/uk/gov/gchq/magmacore/examples/kinds/CreateOrganizationSubTypeUsingKinds.java b/examples/src/test/java/uk/gov/gchq/magmacore/examples/kinds/CreateOrganizationSubTypeUsingKinds.java
new file mode 100644
index 00000000..dd8907ee
--- /dev/null
+++ b/examples/src/test/java/uk/gov/gchq/magmacore/examples/kinds/CreateOrganizationSubTypeUsingKinds.java
@@ -0,0 +1,87 @@
+package uk.gov.gchq.magmacore.examples.kinds;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.UUID;
+
+import org.junit.Test;
+
+import uk.gov.gchq.magmacore.hqdm.model.Individual;
+import uk.gov.gchq.magmacore.hqdm.model.KindOfOrganization;
+import uk.gov.gchq.magmacore.hqdm.model.KindOfOrganizationComponent;
+import uk.gov.gchq.magmacore.hqdm.model.Organization;
+import uk.gov.gchq.magmacore.hqdm.model.PossibleWorld;
+import uk.gov.gchq.magmacore.hqdm.model.Thing;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IriBase;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.IndividualBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.KindOfOrganizationBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.KindOfOrganizationComponentBuilder;
+import uk.gov.gchq.magmacore.hqdm.services.SpatioTemporalExtentServices;
+import uk.gov.gchq.magmacore.service.MagmaCoreService;
+import uk.gov.gchq.magmacore.service.MagmaCoreServiceFactory;
+
+/**
+ * Create a KindOfOrganization and make a Thing a member_of_kind of it, then persist the Thing and
+ * make sure it is read back as an Organization.
+ *
+ *
+ * This demonstrates the implementation of instances of 'kinds' as new entity types.
+ *
+ */
+public class CreateOrganizationSubTypeUsingKinds {
+ /*
+ * A Base URL for the tests.
+ */
+ private static IriBase TEST_BASE = new IriBase("test", "http://example.com/test#");
+
+ /**
+ * Unit test.
+ */
+ @Test
+ public void test() {
+ // ACME Ltd will be a part of this possibleWorld.
+ final PossibleWorld possibleWorld = SpatioTemporalExtentServices.createPossibleWorld(randomIri());
+
+ // We need a kind of organization component for the kind of organization.
+ final KindOfOrganizationComponent componentKind = new KindOfOrganizationComponentBuilder(randomIri())
+ .build();
+
+ // Create a new kind of organization to represent companies.
+ // This will also make the new kind into a sub-type of organization.
+ final KindOfOrganization companies = new KindOfOrganizationBuilder(randomIri())
+ .has_Component_By_Class_M(componentKind)
+ .build();
+
+ // Create an Individual and make it a member_of_kind of the companies kind.
+ // This will also mean that the individual is of type organization, via its kind.
+ final Individual acmeLtd = new IndividualBuilder(randomIri())
+ .member_Of_Kind(companies)
+ .part_Of_Possible_World_M(possibleWorld)
+ .build();
+
+ // Persist everything.
+ final MagmaCoreService service = MagmaCoreServiceFactory.createWithJenaDatabase();
+ service.beginWrite();
+ service.create(companies);
+ service.create(acmeLtd);
+ service.commit();
+
+ // Read back the organization.
+ service.beginRead();
+ final Thing acmeFromDatabase = service.get(acmeLtd.getId());
+ service.commit();
+
+ // Confirm that the entity created as an individual is now actually an organization as well.
+ assertTrue(acmeFromDatabase instanceof Organization);
+ }
+
+ /**
+ * Utility method.
+ *
+ * @return IRI
+ */
+ private static IRI randomIri() {
+ return new IRI(TEST_BASE, UUID.randomUUID().toString());
+ }
+}
diff --git a/examples/src/test/java/uk/gov/gchq/magmacore/examples/plans/InvalidEntityectException.java b/examples/src/test/java/uk/gov/gchq/magmacore/examples/plans/InvalidEntityectException.java
new file mode 100644
index 00000000..d942baaa
--- /dev/null
+++ b/examples/src/test/java/uk/gov/gchq/magmacore/examples/plans/InvalidEntityectException.java
@@ -0,0 +1,13 @@
+package uk.gov.gchq.magmacore.examples.plans;
+
+/**
+ * An entity does not match HQDM or is otherwise incorrectly specified.
+ */
+public class InvalidEntityectException extends RuntimeException {
+
+ public InvalidEntityectException(final String s) {
+ super(s);
+ }
+
+}
+
diff --git a/examples/src/test/java/uk/gov/gchq/magmacore/examples/plans/PlanAndRequirementsExample.java b/examples/src/test/java/uk/gov/gchq/magmacore/examples/plans/PlanAndRequirementsExample.java
new file mode 100644
index 00000000..ad28a46a
--- /dev/null
+++ b/examples/src/test/java/uk/gov/gchq/magmacore/examples/plans/PlanAndRequirementsExample.java
@@ -0,0 +1,309 @@
+package uk.gov.gchq.magmacore.examples.plans;
+
+import java.security.InvalidParameterException;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
+import java.util.HashMap;
+
+import org.junit.Test;
+
+import uk.gov.gchq.magmacore.hqdm.model.ClassOfState;
+import uk.gov.gchq.magmacore.hqdm.model.Event;
+import uk.gov.gchq.magmacore.hqdm.model.Plan;
+import uk.gov.gchq.magmacore.hqdm.model.PossibleWorld;
+import uk.gov.gchq.magmacore.hqdm.model.Requirement;
+import uk.gov.gchq.magmacore.hqdm.model.RequirementSpecification;
+import uk.gov.gchq.magmacore.hqdm.model.Thing;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.HQDM;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IRI;
+import uk.gov.gchq.magmacore.hqdm.rdf.iri.IriBase;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.ClassOfStateBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.ClassOfStateOfFunctionalObjectBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.ClassOfStateOfFunctionalSystemBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.PlanBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.PointInTimeBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.RequirementBuilder;
+import uk.gov.gchq.magmacore.hqdm.rdfbuilders.RequirementSpecificationBuilder;
+import uk.gov.gchq.magmacore.hqdm.services.SpatioTemporalExtentServices;
+import uk.gov.gchq.magmacore.service.MagmaCoreServiceFactory;
+
+/**
+ * An example of plans and requirements.
+ */
+public class PlanAndRequirementsExample {
+
+ private static final String PREFIXES = """
+ @prefix tst: .
+ @prefix date: .
+ @prefix h: .
+ @prefix rdf: .
+ @prefix rdfs: .
+ @prefix skos: .
+ """;
+
+ private static final IriBase BASE = new IriBase("tst", "https://example.com/test#");
+ private static final IriBase DATE_BASE = new IriBase("date", "https://example.com/date#");
+ private static final Instant START = Instant.now();
+ private static long nextIri = 0L;
+
+ private static String nextIri() {
+ return Long.toString(nextIri++);
+ }
+
+ @Test
+ public void testPlans() {
+ final var objects = new HashMap();
+
+ //
+ // Create the plan in the real world.
+ //
+ final var realWorld = getTheRealWorld();
+ objects.put(realWorld.getId(), realWorld);
+
+ final var planStartEvent = getCarServicePlanStartEvent(realWorld);
+ objects.put(planStartEvent.getId(), planStartEvent);
+
+ final var planEndEvent = getCarServicePlanEndEvent(realWorld);
+ objects.put(planEndEvent.getId(), planEndEvent);
+
+ final var carServicePlan = getCarServicePlan(realWorld, planStartEvent, planEndEvent);
+ objects.put(carServicePlan.getId(), carServicePlan);
+
+ //
+ // Create the serviced car requirement.
+ //
+ final var servicedCarClassOfState = getServicedCarClassOfState();
+ Arrays.stream(servicedCarClassOfState).forEach(cos -> {
+ objects.put(cos.getId(), cos);
+ });
+
+ final var servicedCarRequirementSpecification = getServicedCarRequirementSpecification(servicedCarClassOfState);
+ objects.put(servicedCarRequirementSpecification.getId(), servicedCarRequirementSpecification);
+
+ final var servicedCarRequirementStartEvent = getServicedCarRequirementStartEvent(realWorld);
+ objects.put(servicedCarRequirementStartEvent.getId(), servicedCarRequirementStartEvent);
+
+ final var servicedCarRequirementEndEvent = getServicedCarRequirementEndEvent(realWorld);
+ objects.put(servicedCarRequirementEndEvent.getId(), servicedCarRequirementEndEvent);
+
+ final var servicedCarRequirement = getServicedCarRequirement(realWorld, carServicePlan, servicedCarRequirementSpecification,
+ servicedCarRequirementStartEvent, servicedCarRequirementEndEvent);
+ objects.put(servicedCarRequirement.getId(), servicedCarRequirement);
+
+ //
+ // Create the car service activity requirement.
+ //
+ final var serviceActivityClassOfState = getCarServiceActivityClassOfState();
+ Arrays.stream(serviceActivityClassOfState).forEach(cos -> {
+ objects.put(cos.getId(), cos);
+ });
+
+ final var serviceActivityRequirementsSpec = getServiceActivityRequirementsSpec(serviceActivityClassOfState);
+ objects.put(serviceActivityRequirementsSpec.getId(), serviceActivityRequirementsSpec);
+
+ final var serviceActivityStartEvent = getServiceActivityStartEvent(realWorld);
+ objects.put(serviceActivityStartEvent.getId(), serviceActivityStartEvent);
+
+ final var serviceActivityEndEvent = getServiceActivityEndEvent(realWorld);
+ objects.put(serviceActivityEndEvent.getId(), serviceActivityEndEvent);
+
+ final var serviceActivityRequirement = getServiceActivityRequirement(realWorld, carServicePlan, serviceActivityRequirementsSpec,
+ serviceActivityStartEvent, serviceActivityEndEvent, servicedCarRequirementStartEvent);
+ objects.put(serviceActivityRequirement.getId(), serviceActivityRequirement);
+ //
+ // Create evertying in the database.
+ //
+ final var mcs = MagmaCoreServiceFactory.createWithJenaDatabase();
+ mcs.runInWriteTransaction(svc -> {
+ objects.values().stream().forEach(svc::create);
+ return svc;
+ });
+
+ System.out.println();
+ System.out.println(PREFIXES);
+ mcs.exportTtl(System.out);
+ System.out.println();
+ }
+
+ private Requirement getServiceActivityRequirement(final PossibleWorld realWorld, final Plan plan, final RequirementSpecification serviceActivityRequirementsSpec,
+ final Event beginning, final Event ending, final Event servicedCarStartEvent) {
+
+ final var iri = new IRI(BASE, nextIri());
+ final var req = new RequirementBuilder(iri)
+ .part_Of_Plan_M(plan)
+ .part_Of_Possible_World_M(realWorld)
+ .defined_By_M(serviceActivityRequirementsSpec)
+ .beginning(beginning)
+ .ending(ending)
+ .build();
+ req.addStringValue(HQDM.SKOS_DEFINITION, "Car 50k mile service activity");
+ req.addValue(HQDM.CAUSES, servicedCarStartEvent.getId());
+
+ return req;
+ }
+
+ private Event getServiceActivityEndEvent(final PossibleWorld realWorld) {
+ final var date = START.plus(300, ChronoUnit.DAYS).plus(4, ChronoUnit.HOURS);
+ final var eventIri = new IRI(DATE_BASE, instantToString(date));
+ final var event = new PointInTimeBuilder(eventIri)
+ .part_Of_Possible_World_M(realWorld)
+ .build();
+ event.addStringValue(HQDM.SKOS_DEFINITION, date.toString());
+ return event;
+ }
+
+ private Event getServiceActivityStartEvent(final PossibleWorld realWorld) {
+ final var date = START.plus(300, ChronoUnit.DAYS);
+ final var eventIri = new IRI(DATE_BASE, instantToString(date));
+ final var event = new PointInTimeBuilder(eventIri)
+ .part_Of_Possible_World_M(realWorld)
+ .build();
+ event.addStringValue(HQDM.SKOS_DEFINITION, date.toString());
+ return event;
+ }
+
+ private RequirementSpecification getServiceActivityRequirementsSpec(final ClassOfState[] classOfState) {
+ if (classOfState.length == 0) {
+ throw new InvalidParameterException("Need at least one classOfState");
+ }
+ final var iri = new IRI(BASE, nextIri());
+ final var spec = new RequirementSpecificationBuilder(iri)
+ .intersection_Of_M(classOfState[0])
+ .build();
+ spec.addStringValue(HQDM.SKOS_DEFINITION, "50k mile car service activity specification");
+ if (classOfState.length > 1) {
+ for (int i = 1; i < classOfState.length; i++) {
+ spec.addValue(HQDM.INTERSECTION_OF, classOfState[i].getId());
+ }
+ }
+ return spec;
+ }
+
+ private ClassOfState[] getCarServiceActivityClassOfState() {
+ final var iri = new IRI(BASE, nextIri());
+ final var classOfState = new ClassOfStateBuilder(iri).build();
+ classOfState.addStringValue(HQDM.SKOS_DEFINITION, "Car 50K mile service activity class of state");
+ return new ClassOfState[] {
+ classOfState
+ };
+ }
+
+ private Event getServicedCarRequirementEndEvent(final PossibleWorld realWorld) {
+ final var date = START.plus(365, ChronoUnit.DAYS);
+ final var eventIri = new IRI(DATE_BASE, instantToString(date));
+ final var event = new PointInTimeBuilder(eventIri)
+ .part_Of_Possible_World_M(realWorld)
+ .build();
+ event.addStringValue(HQDM.SKOS_DEFINITION, date.toString());
+ return event;
+ }
+
+ private Event getServicedCarRequirementStartEvent(final PossibleWorld realWorld) {
+ final var date = START.plus(300, ChronoUnit.DAYS).plus(4, ChronoUnit.HOURS);
+ final var eventIri = new IRI(DATE_BASE, instantToString(date));
+ final var event = new PointInTimeBuilder(eventIri)
+ .part_Of_Possible_World_M(realWorld)
+ .build();
+ event.addStringValue(HQDM.SKOS_DEFINITION, date.toString());
+ return event;
+ }
+
+ private ClassOfState[] getServicedCarClassOfState() {
+ final var carStateIri = new IRI(BASE, nextIri());
+ final var serviceStateIri = new IRI(BASE, nextIri());
+ final var workingStateIri = new IRI(BASE, nextIri());
+ final var carState = new ClassOfStateOfFunctionalSystemBuilder(carStateIri).build();
+ final var serviceState = new ClassOfStateOfFunctionalObjectBuilder(serviceStateIri).build();
+ final var workingState = new ClassOfStateBuilder(workingStateIri).build();
+ carState.addStringValue(HQDM.SKOS_DEFINITION, "State Of Car");
+ serviceState.addStringValue(HQDM.SKOS_DEFINITION, "Car with 50k mile service");
+ workingState.addStringValue(HQDM.SKOS_DEFINITION, "Functioning Car");
+ return new ClassOfState[] {
+ carState,
+ serviceState,
+ workingState
+ };
+ }
+
+ private Requirement getServicedCarRequirement(
+ final PossibleWorld realWorld,
+ final Plan plan,
+ final RequirementSpecification servicedCarRequirementSpecification,
+ final Event beginning,
+ final Event ending) {
+
+ final var iri = new IRI(BASE, nextIri());
+ final var req = new RequirementBuilder(iri)
+ .part_Of_Plan_M(plan)
+ .part_Of_Possible_World_M(realWorld)
+ .defined_By_M(servicedCarRequirementSpecification)
+ .beginning(beginning)
+ .ending(ending)
+ .build();
+ req.addStringValue(HQDM.SKOS_DEFINITION, "Car with 50k mile service");
+
+ return req;
+ }
+
+ private RequirementSpecification getServicedCarRequirementSpecification(final ClassOfState... classOfState) {
+ if (classOfState.length == 0) {
+ throw new InvalidParameterException("Need at least one classOfState");
+ }
+ final var iri = new IRI(BASE, nextIri());
+ final var spec = new RequirementSpecificationBuilder(iri)
+ .intersection_Of_M(classOfState[0])
+ .build();
+ spec.addStringValue(HQDM.SKOS_DEFINITION, "Car with 50k mile service");
+ if (classOfState.length > 1) {
+ for (int i = 1; i < classOfState.length; i++) {
+ spec.addValue(HQDM.INTERSECTION_OF, classOfState[i].getId());
+ }
+ }
+ return spec;
+ }
+
+ private Plan getCarServicePlan(final PossibleWorld realWorld, final Event planStartEvent, final Event planEndEvent) {
+
+ final var planIri = new IRI(BASE, nextIri());
+ final var plan = new PlanBuilder(planIri)
+ .part_Of_Possible_World_M(realWorld)
+ .beginning(planStartEvent)
+ .ending(planEndEvent)
+ .build();
+
+ plan.addStringValue(HQDM.SKOS_DEFINITION, "Car Servicing Plan");
+ return plan;
+ }
+
+ private Event getCarServicePlanEndEvent(final PossibleWorld realWorld) {
+ final var date = START.plus(365, ChronoUnit.DAYS);
+ final var eventIri = new IRI(DATE_BASE, instantToString(date));
+ final var event = new PointInTimeBuilder(eventIri)
+ .part_Of_Possible_World_M(realWorld)
+ .build();
+ event.addStringValue(HQDM.SKOS_DEFINITION, date.toString());
+ return event;
+ }
+
+ private Event getCarServicePlanStartEvent(final PossibleWorld realWorld) {
+ final var date = START;
+ final var eventIri = new IRI(DATE_BASE, instantToString(date));
+ final var event = new PointInTimeBuilder(eventIri)
+ .part_Of_Possible_World_M(realWorld)
+ .build();
+ event.addStringValue(HQDM.SKOS_DEFINITION, date.toString());
+ return event;
+ }
+
+ private PossibleWorld getTheRealWorld() {
+ final var possibleWorldIri = new IRI(BASE, nextIri());
+ final var realWorld = SpatioTemporalExtentServices.createPossibleWorld(possibleWorldIri);
+ realWorld.addStringValue(HQDM.SKOS_DEFINITION, "The Real World");
+ return realWorld;
+ }
+
+ private static String instantToString(final Instant when) {
+ return Long.toString(when.getEpochSecond()) + Long.toString(when.getNano());
+ }
+}
diff --git a/examples/src/test/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsTest.java b/examples/src/test/java/uk/gov/gchq/magmacore/examples/signs/ExamplePatternsTest.java
similarity index 90%
rename from examples/src/test/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsTest.java
rename to examples/src/test/java/uk/gov/gchq/magmacore/examples/signs/ExamplePatternsTest.java
index 19f0d74b..9fecc089 100644
--- a/examples/src/test/java/uk/gov/gchq/magmacore/examples/signs/ExampleSignsTest.java
+++ b/examples/src/test/java/uk/gov/gchq/magmacore/examples/signs/ExamplePatternsTest.java
@@ -25,7 +25,7 @@
/**
* Exercise the {@link ExampleSigns} code during the build.
*/
-public class ExampleSignsTest {
+public class ExamplePatternsTest {
/**
* Test the {@link ExampleSigns} code.
@@ -33,7 +33,7 @@ public class ExampleSignsTest {
@Test
public void testSignsExample() {
final MagmaCoreService service = MagmaCoreServiceFactory.createWithJenaDatabase();
- final DbTransformation transformation = ExampleSigns.populateExampleData(service);
+ final DbTransformation transformation = ExamplePatterns.populateExampleData(service);
assertNotNull(transformation);
}
diff --git a/examples/src/test/java/uk/gov/gchq/magmacore/examples/verify/DataIntegrityChecksTest.java b/examples/src/test/java/uk/gov/gchq/magmacore/examples/verify/DataIntegrityChecksTest.java
index 599f8e13..2a01dfe7 100644
--- a/examples/src/test/java/uk/gov/gchq/magmacore/examples/verify/DataIntegrityChecksTest.java
+++ b/examples/src/test/java/uk/gov/gchq/magmacore/examples/verify/DataIntegrityChecksTest.java
@@ -67,7 +67,7 @@ public static void beforeClass() throws IOException, URISyntaxException {
service = MagmaCoreServiceFactory.createWithJenaDatabase();
// Load the HQDM data model.
- service.loadTtl(DataIntegrityChecksTest.class.getResourceAsStream("/hqdm-0.0.1-alpha.ttl"));
+ service.loadTtl(DataIntegrityChecksTest.class.getResourceAsStream("/hqdm.ttl"));
// Populate some data to prove that the rules are applied.
service.runInWriteTransaction(svc -> {
@@ -162,6 +162,9 @@ public void test() throws IOException, URISyntaxException {
.toList();
missing.forEach(System.err::println);
+ if (!missing.isEmpty()) {
+ service.exportTtl(System.err);
+ }
assertTrue("Not all rules fired - see log for details", missing.isEmpty());
// Make sure that the actual number of errors found matches the expected number.
diff --git a/examples/src/test/resources/hqdm-0.0.1-alpha.ttl b/examples/src/test/resources/hqdm-0.0.1-alpha.ttl
deleted file mode 100644
index 8c6dc97a..00000000
--- a/examples/src/test/resources/hqdm-0.0.1-alpha.ttl
+++ /dev/null
@@ -1,1100 +0,0 @@
-
-@prefix hqdm: .
-@prefix rdfs: .
-@prefix rdf: .
-@prefix xsd: .
-
-hqdm:abstract_object rdf:type rdfs:Class .
-hqdm:abstract_object rdfs:subClassOf hqdm:thing .
-hqdm:acceptance_of_offer rdf:type rdfs:Class .
-hqdm:acceptance_of_offer rdfs:subClassOf hqdm:socially_constructed_activity .
-hqdm:acceptance_of_offer_for_goods rdf:type rdfs:Class .
-hqdm:acceptance_of_offer_for_goods rdfs:subClassOf hqdm:acceptance_of_offer .
-hqdm:acceptance_of_offer_for_goods_part_of rdfs:domain hqdm:acceptance_of_offer_for_goods .
-hqdm:acceptance_of_offer_for_goods_part_of rdfs:range hqdm:offer_and_acceptance_for_goods .
-hqdm:acceptance_of_offer_for_goods_references rdfs:domain hqdm:acceptance_of_offer_for_goods .
-hqdm:acceptance_of_offer_for_goods_references rdfs:range hqdm:offer_for_goods .
-hqdm:acceptance_of_offer_part_of rdfs:domain hqdm:acceptance_of_offer .
-hqdm:acceptance_of_offer_part_of rdfs:range hqdm:agree_contract .
-hqdm:acceptance_of_offer_references rdfs:domain hqdm:acceptance_of_offer .
-hqdm:acceptance_of_offer_references rdfs:range hqdm:offer .
-hqdm:activity rdf:type rdfs:Class .
-hqdm:activity rdfs:subClassOf hqdm:individual .
-hqdm:activity rdfs:subClassOf hqdm:state_of_activity .
-hqdm:activity_causes rdfs:domain hqdm:activity .
-hqdm:activity_causes rdfs:range hqdm:event .
-hqdm:activity_consists_of rdfs:domain hqdm:activity .
-hqdm:activity_consists_of rdfs:range hqdm:activity .
-hqdm:activity_consists_of_participant rdfs:domain hqdm:activity .
-hqdm:activity_consists_of_participant rdfs:range hqdm:participant .
-hqdm:activity_determines rdfs:domain hqdm:activity .
-hqdm:activity_determines rdfs:range hqdm:thing .
-hqdm:activity_member_of rdfs:domain hqdm:activity .
-hqdm:activity_member_of rdfs:range hqdm:class_of_activity .
-hqdm:activity_member_of_kind rdfs:domain hqdm:activity .
-hqdm:activity_member_of_kind rdfs:range hqdm:kind_of_activity .
-hqdm:activity_part_of rdfs:domain hqdm:activity .
-hqdm:activity_part_of rdfs:range hqdm:activity .
-hqdm:activity_references rdfs:domain hqdm:activity .
-hqdm:activity_references rdfs:range hqdm:thing .
-hqdm:aggregation rdf:type rdfs:Class .
-hqdm:aggregation rdfs:subClassOf hqdm:relationship .
-hqdm:aggregation_part rdfs:domain hqdm:aggregation .
-hqdm:aggregation_part rdfs:range hqdm:spatio_temporal_extent .
-hqdm:aggregation_whole rdfs:domain hqdm:aggregation .
-hqdm:aggregation_whole rdfs:range hqdm:spatio_temporal_extent .
-hqdm:agree_contract rdf:type rdfs:Class .
-hqdm:agree_contract rdfs:subClassOf hqdm:reaching_agreement .
-hqdm:agree_contract_agree_contract_part_of rdfs:domain hqdm:agree_contract .
-hqdm:agree_contract_agree_contract_part_of rdfs:range hqdm:contract_process .
-hqdm:agree_contract_consists_of rdfs:domain hqdm:agree_contract .
-hqdm:agree_contract_consists_of rdfs:range hqdm:part_of .
-hqdm:agree_contract_member_of rdfs:domain hqdm:agree_contract .
-hqdm:agree_contract_member_of rdfs:range hqdm:class_of_agree_contract .
-hqdm:agreement_execution rdf:type rdfs:Class .
-hqdm:agreement_execution rdfs:subClassOf hqdm:socially_constructed_activity .
-hqdm:agreement_execution_member_of rdfs:domain hqdm:agreement_execution .
-hqdm:agreement_execution_member_of rdfs:range hqdm:class_of_agreement_execution .
-hqdm:agreement_execution_part_of rdfs:domain hqdm:agreement_execution .
-hqdm:agreement_execution_part_of rdfs:range hqdm:agreement_process .
-hqdm:agreement_process rdf:type rdfs:Class .
-hqdm:agreement_process rdfs:subClassOf hqdm:socially_constructed_activity .
-hqdm:agreement_process_consists_of rdfs:domain hqdm:agreement_process .
-hqdm:agreement_process_consists_of rdfs:range hqdm:part_of .
-hqdm:agreement_process_consists_of_ rdfs:domain hqdm:agreement_process .
-hqdm:agreement_process_consists_of_ rdfs:range hqdm:agreement_execution .
-hqdm:agreement_process_member_of rdfs:domain hqdm:agreement_process .
-hqdm:agreement_process_member_of rdfs:range hqdm:class_of_agreement_process .
-hqdm:amount_of_money rdf:type rdfs:Class .
-hqdm:amount_of_money rdfs:subClassOf hqdm:physical_object .
-hqdm:amount_of_money rdfs:subClassOf hqdm:socially_constructed_object .
-hqdm:amount_of_money rdfs:subClassOf hqdm:state_of_amount_of_money .
-hqdm:amount_of_money_member_of rdfs:domain hqdm:amount_of_money .
-hqdm:amount_of_money_member_of rdfs:range hqdm:class_of_amount_of_money .
-hqdm:amount_of_money_member_of_currency rdfs:domain hqdm:amount_of_money .
-hqdm:amount_of_money_member_of_currency rdfs:range hqdm:currency .
-hqdm:asset rdf:type rdfs:Class .
-hqdm:asset rdfs:subClassOf hqdm:participant .
-hqdm:asset_participant_in rdfs:domain hqdm:asset .
-hqdm:asset_participant_in rdfs:range hqdm:ownership .
-hqdm:association rdf:type rdfs:Class .
-hqdm:association rdfs:subClassOf hqdm:individual .
-hqdm:association rdfs:subClassOf hqdm:state_of_association .
-hqdm:association_consists_of_participant rdfs:domain hqdm:association .
-hqdm:association_consists_of_participant rdfs:range hqdm:participant .
-hqdm:association_member_of rdfs:domain hqdm:association .
-hqdm:association_member_of rdfs:range hqdm:class_of_association .
-hqdm:association_member_of_kind rdfs:domain hqdm:association .
-hqdm:association_member_of_kind rdfs:range hqdm:kind_of_association .
-hqdm:beginning_of_ownership rdf:type rdfs:Class .
-hqdm:beginning_of_ownership rdfs:subClassOf hqdm:event .
-hqdm:biological_object rdf:type rdfs:Class .
-hqdm:biological_object rdfs:subClassOf hqdm:physical_object .
-hqdm:biological_object rdfs:subClassOf hqdm:state_of_biological_object .
-hqdm:biological_object_member_of rdfs:domain hqdm:biological_object .
-hqdm:biological_object_member_of rdfs:range hqdm:class_of_biological_object .
-hqdm:biological_object_member_of_kind rdfs:domain hqdm:biological_object .
-hqdm:biological_object_member_of_kind rdfs:range hqdm:kind_of_biological_object .
-hqdm:biological_system rdf:type rdfs:Class .
-hqdm:biological_system rdfs:subClassOf hqdm:ordinary_biological_object .
-hqdm:biological_system rdfs:subClassOf hqdm:state_of_biological_system .
-hqdm:biological_system rdfs:subClassOf hqdm:system .
-hqdm:biological_system_component rdf:type rdfs:Class .
-hqdm:biological_system_component rdfs:subClassOf hqdm:state_of_biological_system_component .
-hqdm:biological_system_component rdfs:subClassOf hqdm:system_component .
-hqdm:biological_system_component_component_of rdfs:domain hqdm:biological_system_component .
-hqdm:biological_system_component_component_of rdfs:range hqdm:biological_system .
-hqdm:biological_system_component_member_of rdfs:domain hqdm:biological_system_component .
-hqdm:biological_system_component_member_of rdfs:range hqdm:class_of_biological_system_component .
-hqdm:biological_system_member_of rdfs:domain hqdm:biological_system .
-hqdm:biological_system_member_of rdfs:range hqdm:class_of_biological_system .
-hqdm:biological_system_member_of_kind rdfs:domain hqdm:biological_system .
-hqdm:biological_system_member_of_kind rdfs:range hqdm:kind_of_biological_system .
-hqdm:biological_system_natural_role rdfs:domain hqdm:biological_system .
-hqdm:biological_system_natural_role rdfs:range hqdm:role .
-hqdm:class rdf:type rdfs:Class .
-hqdm:class rdfs:subClassOf hqdm:abstract_object .
-hqdm:class_has_superclass rdfs:domain hqdm:class .
-hqdm:class_has_superclass rdfs:range hqdm:class .
-hqdm:class_member_of rdfs:domain hqdm:class .
-hqdm:class_member_of rdfs:range hqdm:class_of_class .
-hqdm:class_of_abstract_object rdf:type rdfs:Class .
-hqdm:class_of_abstract_object rdfs:subClassOf hqdm:class .
-hqdm:class_of_abstract_objectenumerated_class rdf:type rdfs:Class .
-hqdm:class_of_activity rdf:type rdfs:Class .
-hqdm:class_of_activity rdfs:subClassOf hqdm:class_of_individual .
-hqdm:class_of_activity rdfs:subClassOf hqdm:class_of_state_of_activity .
-hqdm:class_of_agree_contract rdf:type rdfs:Class .
-hqdm:class_of_agree_contract rdfs:subClassOf hqdm:class_of_reaching_agreement .
-hqdm:class_of_agree_contract_part_of_by_class rdfs:domain hqdm:class_of_agree_contract .
-hqdm:class_of_agree_contract_part_of_by_class rdfs:range hqdm:class_of_contract_process .
-hqdm:class_of_agreement_execution rdf:type rdfs:Class .
-hqdm:class_of_agreement_execution rdfs:subClassOf hqdm:class_of_socially_constructed_activity .
-hqdm:class_of_agreement_execution_part_of_by_class rdfs:domain hqdm:class_of_agreement_execution .
-hqdm:class_of_agreement_execution_part_of_by_class rdfs:range hqdm:class_of_agreement_process .
-hqdm:class_of_agreement_process rdf:type rdfs:Class .
-hqdm:class_of_agreement_process rdfs:subClassOf hqdm:class_of_socially_constructed_activity .
-hqdm:class_of_amount_of_money rdf:type rdfs:Class .
-hqdm:class_of_amount_of_money rdfs:subClassOf hqdm:class_of_physical_object .
-hqdm:class_of_amount_of_money rdfs:subClassOf hqdm:class_of_socially_constructed_object .
-hqdm:class_of_amount_of_money rdfs:subClassOf hqdm:class_of_state_of_amount_of_money .
-hqdm:class_of_association rdf:type rdfs:Class .
-hqdm:class_of_association rdfs:subClassOf hqdm:class_of_individual .
-hqdm:class_of_association rdfs:subClassOf hqdm:class_of_state_of_association .
-hqdm:class_of_biological_object rdf:type rdfs:Class .
-hqdm:class_of_biological_object rdfs:subClassOf hqdm:class_of_physical_object .
-hqdm:class_of_biological_object rdfs:subClassOf hqdm:class_of_state_of_biological_object .
-hqdm:class_of_biological_system rdf:type rdfs:Class .
-hqdm:class_of_biological_system rdfs:subClassOf hqdm:class_of_ordinary_biological_object .
-hqdm:class_of_biological_system rdfs:subClassOf hqdm:class_of_state_of_biological_system .
-hqdm:class_of_biological_system rdfs:subClassOf hqdm:class_of_system .
-hqdm:class_of_biological_system_component rdf:type rdfs:Class .
-hqdm:class_of_biological_system_component rdfs:subClassOf hqdm:class_of_biological_object .
-hqdm:class_of_biological_system_component rdfs:subClassOf hqdm:class_of_state_of_biological_system_component .
-hqdm:class_of_biological_system_component rdfs:subClassOf hqdm:class_of_system_component .
-hqdm:class_of_class rdf:type rdfs:Class .
-hqdm:class_of_class rdfs:subClassOf hqdm:class_of_abstract_object .
-hqdm:class_of_class_of_spatio_temporal_extent rdf:type rdfs:Class .
-hqdm:class_of_class_of_spatio_temporal_extent rdfs:subClassOf hqdm:class_of_class .
-hqdm:class_of_contract_execution rdf:type rdfs:Class .
-hqdm:class_of_contract_execution rdfs:subClassOf hqdm:class_of_agreement_execution .
-hqdm:class_of_contract_execution_part_of_by_class rdfs:domain hqdm:class_of_contract_execution .
-hqdm:class_of_contract_execution_part_of_by_class rdfs:range hqdm:class_of_contract_process .
-hqdm:class_of_contract_process rdfs:subClassOf hqdm:class_of_agreement_process .
-hqdm:class_of_event rdf:type rdfs:Class .
-hqdm:class_of_event rdfs:subClassOf hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_functional_object rdf:type rdfs:Class .
-hqdm:class_of_functional_object rdfs:subClassOf hqdm:class_of_intentionally_constructed_object .
-hqdm:class_of_functional_object rdfs:subClassOf hqdm:class_of_physical_object .
-hqdm:class_of_functional_object rdfs:subClassOf hqdm:class_of_state_of_functional_object .
-hqdm:class_of_functional_system rdf:type rdfs:Class .
-hqdm:class_of_functional_system rdfs:subClassOf hqdm:class_of_ordinary_functional_object .
-hqdm:class_of_functional_system rdfs:subClassOf hqdm:class_of_state_of_functional_system .
-hqdm:class_of_functional_system rdfs:subClassOf hqdm:class_of_system .
-hqdm:class_of_functional_system_component rdf:type rdfs:Class .
-hqdm:class_of_functional_system_component rdfs:subClassOf hqdm:class_of_state_of_functional_system_component .
-hqdm:class_of_functional_system_component rdfs:subClassOf hqdm:class_of_system_component .
-hqdm:class_of_in_place_biological_component rdf:type rdfs:Class .
-hqdm:class_of_in_place_biological_component rdfs:subClassOf hqdm:class_of_installed_object .
-hqdm:class_of_in_place_biological_component rdfs:subClassOf hqdm:class_of_state_of_biological_system_component .
-hqdm:class_of_in_place_biological_component rdfs:subClassOf hqdm:class_of_state_of_ordinary_biological_object .
-hqdm:class_of_individual rdf:type rdfs:Class .
-hqdm:class_of_individual rdfs:subClassOf hqdm:class_of_state .
-hqdm:class_of_installed_functional_system_component rdf:type rdfs:Class .
-hqdm:class_of_installed_functional_system_component rdfs:subClassOf hqdm:class_of_installed_object .
-hqdm:class_of_installed_functional_system_component rdfs:subClassOf hqdm:class_of_state_of_functional_system_component .
-hqdm:class_of_installed_object rdf:type rdfs:Class .
-hqdm:class_of_installed_object rdfs:subClassOf hqdm:class_of_state_of_ordinary_physical_object .
-hqdm:class_of_installed_object rdfs:subClassOf hqdm:class_of_state_of_system_component .
-hqdm:class_of_intentionally_constructed_object rdf:type rdfs:Class .
-hqdm:class_of_intentionally_constructed_object rdfs:subClassOf hqdm:class_of_individual .
-hqdm:class_of_intentionally_constructed_object rdfs:subClassOf hqdm:class_of_state_of_intentionally_constructed_object .
-hqdm:class_of_offer rdf:type rdfs:Class .
-hqdm:class_of_offer rdfs:subClassOf hqdm:class_of_socially_constructed_activity .
-hqdm:class_of_ordinary_biological_object rdf:type rdfs:Class .
-hqdm:class_of_ordinary_biological_object rdfs:subClassOf hqdm:class_of_biological_object .
-hqdm:class_of_ordinary_biological_object rdfs:subClassOf hqdm:class_of_ordinary_physical_object .
-hqdm:class_of_ordinary_biological_object rdfs:subClassOf hqdm:class_of_state_of_ordinary_biological_object .
-hqdm:class_of_ordinary_functional_object rdf:type rdfs:Class .
-hqdm:class_of_ordinary_functional_object rdfs:subClassOf hqdm:class_of_functional_object .
-hqdm:class_of_ordinary_functional_object rdfs:subClassOf hqdm:class_of_ordinary_physical_object .
-hqdm:class_of_ordinary_functional_object rdfs:subClassOf hqdm:class_of_state_of_ordinary_functional_object .
-hqdm:class_of_ordinary_physical_object rdf:type rdfs:Class .
-hqdm:class_of_ordinary_physical_object rdfs:subClassOf hqdm:class_of_physical_object .
-hqdm:class_of_ordinary_physical_object rdfs:subClassOf hqdm:class_of_state_of_ordinary_physical_object .
-hqdm:class_of_organization rdfs:subClassOf hqdm:class_of_party .
-hqdm:class_of_organization rdfs:subClassOf hqdm:class_of_socially_constructed_object .
-hqdm:class_of_organization rdfs:subClassOf hqdm:class_of_state_of_organization .
-hqdm:class_of_organization_component rdf:type rdfs:Class .
-hqdm:class_of_organization_component rdfs:subClassOf hqdm:class_of_socially_constructed_object .
-hqdm:class_of_organization_component rdfs:subClassOf hqdm:class_of_state_of_organization_component .
-hqdm:class_of_organization_component rdfs:subClassOf hqdm:class_of_system_component .
-hqdm:class_of_participant rdf:type rdfs:Class .
-hqdm:class_of_participant rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_party rdf:type rdfs:Class .
-hqdm:class_of_party rdfs:subClassOf hqdm:class_of_state_of_party .
-hqdm:class_of_party rdfs:subClassOf hqdm:class_of_system .
-hqdm:class_of_period_of_time rdf:type rdfs:Class .
-hqdm:class_of_period_of_time rdfs:subClassOf hqdm:class_of_state .
-hqdm:class_of_person rdf:type rdfs:Class .
-hqdm:class_of_person rdfs:subClassOf hqdm:class_of_biological_system .
-hqdm:class_of_person rdfs:subClassOf hqdm:class_of_party .
-hqdm:class_of_person rdfs:subClassOf hqdm:class_of_state_of_person .
-hqdm:class_of_person_in_position rdf:type rdfs:Class .
-hqdm:class_of_person_in_position rdfs:subClassOf hqdm:class_of_installed_object .
-hqdm:class_of_person_in_position rdfs:subClassOf hqdm:class_of_state_of_position .
-hqdm:class_of_physical_object rdf:type rdfs:Class .
-hqdm:class_of_physical_object rdfs:subClassOf hqdm:class_of_individual .
-hqdm:class_of_physical_object rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_physical_property rdf:type rdfs:Class .
-hqdm:class_of_physical_property rdfs:subClassOf hqdm:class_of_class_of_spatio_temporal_extent .
-hqdm:class_of_physical_quantity rdf:type rdfs:Class .
-hqdm:class_of_physical_quantity rdfs:subClassOf hqdm:class_of_physical_property .
-hqdm:class_of_point_in_time rdfs:subClassOf hqdm:class_of_event .
-hqdm:class_of_position rdf:type rdfs:Class .
-hqdm:class_of_position rdfs:subClassOf hqdm:class_of_organization_component .
-hqdm:class_of_position rdfs:subClassOf hqdm:class_of_state_of_position .
-hqdm:class_of_possible_world rdfs:subClassOf hqdm:class_of_individual .
-hqdm:class_of_possible_world rdfs:subClassOf hqdm:class_of_period_of_time .
-hqdm:class_of_reaching_agreement rdf:type rdfs:Class .
-hqdm:class_of_reaching_agreement rdfs:subClassOf hqdm:class_of_socially_constructed_activity .
-hqdm:class_of_reaching_agreement_part_of_by_class rdfs:domain hqdm:class_of_reaching_agreement .
-hqdm:class_of_reaching_agreement_part_of_by_class rdfs:range hqdm:class_of_agreement_process .
-hqdm:class_of_relationship rdf:type rdfs:Class .
-hqdm:class_of_relationship rdfs:subClassOf hqdm:class_of_abstract_object .
-hqdm:class_of_representation rdf:type rdfs:Class .
-hqdm:class_of_representation rdfs:subClassOf hqdm:class_of_association .
-hqdm:class_of_sales_product_instance rdf:type rdfs:Class .
-hqdm:class_of_sales_product_instance rdfs:subClassOf hqdm:class_of_ordinary_functional_object .
-hqdm:class_of_sales_product_instance rdfs:subClassOf hqdm:class_of_state_of_sales_product_instance .
-hqdm:class_of_sign rdfs:subClassOf hqdm:class_of_socially_constructed_object .
-hqdm:class_of_sign rdfs:subClassOf hqdm:class_of_state_of_sign .
-hqdm:class_of_socially_constructed_activity rdf:type rdfs:Class .
-hqdm:class_of_socially_constructed_activity rdfs:subClassOf hqdm:class_of_activity .
-hqdm:class_of_socially_constructed_activity rdfs:subClassOf hqdm:class_of_socially_constructed_object .
-hqdm:class_of_socially_constructed_activity_part_of_by_class rdfs:domain hqdm:class_of_socially_constructed_activity .
-hqdm:class_of_socially_constructed_activity_part_of_by_class rdfs:range hqdm:class_of_reaching_agreement .
-hqdm:class_of_socially_constructed_activity_part_of_by_class_ rdfs:domain hqdm:class_of_socially_constructed_activity .
-hqdm:class_of_socially_constructed_activity_part_of_by_class_ rdfs:range hqdm:class_of_agreement_execution .
-hqdm:class_of_socially_constructed_object rdf:type rdfs:Class .
-hqdm:class_of_socially_constructed_object rdfs:subClassOf hqdm:class_of_intentionally_constructed_object .
-hqdm:class_of_socially_constructed_object rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:class_of_spatio_temporal_extent rdf:type rdfs:Class .
-hqdm:class_of_spatio_temporal_extent rdfs:subClassOf hqdm:class .
-hqdm:class_of_spatio_temporal_extent_consists__of_by_class rdfs:domain hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_spatio_temporal_extent_consists__of_by_class rdfs:range hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_spatio_temporal_extent_member_of_ rdfs:domain hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_spatio_temporal_extent_member_of_ rdfs:range hqdm:class_of_class_of_spatio_temporal_extent .
-hqdm:class_of_spatio_temporal_extent_part__of_by_class rdfs:domain hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_spatio_temporal_extent_part__of_by_class rdfs:range hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_state rdf:type rdfs:Class .
-hqdm:class_of_state rdfs:subClassOf hqdm:class_of_spatio_temporal_extent .
-hqdm:class_of_state_of_activity rdf:type rdfs:Class .
-hqdm:class_of_state_of_activity rdfs:subClassOf hqdm:class_of_state .
-hqdm:class_of_state_of_amount_of_money rdf:type rdfs:Class .
-hqdm:class_of_state_of_amount_of_money rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_state_of_amount_of_money rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:class_of_state_of_association rdf:type rdfs:Class .
-hqdm:class_of_state_of_association rdfs:subClassOf hqdm:class_of_state .
-hqdm:class_of_state_of_biological_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_biological_object rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_state_of_biological_system rdf:type rdfs:Class .
-hqdm:class_of_state_of_biological_system rdfs:subClassOf hqdm:class_of_state_of_ordinary_biological_object .
-hqdm:class_of_state_of_biological_system rdfs:subClassOf hqdm:class_of_state_of_system .
-hqdm:class_of_state_of_biological_system_component rdf:type rdfs:Class .
-hqdm:class_of_state_of_biological_system_component rdfs:subClassOf hqdm:class_of_state_of_biological_object .
-hqdm:class_of_state_of_biological_system_component rdfs:subClassOf hqdm:class_of_state_of_system_component .
-hqdm:class_of_state_of_functional_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_functional_object rdfs:subClassOf hqdm:class_of_state_of_intentionally_constructed_object .
-hqdm:class_of_state_of_functional_object rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_state_of_functional_system rdf:type rdfs:Class .
-hqdm:class_of_state_of_functional_system rdfs:subClassOf hqdm:class_of_state_of_ordinary_functional_object .
-hqdm:class_of_state_of_functional_system rdfs:subClassOf hqdm:class_of_state_of_system .
-hqdm:class_of_state_of_functional_system_component rdf:type rdfs:Class .
-hqdm:class_of_state_of_functional_system_component rdfs:subClassOf hqdm:class_of_state_of_ordinary_functional_object .
-hqdm:class_of_state_of_functional_system_component rdfs:subClassOf hqdm:class_of_state_of_system_component .
-hqdm:class_of_state_of_intentionally_constructed_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_intentionally_constructed_object rdfs:subClassOf hqdm:class_of_state .
-hqdm:class_of_state_of_ordinary_biological_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_ordinary_biological_object rdfs:subClassOf hqdm:class_of_state_of_biological_object .
-hqdm:class_of_state_of_ordinary_biological_object rdfs:subClassOf hqdm:class_of_state_of_ordinary_physical_object .
-hqdm:class_of_state_of_ordinary_functional_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_ordinary_functional_object rdfs:subClassOf hqdm:class_of_state_of_functional_object .
-hqdm:class_of_state_of_ordinary_functional_object rdfs:subClassOf hqdm:class_of_state_of_ordinary_physical_object .
-hqdm:class_of_state_of_ordinary_physical_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_ordinary_physical_object rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_state_of_organization rdf:type rdfs:Class .
-hqdm:class_of_state_of_organization rdfs:subClassOf hqdm:class_of_state_of_party .
-hqdm:class_of_state_of_organization rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:class_of_state_of_organization_component rdf:type rdfs:Class .
-hqdm:class_of_state_of_organization_component rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:class_of_state_of_organization_component rdfs:subClassOf hqdm:class_of_state_of_system_component .
-hqdm:class_of_state_of_party rdf:type rdfs:Class .
-hqdm:class_of_state_of_party rdfs:subClassOf hqdm:class_of_state_of_system .
-hqdm:class_of_state_of_person rdf:type rdfs:Class .
-hqdm:class_of_state_of_person rdfs:subClassOf hqdm:class_of_state_of_biological_system .
-hqdm:class_of_state_of_person rdfs:subClassOf hqdm:class_of_state_of_party .
-hqdm:class_of_state_of_physical_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_physical_object rdfs:subClassOf hqdm:class_of_state .
-hqdm:class_of_state_of_position rdf:type rdfs:Class .
-hqdm:class_of_state_of_position rdfs:subClassOf hqdm:class_of_state_of_organization_component .
-hqdm:class_of_state_of_sales_product_instance rdf:type rdfs:Class .
-hqdm:class_of_state_of_sales_product_instance rdfs:subClassOf hqdm:class_of_state_of_ordinary_functional_object .
-hqdm:class_of_state_of_sign rdf:type rdfs:Class .
-hqdm:class_of_state_of_sign rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:class_of_state_of_socially_constructed_activity rdf:type rdfs:Class .
-hqdm:class_of_state_of_socially_constructed_activity rdfs:subClassOf hqdm:class_of_state_of_activity .
-hqdm:class_of_state_of_socially_constructed_activity rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:class_of_state_of_socially_constructed_object rdf:type rdfs:Class .
-hqdm:class_of_state_of_socially_constructed_object rdfs:subClassOf hqdm:class_of_state_of_intentionally_constructed_object .
-hqdm:class_of_state_of_system rdf:type rdfs:Class .
-hqdm:class_of_state_of_system rdfs:subClassOf hqdm:class_of_state_of_ordinary_physical_object .
-hqdm:class_of_state_of_system_component rdf:type rdfs:Class .
-hqdm:class_of_state_of_system_component rdfs:subClassOf hqdm:class_of_state_of_physical_object .
-hqdm:class_of_system rdf:type rdfs:Class .
-hqdm:class_of_system rdfs:subClassOf hqdm:class_of_ordinary_physical_object .
-hqdm:class_of_system rdfs:subClassOf hqdm:class_of_state_of_system .
-hqdm:class_of_system_component rdf:type rdfs:Class .
-hqdm:class_of_system_component rdfs:subClassOf hqdm:class_of_physical_object .
-hqdm:class_of_system_component rdfs:subClassOf hqdm:class_of_state_of_system_component .
-hqdm:classification rdf:type rdfs:Class .
-hqdm:classification rdfs:subClassOf hqdm:relationship .
-hqdm:classification_classifier rdfs:domain hqdm:classification .
-hqdm:classification_classifier rdfs:range hqdm:class .
-hqdm:classification_member rdfs:domain hqdm:classification .
-hqdm:classification_member rdfs:range hqdm:thing .
-hqdm:composition rdf:type rdfs:Class .
-hqdm:composition rdfs:subClassOf hqdm:aggregation .
-hqdm:contract_execution rdf:type rdfs:Class .
-hqdm:contract_execution rdfs:subClassOf hqdm:agreement_execution .
-hqdm:contract_execution_member_of rdfs:domain hqdm:contract_execution .
-hqdm:contract_execution_member_of rdfs:range hqdm:class_of_contract_execution .
-hqdm:contract_execution_part_of rdfs:domain hqdm:contract_execution .
-hqdm:contract_execution_part_of rdfs:range hqdm:contract_process .
-hqdm:contract_process rdf:type rdfs:Class .
-hqdm:contract_process rdfs:subClassOf hqdm:agreement_process .
-hqdm:contract_process_consists_of rdfs:domain hqdm:contract_process .
-hqdm:contract_process_consists_of rdfs:range hqdm:part_of .
-hqdm:contract_process_consists_of_ rdfs:domain hqdm:contract_process .
-hqdm:contract_process_consists_of_ rdfs:range hqdm:part_of .
-hqdm:contract_process_member_of rdfs:domain hqdm:contract_process .
-hqdm:contract_process_member_of rdfs:range hqdm:class_of_contract_process .
-hqdm:currency rdfs:subClassOf hqdm:class_of_amount_of_money .
-hqdm:defined_relationship rdf:type rdfs:Class .
-hqdm:defined_relationship rdfs:subClassOf hqdm:relationship .
-hqdm:defined_relationship_involves rdfs:domain hqdm:defined_relationship .
-hqdm:defined_relationship_involves rdfs:range hqdm:classification .
-hqdm:defined_relationship_member_of_kind rdfs:domain hqdm:defined_relationship .
-hqdm:defined_relationship_member_of_kind rdfs:range hqdm:kind_of_relationship_with_signature .
-hqdm:definition rdfs:subClassOf hqdm:representation_by_pattern .
-hqdm:definition_represented rdfs:domain hqdm:definition .
-hqdm:definition_represented rdfs:range hqdm:class .
-hqdm:description rdf:type rdfs:Class .
-hqdm:description rdfs:subClassOf hqdm:representation_by_pattern .
-hqdm:employee rdf:type rdfs:Class .
-hqdm:employee rdfs:subClassOf hqdm:participant .
-hqdm:employee rdfs:subClassOf hqdm:state_of_person .
-hqdm:employee_participant_in rdfs:domain hqdm:employee .
-hqdm:employee_participant_in rdfs:range hqdm:employment .
-hqdm:employer rdf:type rdfs:Class .
-hqdm:employer rdfs:subClassOf hqdm:participant .
-hqdm:employer rdfs:subClassOf hqdm:state_of_party .
-hqdm:employer_participant_in rdfs:domain hqdm:employer .
-hqdm:employer_participant_in rdfs:range hqdm:employment .
-hqdm:employment rdf:type rdfs:Class .
-hqdm:employment rdfs:subClassOf hqdm:association .
-hqdm:employment_consists_of_participant rdfs:domain hqdm:employment .
-hqdm:employment_consists_of_participant rdfs:range hqdm:participant_in .
-hqdm:employment_consists_of_participant_ rdfs:domain hqdm:employment .
-hqdm:employment_consists_of_participant_ rdfs:range hqdm:employee .
-hqdm:ending_of_ownership rdf:type rdfs:Class .
-hqdm:ending_of_ownership rdfs:subClassOf hqdm:event .
-hqdm:enumerated_class rdfs:subClassOf hqdm:class .
-hqdm:event rdf:type rdfs:Class .
-hqdm:event rdfs:subClassOf hqdm:spatio_temporal_extent .
-hqdm:event_member_of rdfs:domain hqdm:event .
-hqdm:event_member_of rdfs:range hqdm:class_of_event .
-hqdm:exchange_of_goods_and_money rdf:type rdfs:Class .
-hqdm:exchange_of_goods_and_money rdfs:subClassOf hqdm:contract_execution .
-hqdm:exchange_of_goods_and_money_consists_of rdfs:domain hqdm:exchange_of_goods_and_money .
-hqdm:exchange_of_goods_and_money_consists_of rdfs:range hqdm:part_of .
-hqdm:exchange_of_goods_and_money_consists_of_ rdfs:domain hqdm:exchange_of_goods_and_money .
-hqdm:exchange_of_goods_and_money_consists_of_ rdfs:range hqdm:transfer_of_ownership_of_money .
-hqdm:exchange_of_goods_and_money_part_of rdfs:domain hqdm:exchange_of_goods_and_money .
-hqdm:exchange_of_goods_and_money_part_of rdfs:range hqdm:sale_of_goods .
-hqdm:function_ rdf:type rdfs:Class .
-hqdm:function_ rdfs:subClassOf hqdm:relationship .
-hqdm:functional_object rdf:type rdfs:Class .
-hqdm:functional_object rdfs:subClassOf hqdm:intentionally_constructed_object .
-hqdm:functional_object rdfs:subClassOf hqdm:physical_object .
-hqdm:functional_object rdfs:subClassOf hqdm:state_of_functional_object .
-hqdm:functional_object_intended_role rdfs:domain hqdm:functional_object .
-hqdm:functional_object_intended_role rdfs:range hqdm:role .
-hqdm:functional_object_member_of rdfs:domain hqdm:functional_object .
-hqdm:functional_object_member_of rdfs:range hqdm:class_of_functional_object .
-hqdm:functional_object_member_of_kind rdfs:domain hqdm:functional_object .
-hqdm:functional_object_member_of_kind rdfs:range hqdm:kind_of_functional_object .
-hqdm:functional_system rdf:type rdfs:Class .
-hqdm:functional_system rdfs:subClassOf hqdm:ordinary_functional_object .
-hqdm:functional_system rdfs:subClassOf hqdm:state_of_functional_system .
-hqdm:functional_system rdfs:subClassOf hqdm:system .
-hqdm:functional_system_component rdf:type rdfs:Class .
-hqdm:functional_system_component rdfs:subClassOf hqdm:functional_object .
-hqdm:functional_system_component rdfs:subClassOf hqdm:state_of_functional_system_component .
-hqdm:functional_system_component rdfs:subClassOf hqdm:system_component .
-hqdm:functional_system_component_component_of rdfs:domain hqdm:functional_system_component .
-hqdm:functional_system_component_component_of rdfs:range hqdm:functional_system .
-hqdm:functional_system_component_member_of rdfs:domain hqdm:functional_system_component .
-hqdm:functional_system_component_member_of rdfs:range hqdm:class_of_functional_system_component .
-hqdm:functional_system_component_member_of_kind rdfs:domain hqdm:functional_system_component .
-hqdm:functional_system_component_member_of_kind rdfs:range hqdm:kind_of_functional_system_component .
-hqdm:functional_system_member_of rdfs:domain hqdm:functional_system .
-hqdm:functional_system_member_of rdfs:range hqdm:class_of_functional_system .
-hqdm:functional_system_member_of_kind rdfs:domain hqdm:functional_system .
-hqdm:functional_system_member_of_kind rdfs:range hqdm:kind_of_functional_system .
-hqdm:identification rdf:type rdfs:Class .
-hqdm:identification rdfs:subClassOf hqdm:representation_by_pattern .
-hqdm:identification_of_physical_quantity rdfs:subClassOf hqdm:identification .
-hqdm:identification_of_physical_quantity_consists_of_by_class rdfs:domain hqdm:identification_of_physical_quantity .
-hqdm:identification_of_physical_quantity_consists_of_by_class rdfs:range xsd:double .
-hqdm:identification_of_physical_quantity_represented rdfs:domain hqdm:identification_of_physical_quantity .
-hqdm:identification_of_physical_quantity_represented rdfs:range hqdm:physical_quantity .
-hqdm:identification_of_physical_quantity_uses rdfs:domain hqdm:identification_of_physical_quantity .
-hqdm:identification_of_physical_quantity_uses rdfs:range hqdm:scale .
-hqdm:in_place_biological_component rdf:type rdfs:Class .
-hqdm:in_place_biological_component rdfs:subClassOf hqdm:installed_object .
-hqdm:in_place_biological_component rdfs:subClassOf hqdm:state_of_biological_system_component .
-hqdm:in_place_biological_component rdfs:subClassOf hqdm:state_of_ordinary_biological_object .
-hqdm:in_place_biological_component_member_of rdfs:domain hqdm:in_place_biological_component .
-hqdm:in_place_biological_component_member_of rdfs:range hqdm:class_of_in_place_biological_component .
-hqdm:individual rdf:type rdfs:Class .
-hqdm:individual rdfs:subClassOf hqdm:state .
-hqdm:individual_member_of rdfs:domain hqdm:individual .
-hqdm:individual_member_of rdfs:range hqdm:class_of_individual .
-hqdm:individual_member_of_kind rdfs:domain hqdm:individual .
-hqdm:individual_member_of_kind rdfs:range hqdm:kind_of_individual .
-hqdm:installed_functional_system_component rdf:type rdfs:Class .
-hqdm:installed_functional_system_component rdfs:subClassOf hqdm:installed_object .
-hqdm:installed_functional_system_component rdfs:subClassOf hqdm:state_of_functional_system_component .
-hqdm:installed_functional_system_component rdfs:subClassOf hqdm:state_of_ordinary_functional_object .
-hqdm:installed_functional_system_component_member_of rdfs:domain hqdm:installed_functional_system_component .
-hqdm:installed_functional_system_component_member_of rdfs:range hqdm:class_of_installed_functional_system_component .
-hqdm:installed_object rdf:type rdfs:Class .
-hqdm:installed_object rdfs:subClassOf hqdm:state_of_ordinary_physical_object .
-hqdm:installed_object rdfs:subClassOf hqdm:state_of_system_component .
-hqdm:installed_object_member_of rdfs:domain hqdm:installed_object .
-hqdm:installed_object_member_of rdfs:range hqdm:class_of_installed_object .
-hqdm:intentionally_constructed_object rdf:type rdfs:Class .
-hqdm:intentionally_constructed_object rdfs:subClassOf hqdm:individual .
-hqdm:intentionally_constructed_object rdfs:subClassOf hqdm:state_of_intentionally_constructed_object .
-hqdm:intentionally_constructed_object_member_of rdfs:domain hqdm:intentionally_constructed_object .
-hqdm:intentionally_constructed_object_member_of rdfs:range hqdm:class_of_intentionally_constructed_object .
-hqdm:intentionally_constructed_object_member_of_kind rdfs:domain hqdm:intentionally_constructed_object .
-hqdm:intentionally_constructed_object_member_of_kind rdfs:range hqdm:kind_of_intentionally_constructed_object .
-hqdm:kind_of_activity rdfs:subClassOf hqdm:class_of_activity .
-hqdm:kind_of_activity_causes_by_class rdfs:domain hqdm:kind_of_activity .
-hqdm:kind_of_activity_causes_by_class rdfs:range hqdm:class_of_event .
-hqdm:kind_of_activity_consists_of_by_class rdfs:domain hqdm:kind_of_activity .
-hqdm:kind_of_activity_consists_of_by_class rdfs:range hqdm:role .
-hqdm:kind_of_activity_determines_by_class rdfs:domain hqdm:kind_of_activity .
-hqdm:kind_of_activity_determines_by_class rdfs:range hqdm:class .
-hqdm:kind_of_activity_references_by_class rdfs:domain hqdm:kind_of_activity .
-hqdm:kind_of_activity_references_by_class rdfs:range hqdm:class .
-hqdm:kind_of_association rdfs:subClassOf hqdm:class_of_association .
-hqdm:kind_of_association_consists_of_by_class rdfs:domain hqdm:kind_of_association .
-hqdm:kind_of_association_consists_of_by_class rdfs:range hqdm:role .
-hqdm:kind_of_biological_object rdf:type rdfs:Class .
-hqdm:kind_of_biological_object rdfs:subClassOf hqdm:class_of_biological_object .
-hqdm:kind_of_biological_object rdfs:subClassOf hqdm:kind_of_physical_object .
-hqdm:kind_of_biological_system rdf:type rdfs:Class .
-hqdm:kind_of_biological_system rdfs:subClassOf hqdm:class_of_biological_system .
-hqdm:kind_of_biological_system rdfs:subClassOf hqdm:kind_of_system .
-hqdm:kind_of_biological_system_component rdfs:subClassOf hqdm:class_of_biological_system_component .
-hqdm:kind_of_biological_system_component rdfs:subClassOf hqdm:kind_of_system_component .
-hqdm:kind_of_biological_system_has_component_by_class rdfs:domain hqdm:kind_of_biological_system .
-hqdm:kind_of_biological_system_has_component_by_class rdfs:range hqdm:kind_of_biological_system_component .
-hqdm:kind_of_biological_system_natural_role_by_class rdfs:domain hqdm:kind_of_biological_system .
-hqdm:kind_of_biological_system_natural_role_by_class rdfs:range hqdm:role .
-hqdm:kind_of_functional_object rdf:type rdfs:Class .
-hqdm:kind_of_functional_object rdfs:subClassOf hqdm:class_of_functional_object .
-hqdm:kind_of_functional_object rdfs:subClassOf hqdm:kind_of_intentionally_constructed_object .
-hqdm:kind_of_functional_object rdfs:subClassOf hqdm:kind_of_physical_object .
-hqdm:kind_of_functional_object_intended_role_by_class rdfs:domain hqdm:kind_of_functional_object .
-hqdm:kind_of_functional_object_intended_role_by_class rdfs:range hqdm:role .
-hqdm:kind_of_functional_system rdf:type rdfs:Class .
-hqdm:kind_of_functional_system rdfs:subClassOf hqdm:class_of_functional_system .
-hqdm:kind_of_functional_system rdfs:subClassOf hqdm:kind_of_system .
-hqdm:kind_of_functional_system_component rdfs:subClassOf hqdm:class_of_functional_system_component .
-hqdm:kind_of_functional_system_component rdfs:subClassOf hqdm:kind_of_system_component .
-hqdm:kind_of_functional_system_has_component_by_class rdfs:domain hqdm:kind_of_functional_system .
-hqdm:kind_of_functional_system_has_component_by_class rdfs:range hqdm:kind_of_functional_system_component .
-hqdm:kind_of_individual rdf:type rdfs:Class .
-hqdm:kind_of_individual rdfs:subClassOf hqdm:class_of_individual .
-hqdm:kind_of_intentionally_constructed_object rdf:type rdfs:Class .
-hqdm:kind_of_intentionally_constructed_object rdfs:subClassOf hqdm:class_of_intentionally_constructed_object .
-hqdm:kind_of_intentionally_constructed_object rdfs:subClassOf hqdm:kind_of_individual .
-hqdm:kind_of_ordinary_biological_object rdfs:subClassOf hqdm:class_of_ordinary_biological_object .
-hqdm:kind_of_ordinary_biological_object rdfs:subClassOf hqdm:kind_of_biological_object .
-hqdm:kind_of_ordinary_biological_object rdfs:subClassOf hqdm:kind_of_ordinary_physical_object .
-hqdm:kind_of_ordinary_functional_object rdf:type rdfs:Class .
-hqdm:kind_of_ordinary_functional_object rdfs:subClassOf hqdm:class_of_ordinary_functional_object .
-hqdm:kind_of_ordinary_functional_object rdfs:subClassOf hqdm:kind_of_functional_object .
-hqdm:kind_of_ordinary_functional_object rdfs:subClassOf hqdm:kind_of_ordinary_physical_object .
-hqdm:kind_of_ordinary_physical_object rdf:type rdfs:Class .
-hqdm:kind_of_ordinary_physical_object rdfs:subClassOf hqdm:class_of_ordinary_physical_object .
-hqdm:kind_of_ordinary_physical_object rdfs:subClassOf hqdm:kind_of_physical_object .
-hqdm:kind_of_organization rdfs:subClassOf hqdm:class_of_organization .
-hqdm:kind_of_organization rdfs:subClassOf hqdm:kind_of_party .
-hqdm:kind_of_organization rdfs:subClassOf hqdm:kind_of_socially_constructed_object .
-hqdm:kind_of_organization_component rdf:type rdfs:Class .
-hqdm:kind_of_organization_component rdfs:subClassOf hqdm:class_of_organization_component .
-hqdm:kind_of_organization_component rdfs:subClassOf hqdm:kind_of_socially_constructed_object .
-hqdm:kind_of_organization_component rdfs:subClassOf hqdm:kind_of_system_component .
-hqdm:kind_of_organization_component_by_class rdfs:domain hqdm:kind_of_organization .
-hqdm:kind_of_organization_component_by_class rdfs:range hqdm:kind_of_organization_component .
-hqdm:kind_of_party rdf:type rdfs:Class .
-hqdm:kind_of_party rdfs:subClassOf hqdm:class_of_party .
-hqdm:kind_of_party rdfs:subClassOf hqdm:kind_of_system .
-hqdm:kind_of_person rdf:type rdfs:Class .
-hqdm:kind_of_person rdfs:subClassOf hqdm:class_of_person .
-hqdm:kind_of_person rdfs:subClassOf hqdm:kind_of_party .
-hqdm:kind_of_physical_object rdf:type rdfs:Class .
-hqdm:kind_of_physical_object rdfs:subClassOf hqdm:class_of_physical_object .
-hqdm:kind_of_physical_object rdfs:subClassOf hqdm:kind_of_individual .
-hqdm:kind_of_physical_property rdf:type rdfs:Class .
-hqdm:kind_of_physical_property rdfs:subClassOf hqdm:class_of_physical_property .
-hqdm:kind_of_physical_quantity rdf:type rdfs:Class .
-hqdm:kind_of_physical_quantity rdfs:subClassOf hqdm:class_of_physical_quantity .
-hqdm:kind_of_physical_quantity rdfs:subClassOf hqdm:kind_of_physical_property .
-hqdm:kind_of_position rdf:type rdfs:Class .
-hqdm:kind_of_position rdfs:subClassOf hqdm:class_of_position .
-hqdm:kind_of_position rdfs:subClassOf hqdm:kind_of_organization_component .
-hqdm:kind_of_relationship_with_restriction rdf:type rdfs:Class .
-hqdm:kind_of_relationship_with_restriction rdfs:subClassOf hqdm:kind_of_relationship_with_signature .
-hqdm:kind_of_relationship_with_restriction_required_role_player rdfs:domain hqdm:kind_of_relationship_with_restriction .
-hqdm:kind_of_relationship_with_restriction_required_role_player rdfs:range hqdm:classification .
-hqdm:kind_of_relationship_with_signature rdf:type rdfs:Class .
-hqdm:kind_of_relationship_with_signature rdfs:subClassOf hqdm:class_of_relationship .
-hqdm:kind_of_relationship_with_signature_roles rdfs:domain hqdm:kind_of_relationship_with_signature .
-hqdm:kind_of_relationship_with_signature_roles rdfs:range hqdm:class .
-hqdm:kind_of_socially_constructed_object rdf:type rdfs:Class .
-hqdm:kind_of_socially_constructed_object rdfs:subClassOf hqdm:class_of_state_of_socially_constructed_object .
-hqdm:kind_of_socially_constructed_object rdfs:subClassOf hqdm:kind_of_intentionally_constructed_object .
-hqdm:kind_of_system rdf:type rdfs:Class .
-hqdm:kind_of_system rdfs:subClassOf hqdm:class_of_system .
-hqdm:kind_of_system rdfs:subClassOf hqdm:kind_of_ordinary_physical_object .
-hqdm:kind_of_system_component rdf:type rdfs:Class .
-hqdm:kind_of_system_component rdfs:subClassOf hqdm:class_of_system_component .
-hqdm:kind_of_system_component rdfs:subClassOf hqdm:kind_of_physical_object .
-hqdm:kind_of_system_has_component_by_class rdfs:domain hqdm:kind_of_system .
-hqdm:kind_of_system_has_component_by_class rdfs:range hqdm:kind_of_system_component .
-hqdm:language_community rdf:type rdfs:Class .
-hqdm:language_community rdfs:subClassOf hqdm:organization .
-hqdm:language_community rdfs:subClassOf hqdm:state_of_language_community .
-hqdm:money_asset rdf:type rdfs:Class .
-hqdm:money_asset rdfs:subClassOf hqdm:asset .
-hqdm:money_asset rdfs:subClassOf hqdm:state_of_amount_of_money .
-hqdm:offer rdf:type rdfs:Class .
-hqdm:offer rdfs:subClassOf hqdm:socially_constructed_activity .
-hqdm:offer_and_acceptance_for_goods rdf:type rdfs:Class .
-hqdm:offer_and_acceptance_for_goods rdfs:subClassOf hqdm:agree_contract .
-hqdm:offer_and_acceptance_for_goods_consists_of rdfs:domain hqdm:offer_and_acceptance_for_goods .
-hqdm:offer_and_acceptance_for_goods_consists_of rdfs:range hqdm:part_of .
-hqdm:offer_and_acceptance_for_goods_consists_of_ rdfs:domain hqdm:offer_and_acceptance_for_goods .
-hqdm:offer_and_acceptance_for_goods_consists_of_ rdfs:range hqdm:part_of .
-hqdm:offer_and_acceptance_for_goods_part_of rdfs:domain hqdm:offer_and_acceptance_for_goods .
-hqdm:offer_and_acceptance_for_goods_part_of rdfs:range hqdm:sale_of_goods .
-hqdm:offer_for_goods rdf:type rdfs:Class .
-hqdm:offer_for_goods rdfs:subClassOf hqdm:offer .
-hqdm:offer_for_goods_part_of rdfs:domain hqdm:offer_for_goods .
-hqdm:offer_for_goods_part_of rdfs:range hqdm:offer_and_acceptance_for_goods .
-hqdm:offer_for_goods_references rdfs:domain hqdm:offer_for_goods .
-hqdm:offer_for_goods_references rdfs:range hqdm:exchange_of_goods_and_money .
-hqdm:offer_member_of rdfs:domain hqdm:offer .
-hqdm:offer_member_of rdfs:range hqdm:class_of_offer .
-hqdm:offer_part_of rdfs:domain hqdm:offer .
-hqdm:offer_part_of rdfs:range hqdm:agree_contract .
-hqdm:offering rdf:type rdfs:Class .
-hqdm:offering rdfs:subClassOf hqdm:class_of_offer .
-hqdm:offering_class_of_offered rdfs:domain hqdm:offering .
-hqdm:offering_class_of_offered rdfs:range hqdm:class_of_individual .
-hqdm:offering_consideration_by_class rdfs:domain hqdm:offering .
-hqdm:offering_consideration_by_class rdfs:range hqdm:price .
-hqdm:offering_offeror rdfs:domain hqdm:offering .
-hqdm:offering_offeror rdfs:range hqdm:party .
-hqdm:offering_period_offered rdfs:domain hqdm:offering .
-hqdm:offering_period_offered rdfs:range hqdm:period_of_time .
-hqdm:ordinary_biological_object rdf:type rdfs:Class .
-hqdm:ordinary_biological_object rdfs:subClassOf hqdm:biological_object .
-hqdm:ordinary_biological_object rdfs:subClassOf hqdm:ordinary_physical_object .
-hqdm:ordinary_biological_object rdfs:subClassOf hqdm:state_of_ordinary_biological_object .
-hqdm:ordinary_biological_object_member_of rdfs:domain hqdm:ordinary_biological_object .
-hqdm:ordinary_biological_object_member_of rdfs:range hqdm:class_of_ordinary_biological_object .
-hqdm:ordinary_biological_object_member_of_kind rdfs:domain hqdm:ordinary_biological_object .
-hqdm:ordinary_biological_object_member_of_kind rdfs:range hqdm:kind_of_ordinary_biological_object .
-hqdm:ordinary_functional_object rdf:type rdfs:Class .
-hqdm:ordinary_functional_object rdfs:subClassOf hqdm:functional_object .
-hqdm:ordinary_functional_object rdfs:subClassOf hqdm:ordinary_physical_object .
-hqdm:ordinary_functional_object rdfs:subClassOf hqdm:state_of_ordinary_functional_object .
-hqdm:ordinary_functional_object_member_of rdfs:domain hqdm:ordinary_functional_object .
-hqdm:ordinary_functional_object_member_of rdfs:range hqdm:class_of_ordinary_functional_object .
-hqdm:ordinary_functional_object_member_of_kind rdfs:domain hqdm:ordinary_functional_object .
-hqdm:ordinary_functional_object_member_of_kind rdfs:range hqdm:kind_of_ordinary_functional_object .
-hqdm:ordinary_physical_object rdf:type rdfs:Class .
-hqdm:ordinary_physical_object rdfs:subClassOf hqdm:physical_object .
-hqdm:ordinary_physical_object rdfs:subClassOf hqdm:state_of_ordinary_physical_object .
-hqdm:ordinary_physical_object_member_of rdfs:domain hqdm:ordinary_physical_object .
-hqdm:ordinary_physical_object_member_of rdfs:range hqdm:class_of_ordinary_physical_object .
-hqdm:ordinary_physical_object_member_of_kind rdfs:domain hqdm:ordinary_physical_object .
-hqdm:ordinary_physical_object_member_of_kind rdfs:range hqdm:kind_of_ordinary_physical_object .
-hqdm:organization rdf:type rdfs:Class .
-hqdm:organization rdfs:subClassOf hqdm:party .
-hqdm:organization rdfs:subClassOf hqdm:socially_constructed_object .
-hqdm:organization rdfs:subClassOf hqdm:state_of_organization .
-hqdm:organization_component rdf:type rdfs:Class .
-hqdm:organization_component rdfs:subClassOf hqdm:socially_constructed_object .
-hqdm:organization_component rdfs:subClassOf hqdm:state_of_organization_component .
-hqdm:organization_component rdfs:subClassOf hqdm:system_component .
-hqdm:organization_component_component_of rdfs:domain hqdm:organization_component .
-hqdm:organization_component_component_of rdfs:range hqdm:organization .
-hqdm:organization_component_member_of rdfs:domain hqdm:organization_component .
-hqdm:organization_component_member_of rdfs:domain hqdm:class_of_organization_component .
-hqdm:organization_component_member_of_kind rdfs:domain hqdm:organization_component .
-hqdm:organization_component_member_of_kind rdfs:range hqdm:kind_of_organization_component .
-hqdm:organization_member_of rdfs:domain hqdm:organization .
-hqdm:organization_member_of rdfs:range hqdm:class_of_organization .
-hqdm:organization_member_of_kind rdfs:domain hqdm:organization .
-hqdm:organization_member_of_kind rdfs:range hqdm:kind_of_organization .
-hqdm:owner rdf:type rdfs:Class .
-hqdm:owner rdfs:subClassOf hqdm:participant .
-hqdm:owner rdfs:subClassOf hqdm:state_of_party .
-hqdm:owner_participant_in rdfs:domain hqdm:owner .
-hqdm:owner_participant_in rdfs:range hqdm:ownership .
-hqdm:ownership rdf:type rdfs:Class .
-hqdm:ownership rdfs:subClassOf hqdm:association .
-hqdm:ownership_consists_of_participant rdfs:domain hqdm:ownership .
-hqdm:ownership_consists_of_participant rdfs:range hqdm:owner .
-hqdm:ownership_consists_of_participant_ rdfs:domain hqdm:ownership .
-hqdm:ownership_consists_of_participant_ rdfs:range hqdm:asset .
-hqdm:ownership_ending rdfs:domain hqdm:ownership .
-hqdm:ownership_ending rdfs:range hqdm:ending_of_ownership .
-hqdm:ownership_beginning rdfs:domain hqdm:ownership .
-hqdm:ownership_beginning rdfs:range hqdm:beginning_of_ownership .
-hqdm:participant rdf:type rdfs:Class .
-hqdm:participant rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:participant_member_of rdfs:domain hqdm:participant .
-hqdm:participant_member_of rdfs:range hqdm:class_of_participant .
-hqdm:participant_member_of_kind rdfs:domain hqdm:participant .
-hqdm:participant_member_of_kind rdfs:range hqdm:role .
-hqdm:participant_participant_in rdfs:domain hqdm:participant .
-hqdm:participant_participant_in rdfs:range hqdm:participant_in_activity_or_association .
-hqdm:participant_in_activity_or_association rdf:type rdfs:Class .
-hqdm:participant_in_activity_or_association rdfs:subClassOf hqdm:activity .
-hqdm:participant_in_activity_or_association rdfs:subClassOf hqdm:association .
-hqdm:party rdf:type rdfs:Class .
-hqdm:party rdfs:subClassOf hqdm:state_of_party .
-hqdm:party rdfs:subClassOf hqdm:system .
-hqdm:party_member_of rdfs:domain hqdm:party .
-hqdm:party_member_of rdfs:range hqdm:class_of_party .
-hqdm:party_member_of_kind rdfs:domain hqdm:party .
-hqdm:party_member_of_kind rdfs:range hqdm:kind_of_party .
-hqdm:pattern rdfs:subClassOf hqdm:class_of_sign .
-hqdm:period_of_time rdf:type rdfs:Class .
-hqdm:period_of_time rdfs:subClassOf hqdm:state .
-hqdm:period_of_time_member_of rdfs:domain hqdm:period_of_time .
-hqdm:period_of_time_member_of rdfs:range hqdm:class_of_period_of_time .
-hqdm:period_of_time_temporal_part_of_ rdfs:domain hqdm:period_of_time .
-hqdm:period_of_time_temporal_part_of_ rdfs:range hqdm:possible_world .
-hqdm:person rdf:type rdfs:Class .
-hqdm:person rdfs:subClassOf hqdm:biological_system .
-hqdm:person rdfs:subClassOf hqdm:party .
-hqdm:person rdfs:subClassOf hqdm:state_of_person .
-hqdm:person_in_position rdf:type rdfs:Class .
-hqdm:person_in_position rdfs:subClassOf hqdm:installed_object .
-hqdm:person_in_position rdfs:subClassOf hqdm:state_of_person .
-hqdm:person_in_position rdfs:subClassOf hqdm:state_of_position .
-hqdm:person_in_position_member_of rdfs:domain hqdm:person_in_position .
-hqdm:person_in_position_member_of rdfs:range hqdm:class_of_person_in_position .
-hqdm:person_member_of rdfs:domain hqdm:person .
-hqdm:person_member_of rdfs:range hqdm:class_of_person .
-hqdm:person_member_of_kind rdfs:domain hqdm:person .
-hqdm:person_member_of_kind rdfs:range hqdm:kind_of_person .
-hqdm:physical_object rdf:type rdfs:Class .
-hqdm:physical_object rdfs:subClassOf hqdm:individual .
-hqdm:physical_object rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:physical_object_member_of rdfs:domain hqdm:physical_object .
-hqdm:physical_object_member_of rdfs:range hqdm:class_of_physical_object .
-hqdm:physical_object_member_of_kind rdfs:domain hqdm:physical_object .
-hqdm:physical_object_member_of_kind rdfs:range hqdm:kind_of_physical_object .
-hqdm:physical_property rdf:type rdfs:Class .
-hqdm:physical_property rdfs:subClassOf hqdm:class_of_state .
-hqdm:physical_property_member_of rdfs:domain hqdm:physical_property .
-hqdm:physical_property_member_of rdfs:range hqdm:class_of_physical_property .
-hqdm:physical_property_member_of_kind rdfs:domain hqdm:physical_property .
-hqdm:physical_property_member_of_kind rdfs:range hqdm:kind_of_physical_property .
-hqdm:physical_property_range rdf:type rdfs:Class .
-hqdm:physical_property_range rdfs:subClassOf hqdm:class_of_state .
-hqdm:physical_property_range_ranges_over rdfs:domain hqdm:physical_property_range .
-hqdm:physical_property_range_ranges_over rdfs:range hqdm:physical_property .
-hqdm:physical_quantity rdf:type rdfs:Class .
-hqdm:physical_quantity rdfs:subClassOf hqdm:physical_property .
-hqdm:physical_quantity_member_of rdfs:domain hqdm:physical_quantity .
-hqdm:physical_quantity_member_of rdfs:range hqdm:class_of_physical_quantity .
-hqdm:physical_quantity_member_of_kind rdfs:domain hqdm:physical_quantity .
-hqdm:physical_quantity_member_of_kind rdfs:range hqdm:kind_of_physical_quantity .
-hqdm:physical_quantity_range rdf:type rdfs:Class .
-hqdm:physical_quantity_range rdfs:subClassOf hqdm:physical_property_range .
-hqdm:physical_quantity_range_lower_bound rdfs:domain hqdm:physical_quantity_range .
-hqdm:physical_quantity_range_lower_bound rdfs:range hqdm:physical_quantity .
-hqdm:physical_quantity_range_upper_bound rdfs:domain hqdm:physical_quantity_range .
-hqdm:physical_quantity_range_upper_bound rdfs:range hqdm:physical_quantity .
-hqdm:plan rdf:type rdfs:Class .
-hqdm:plan rdfs:subClassOf hqdm:possible_world .
-hqdm:point_in_time rdf:type rdfs:Class .
-hqdm:point_in_time rdfs:subClassOf hqdm:event .
-hqdm:point_in_time_member_of rdfs:domain hqdm:point_in_time .
-hqdm:point_in_time_member_of rdfs:range hqdm:class_of_point_in_time .
-hqdm:position rdf:type rdfs:Class .
-hqdm:position rdfs:subClassOf hqdm:organization_component .
-hqdm:position rdfs:subClassOf hqdm:state_of_position .
-hqdm:position_member_of rdfs:domain hqdm:position .
-hqdm:position_member_of rdfs:range hqdm:class_of_position .
-hqdm:position_member_of_kind rdfs:domain hqdm:position .
-hqdm:position_member_of_kind rdfs:range hqdm:kind_of_position .
-hqdm:possible_world rdf:type rdfs:Class .
-hqdm:possible_world rdfs:subClassOf hqdm:individual .
-hqdm:possible_world rdfs:subClassOf hqdm:period_of_time .
-hqdm:possible_world_member_of rdfs:domain hqdm:possible_world .
-hqdm:possible_world_member_of rdfs:range hqdm:class_of_possible_world .
-hqdm:price rdf:type rdfs:Class .
-hqdm:price rdfs:subClassOf hqdm:class_of_amount_of_money .
-hqdm:product_brand rdf:type rdfs:Class .
-hqdm:product_brand rdfs:subClassOf hqdm:class_of_sales_product_instance .
-hqdm:product_offering rdf:type rdfs:Class .
-hqdm:product_offering rdfs:subClassOf hqdm:offering .
-hqdm:product_offering_class_of_offered rdfs:domain hqdm:product_offering .
-hqdm:product_offering_class_of_offered rdfs:range hqdm:sales_product .
-hqdm:reaching_agreement rdf:type rdfs:Class .
-hqdm:reaching_agreement rdfs:subClassOf hqdm:socially_constructed_activity .
-hqdm:reaching_agreement_member_of rdfs:domain hqdm:reaching_agreement .
-hqdm:reaching_agreement_member_of rdfs:range hqdm:class_of_reaching_agreement .
-hqdm:reaching_agreement_part_of rdfs:domain hqdm:reaching_agreement .
-hqdm:reaching_agreement_part_of rdfs:range hqdm:agreement_process .
-hqdm:recognizing_language_community rdf:type rdfs:Class .
-hqdm:recognizing_language_community rdfs:subClassOf hqdm:participant .
-hqdm:recognizing_language_community rdfs:subClassOf hqdm:state_of_language_community .
-hqdm:recognizing_language_community_participant_in rdfs:domain hqdm:recognizing_language_community .
-hqdm:recognizing_language_community_participant_in rdfs:range hqdm:representation_by_sign .
-hqdm:relationship rdf:type rdfs:Class .
-hqdm:relationship rdfs:subClassOf hqdm:abstract_object .
-hqdm:relationship_member_of rdfs:domain hqdm:relationship .
-hqdm:relationship_member_of rdfs:range hqdm:class_of_relationship .
-hqdm:representation_by_pattern rdf:type rdfs:Class .
-hqdm:representation_by_pattern rdfs:subClassOf hqdm:class_of_representation .
-hqdm:representation_by_pattern_consists_of_by_class rdfs:domain hqdm:representation_by_pattern .
-hqdm:representation_by_pattern_consists_of_by_class rdfs:range hqdm:pattern .
-hqdm:representation_by_pattern_consists_of_in_members rdfs:domain hqdm:representation_by_pattern .
-hqdm:representation_by_pattern_consists_of_in_members rdfs:range hqdm:recognizing_language_community .
-hqdm:representation_by_pattern_represented rdfs:domain hqdm:representation_by_pattern .
-hqdm:representation_by_pattern_represented rdfs:range hqdm:thing .
-hqdm:representation_by_sign rdf:type rdfs:Class .
-hqdm:representation_by_sign rdfs:subClassOf hqdm:association .
-hqdm:representation_by_sign_consists_of rdfs:domain hqdm:representation_by_sign .
-hqdm:representation_by_sign_consists_of rdfs:range hqdm:participant_in .
-hqdm:representation_by_sign_consists_of_ rdfs:domain hqdm:representation_by_sign .
-hqdm:representation_by_sign_consists_of_ rdfs:range hqdm:recognizing_language_community .
-hqdm:representation_by_sign_member_of rdfs:domain hqdm:representation_by_sign .
-hqdm:representation_by_sign_member_of rdfs:range hqdm:class_of_representation .
-hqdm:representation_by_sign_member_of_ rdfs:domain hqdm:representation_by_sign .
-hqdm:representation_by_sign_member_of_ rdfs:range hqdm:representation_by_pattern .
-hqdm:representation_by_sign_represents rdfs:domain hqdm:representation_by_sign .
-hqdm:representation_by_sign_represents rdfs:range hqdm:thing .
-hqdm:requirement rdf:type rdfs:Class .
-hqdm:requirement rdfs:subClassOf hqdm:spatio_temporal_extent .
-hqdm:requirement_defined_by rdfs:domain hqdm:requirement .
-hqdm:requirement_defined_by rdfs:range hqdm:requirement_specification .
-hqdm:requirement_part_of_plan rdfs:domain hqdm:requirement .
-hqdm:requirement_part_of_plan rdfs:range hqdm:plan .
-hqdm:requirement_specification rdf:type rdfs:Class .
-hqdm:requirement_specification rdfs:subClassOf hqdm:class_of_spatio_temporal_extent .
-hqdm:requirement_specification_intersection_of rdfs:domain hqdm:requirement_specification .
-hqdm:requirement_specification_intersection_of rdfs:range hqdm:class_of_state .
-hqdm:role rdf:type rdfs:Class .
-hqdm:role rdfs:subClassOf hqdm:class_of_participant .
-hqdm:role_part_of_by_class rdfs:domain hqdm:role .
-hqdm:role_part_of_by_class rdfs:range hqdm:kind_of_activity .
-hqdm:role_part_of_by_class_ rdfs:domain hqdm:role .
-hqdm:role_part_of_by_class_ rdfs:range hqdm:kind_of_association .
-hqdm:sale_of_goods rdf:type rdfs:Class .
-hqdm:sale_of_goods rdfs:subClassOf hqdm:contract_process .
-hqdm:sale_of_goods_consists_of rdfs:domain hqdm:sale_of_goods .
-hqdm:sale_of_goods_consists_of rdfs:range hqdm:part_of .
-hqdm:sale_of_goods_consists_of_ rdfs:domain hqdm:sale_of_goods .
-hqdm:sale_of_goods_consists_of_ rdfs:range hqdm:part_of .
-hqdm:sales_product rdf:type rdfs:Class .
-hqdm:sales_product rdfs:subClassOf hqdm:class_of_sales_product_instance .
-hqdm:sales_product_instance rdf:type rdfs:Class .
-hqdm:sales_product_instance rdfs:subClassOf hqdm:ordinary_functional_object .
-hqdm:sales_product_instance rdfs:subClassOf hqdm:state_of_sales_product_instance .
-hqdm:sales_product_instance_member_of rdfs:domain hqdm:sales_product_instance .
-hqdm:sales_product_instance_member_of rdfs:range hqdm:class_of_sales_product_instance .
-hqdm:sales_product_meets_specification rdfs:domain hqdm:sales_product .
-hqdm:sales_product_meets_specification rdfs:range hqdm:requirement_specification .
-hqdm:sales_product_sold_under rdfs:domain hqdm:sales_product .
-hqdm:sales_product_sold_under rdfs:range hqdm:product_brand .
-hqdm:sales_product_version rdfs:subClassOf hqdm:class_of_sales_product_instance .
-hqdm:sales_product_version_sold_as rdfs:domain hqdm:sales_product_version .
-hqdm:sales_product_version_sold_as rdfs:range hqdm:sales_product .
-hqdm:sales_product_version_successor rdfs:domain hqdm:sales_product_version .
-hqdm:sales_product_version_successor rdfs:range hqdm:sales_product_version .
-hqdm:scale rdfs:subClassOf hqdm:function_ .
-hqdm:scale_domain rdfs:domain hqdm:scale .
-hqdm:scale_domain rdfs:range hqdm:kind_of_physical_quantity .
-hqdm:scale_unit rdfs:domain hqdm:scale .
-hqdm:scale_unit rdfs:range hqdm:unit_of_measure .
-hqdm:sign rdfs:subClassOf hqdm:participant .
-hqdm:sign rdfs:subClassOf hqdm:socially_constructed_object .
-hqdm:sign rdfs:subClassOf hqdm:state_of_sign .
-hqdm:sign_member_of rdfs:domain hqdm:sign .
-hqdm:sign_member_of rdfs:range hqdm:class_of_sign .
-hqdm:sign_member_of_ rdfs:domain hqdm:sign .
-hqdm:sign_member_of_ rdfs:range hqdm:pattern .
-hqdm:sign_participant_in rdfs:domain hqdm:sign .
-hqdm:sign_participant_in rdfs:range hqdm:representation_by_sign .
-hqdm:socially_constructed_activity rdf:type rdfs:Class .
-hqdm:socially_constructed_activity rdfs:subClassOf hqdm:activity .
-hqdm:socially_constructed_activity rdfs:subClassOf hqdm:socially_constructed_object .
-hqdm:socially_constructed_activity_member_of rdfs:domain hqdm:socially_constructed_activity .
-hqdm:socially_constructed_activity_member_of rdfs:range hqdm:class_of_socially_constructed_activity .
-hqdm:socially_constructed_activity_part_of rdfs:domain hqdm:socially_constructed_activity .
-hqdm:socially_constructed_activity_part_of rdfs:range hqdm:reaching_agreement .
-hqdm:socially_constructed_activity_part_of_ rdfs:domain hqdm:socially_constructed_activity .
-hqdm:socially_constructed_activity_part_of_ rdfs:range hqdm:agreement_execution .
-hqdm:socially_constructed_object rdf:type rdfs:Class .
-hqdm:socially_constructed_object rdfs:subClassOf hqdm:intentionally_constructed_object .
-hqdm:socially_constructed_object rdfs:subClassOf hqdm:state_of_socially_constructed_object .
-hqdm:socially_constructed_object_member_of rdfs:domain hqdm:socially_constructed_object .
-hqdm:socially_constructed_object_member_of rdfs:range hqdm:class_of_socially_constructed_object .
-hqdm:socially_constructed_object_member_of_kind rdfs:domain hqdm:socially_constructed_object .
-hqdm:socially_constructed_object_member_of_kind rdfs:range hqdm:kind_of_socially_constructed_object .
-hqdm:spatio_temporal_extent rdf:type rdfs:Class .
-hqdm:spatio_temporal_extent rdfs:subClassOf hqdm:thing .
-hqdm:spatio_temporal_extent_aggregated_into rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_aggregated_into rdfs:range hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_beginning rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_beginning rdfs:range hqdm:event .
-hqdm:spatio_temporal_extent_consists__of rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_consists__of rdfs:range hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_ending rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_ending rdfs:range hqdm:event .
-hqdm:spatio_temporal_extent_member_of rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_member_of rdfs:range hqdm:class_of_spatio_temporal_extent .
-hqdm:spatio_temporal_extent_part__of rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_part__of rdfs:range hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_part_of_possible_world rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_part_of_possible_world rdfs:range hqdm:possible_world .
-hqdm:spatio_temporal_extent_temporal__part_of rdfs:domain hqdm:spatio_temporal_extent .
-hqdm:spatio_temporal_extent_temporal__part_of rdfs:range hqdm:spatio_temporal_extent .
-hqdm:specialization rdf:type rdfs:Class .
-hqdm:specialization rdfs:subClassOf hqdm:relationship .
-hqdm:specialization_subclass rdfs:domain hqdm:specialization .
-hqdm:specialization_subclass rdfs:range hqdm:class .
-hqdm:specialization_superclass rdfs:domain hqdm:specialization .
-hqdm:specialization_superclass rdfs:range hqdm:class .
-hqdm:state rdf:type rdfs:Class .
-hqdm:state rdfs:subClassOf hqdm:spatio_temporal_extent .
-hqdm:state_member_of rdfs:domain hqdm:state .
-hqdm:state_member_of rdfs:range hqdm:class_of_state .
-hqdm:state_of_activity rdf:type rdfs:Class .
-hqdm:state_of_activity rdfs:subClassOf hqdm:state .
-hqdm:state_of_activity_member_of rdfs:domain hqdm:state_of_activity .
-hqdm:state_of_activity_member_of rdfs:range hqdm:class_of_state_of_activity .
-hqdm:state_of_activity_temporal_part_of rdfs:domain hqdm:state_of_activity .
-hqdm:state_of_activity_temporal_part_of rdfs:range hqdm:activity .
-hqdm:state_of_amount_of_money rdf:type rdfs:Class .
-hqdm:state_of_amount_of_money rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:state_of_amount_of_money rdfs:subClassOf hqdm:state_of_socially_constructed_object .
-hqdm:state_of_amount_of_money_member_of rdfs:domain hqdm:state_of_amount_of_money .
-hqdm:state_of_amount_of_money_member_of rdfs:range hqdm:class_of_state_of_amount_of_money .
-hqdm:state_of_amount_of_money_temporal_part_of rdfs:domain hqdm:state_of_amount_of_money .
-hqdm:state_of_amount_of_money_temporal_part_of rdfs:range hqdm:amount_of_money .
-hqdm:state_of_association rdf:type rdfs:Class .
-hqdm:state_of_association rdfs:subClassOf hqdm:state .
-hqdm:state_of_association_member_of rdfs:domain hqdm:state_of_association .
-hqdm:state_of_association_member_of rdfs:range hqdm:class_of_state_of_association .
-hqdm:state_of_association_temporal_part_of rdfs:domain hqdm:state_of_association .
-hqdm:state_of_association_temporal_part_of rdfs:range hqdm:association .
-hqdm:state_of_biological_object rdf:type rdfs:Class .
-hqdm:state_of_biological_object rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:state_of_biological_object_member_of rdfs:domain hqdm:state_of_biological_object .
-hqdm:state_of_biological_object_member_of rdfs:range hqdm:class_of_state_of_biological_object .
-hqdm:state_of_biological_object_temporal_part_of rdfs:domain hqdm:state_of_biological_object .
-hqdm:state_of_biological_object_temporal_part_of rdfs:range hqdm:biological_object .
-hqdm:state_of_biological_system rdf:type rdfs:Class .
-hqdm:state_of_biological_system rdfs:subClassOf hqdm:state_of_ordinary_biological_object .
-hqdm:state_of_biological_system rdfs:subClassOf hqdm:state_of_system .
-hqdm:state_of_biological_system_component rdf:type rdfs:Class .
-hqdm:state_of_biological_system_component rdfs:subClassOf hqdm:state_of_biological_object .
-hqdm:state_of_biological_system_component rdfs:subClassOf hqdm:state_of_system_component .
-hqdm:state_of_biological_system_component_member_of rdfs:domain hqdm:state_of_biological_system_component .
-hqdm:state_of_biological_system_component_member_of rdfs:range hqdm:class_of_state_of_biological_system_component .
-hqdm:state_of_biological_system_component_temporal_part_of rdfs:domain hqdm:state_of_biological_system_component .
-hqdm:state_of_biological_system_component_temporal_part_of rdfs:range hqdm:biological_system_component .
-hqdm:state_of_biological_system_member_of rdfs:domain hqdm:state_of_biological_system .
-hqdm:state_of_biological_system_member_of rdfs:range hqdm:class_of_state_of_biological_system .
-hqdm:state_of_biological_system_temporal_part_of rdfs:domain hqdm:state_of_biological_system .
-hqdm:state_of_biological_system_temporal_part_of rdfs:range hqdm:biological_system .
-hqdm:state_of_functional_object rdf:type rdfs:Class .
-hqdm:state_of_functional_object rdfs:subClassOf hqdm:state_of_intentionally_constructed_object .
-hqdm:state_of_functional_object rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:state_of_functional_object_member_of rdfs:domain hqdm:state_of_functional_object .
-hqdm:state_of_functional_object_member_of rdfs:range hqdm:class_of_state_of_functional_object .
-hqdm:state_of_functional_object_temporal_part_of rdfs:domain hqdm:state_of_functional_object .
-hqdm:state_of_functional_object_temporal_part_of rdfs:range hqdm:functional_object .
-hqdm:state_of_functional_system rdf:type rdfs:Class .
-hqdm:state_of_functional_system rdfs:subClassOf hqdm:state_of_ordinary_functional_object .
-hqdm:state_of_functional_system rdfs:subClassOf hqdm:state_of_system .
-hqdm:state_of_functional_system_component rdf:type rdfs:Class .
-hqdm:state_of_functional_system_component rdfs:subClassOf hqdm:state_of_functional_object .
-hqdm:state_of_functional_system_component rdfs:subClassOf hqdm:state_of_system_component .
-hqdm:state_of_functional_system_component_member_of rdfs:domain hqdm:state_of_functional_system_component .
-hqdm:state_of_functional_system_component_member_of rdfs:range hqdm:class_of_state_of_functional_system_component .
-hqdm:state_of_functional_system_component_temporal_part_of rdfs:domain hqdm:state_of_functional_system_component .
-hqdm:state_of_functional_system_component_temporal_part_of rdfs:range hqdm:functional_system_component .
-hqdm:state_of_functional_system_member_of rdfs:domain hqdm:state_of_functional_system .
-hqdm:state_of_functional_system_member_of rdfs:range hqdm:class_of_state_of_functional_system .
-hqdm:state_of_functional_system_temporal_part_of rdfs:domain hqdm:state_of_functional_system .
-hqdm:state_of_functional_system_temporal_part_of rdfs:range hqdm:functional_system .
-hqdm:state_of_intentionally_constructed_object rdf:type rdfs:Class .
-hqdm:state_of_intentionally_constructed_object rdfs:subClassOf hqdm:state .
-hqdm:state_of_intentionally_constructed_object_member_of rdfs:domain hqdm:state_of_intentionally_constructed_object .
-hqdm:state_of_intentionally_constructed_object_member_of rdfs:range hqdm:class_of_state_of_intentionally_constructed_object .
-hqdm:state_of_intentionally_constructed_object_temporal_part_of rdfs:domain hqdm:state_of_intentionally_constructed_object .
-hqdm:state_of_intentionally_constructed_object_temporal_part_of rdfs:range hqdm:intentionally_constructed_object .
-hqdm:state_of_language_community rdf:type rdfs:Class .
-hqdm:state_of_language_community rdfs:subClassOf hqdm:state_of_organization .
-hqdm:state_of_language_community_temporal_part_of rdfs:domain hqdm:state_of_language_community .
-hqdm:state_of_language_community_temporal_part_of rdfs:range hqdm:language_community .
-hqdm:state_of_ordinary_biological_object rdf:type rdfs:Class .
-hqdm:state_of_ordinary_biological_object rdfs:subClassOf hqdm:state_of_biological_object .
-hqdm:state_of_ordinary_biological_object rdfs:subClassOf hqdm:state_of_ordinary_physical_object .
-hqdm:state_of_ordinary_biological_object_member_of rdfs:domain hqdm:state_of_ordinary_biological_object .
-hqdm:state_of_ordinary_biological_object_member_of rdfs:range hqdm:class_of_state_of_ordinary_biological_object .
-hqdm:state_of_ordinary_biological_object_temporal_part_of rdfs:domain hqdm:state_of_ordinary_biological_object .
-hqdm:state_of_ordinary_biological_object_temporal_part_of rdfs:range hqdm:ordinary_biological_object .
-hqdm:state_of_ordinary_functional_object rdf:type rdfs:Class .
-hqdm:state_of_ordinary_functional_object rdfs:subClassOf hqdm:state_of_functional_object .
-hqdm:state_of_ordinary_functional_object rdfs:subClassOf hqdm:state_of_ordinary_physical_object .
-hqdm:state_of_ordinary_functional_object_member_of rdfs:domain hqdm:state_of_ordinary_functional_object .
-hqdm:state_of_ordinary_functional_object_member_of rdfs:range hqdm:class_of_state_of_ordinary_functional_object .
-hqdm:state_of_ordinary_functional_object_temporal_part_of rdfs:domain hqdm:state_of_ordinary_functional_object .
-hqdm:state_of_ordinary_functional_object_temporal_part_of rdfs:range hqdm:ordinary_functional_object .
-hqdm:state_of_ordinary_physical_object rdf:type rdfs:Class .
-hqdm:state_of_ordinary_physical_object rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:state_of_ordinary_physical_object_member_of rdfs:domain hqdm:state_of_ordinary_physical_object .
-hqdm:state_of_ordinary_physical_object_member_of rdfs:range hqdm:class_of_state_of_ordinary_physical_object .
-hqdm:state_of_ordinary_physical_object_temporal_part_of rdfs:domain hqdm:state_of_ordinary_physical_object .
-hqdm:state_of_ordinary_physical_object_temporal_part_of rdfs:range hqdm:ordinary_physical_object .
-hqdm:state_of_organization rdf:type rdfs:Class .
-hqdm:state_of_organization rdfs:subClassOf hqdm:state_of_party .
-hqdm:state_of_organization rdfs:subClassOf hqdm:state_of_socially_constructed_object .
-hqdm:state_of_organization_component rdf:type rdfs:Class .
-hqdm:state_of_organization_component rdfs:subClassOf hqdm:state_of_socially_constructed_object .
-hqdm:state_of_organization_component rdfs:subClassOf hqdm:state_of_system_component .
-hqdm:state_of_organization_component_member_of rdfs:domain hqdm:state_of_organization_component .
-hqdm:state_of_organization_component_member_of rdfs:range hqdm:class_of_state_of_organization_component .
-hqdm:state_of_organization_component_temporal_part_of rdfs:domain hqdm:state_of_organization_component .
-hqdm:state_of_organization_component_temporal_part_of rdfs:range hqdm:organization_component .
-hqdm:state_of_organization_member_of rdfs:domain hqdm:state_of_organization .
-hqdm:state_of_organization_member_of rdfs:range hqdm:class_of_state_of_organization .
-hqdm:state_of_organization_temporal_part_of rdfs:domain hqdm:state_of_organization .
-hqdm:state_of_organization_temporal_part_of rdfs:range hqdm:organization .
-hqdm:state_of_party rdf:type rdfs:Class .
-hqdm:state_of_party rdfs:subClassOf hqdm:state_of_system .
-hqdm:state_of_party_member_of rdfs:domain hqdm:state_of_party .
-hqdm:state_of_party_member_of rdfs:range hqdm:class_of_state_of_party .
-hqdm:state_of_party_temporal_part_of rdfs:domain hqdm:state_of_party .
-hqdm:state_of_party_temporal_part_of rdfs:range hqdm:party .
-hqdm:state_of_person rdf:type rdfs:Class .
-hqdm:state_of_person rdfs:subClassOf hqdm:state_of_biological_system .
-hqdm:state_of_person rdfs:subClassOf hqdm:state_of_party .
-hqdm:state_of_person_member_of rdfs:domain hqdm:state_of_person .
-hqdm:state_of_person_member_of rdfs:range hqdm:class_of_state_of_person .
-hqdm:state_of_person_temporal_part_of rdfs:domain hqdm:state_of_person .
-hqdm:state_of_person_temporal_part_of rdfs:range hqdm:person .
-hqdm:state_of_physical_object rdf:type rdfs:Class .
-hqdm:state_of_physical_object rdfs:subClassOf hqdm:state .
-hqdm:state_of_physical_object_member_of rdfs:domain hqdm:state_of_physical_object .
-hqdm:state_of_physical_object_member_of rdfs:range hqdm:class_of_state_of_physical_object .
-hqdm:state_of_physical_object_temporal_part_of rdfs:domain hqdm:state_of_physical_object .
-hqdm:state_of_physical_object_temporal_part_of rdfs:range hqdm:physical_object .
-hqdm:state_of_position rdf:type rdfs:Class .
-hqdm:state_of_position rdfs:subClassOf hqdm:state_of_organization_component .
-hqdm:state_of_position_member_of rdfs:domain hqdm:state_of_position .
-hqdm:state_of_position_member_of rdfs:range hqdm:class_of_state_of_position .
-hqdm:state_of_position_temporal_part_of rdfs:domain hqdm:state_of_position .
-hqdm:state_of_position_temporal_part_of rdfs:range hqdm:position .
-hqdm:state_of_sales_product_instance rdf:type rdfs:Class .
-hqdm:state_of_sales_product_instance rdfs:subClassOf hqdm:state_of_ordinary_functional_object .
-hqdm:state_of_sales_product_instance_member_of rdfs:domain hqdm:state_of_sales_product_instance .
-hqdm:state_of_sales_product_instance_member_of rdfs:range hqdm:class_of_state_of_sales_product_instance .
-hqdm:state_of_sales_product_instance_temporal_part_of rdfs:domain hqdm:state_of_sales_product_instance .
-hqdm:state_of_sales_product_instance_temporal_part_of rdfs:range hqdm:sales_product_instance .
-hqdm:state_of_sign rdf:type rdfs:Class .
-hqdm:state_of_sign rdfs:subClassOf hqdm:state_of_socially_constructed_object .
-hqdm:state_of_sign_member_of rdfs:domain hqdm:state_of_sign .
-hqdm:state_of_sign_member_of rdfs:range hqdm:class_of_state_of_sign .
-hqdm:state_of_sign_temporal_part_of rdfs:domain hqdm:state_of_sign .
-hqdm:state_of_sign_temporal_part_of rdfs:range hqdm:sign .
-hqdm:state_of_socially_constructed_activity rdf:type rdfs:Class .
-hqdm:state_of_socially_constructed_activity rdfs:subClassOf hqdm:state_of_activity .
-hqdm:state_of_socially_constructed_activity rdfs:subClassOf hqdm:state_of_socially_constructed_object .
-hqdm:state_of_socially_constructed_object rdf:type rdfs:Class .
-hqdm:state_of_socially_constructed_object rdfs:subClassOf hqdm:state_of_intentionally_constructed_object .
-hqdm:state_of_socially_constructed_object_member_of rdfs:domain hqdm:state_of_socially_constructed_object .
-hqdm:state_of_socially_constructed_object_member_of rdfs:range hqdm:class_of_state_of_socially_constructed_object .
-hqdm:state_of_socially_constructed_object_temporal_part_of rdfs:domain hqdm:state_of_socially_constructed_object .
-hqdm:state_of_socially_constructed_object_temporal_part_of rdfs:range hqdm:socially_constructed_object .
-hqdm:state_of_system rdf:type rdfs:Class .
-hqdm:state_of_system rdfs:subClassOf hqdm:state_of_ordinary_physical_object .
-hqdm:state_of_system_component rdf:type rdfs:Class .
-hqdm:state_of_system_component rdfs:subClassOf hqdm:state_of_physical_object .
-hqdm:state_of_system_component_member_of rdfs:domain hqdm:state_of_system_component .
-hqdm:state_of_system_component_member_of rdfs:range hqdm:class_of_state_of_system_component .
-hqdm:state_of_system_component_temporal_part_of rdfs:domain hqdm:state_of_system_component .
-hqdm:state_of_system_component_temporal_part_of rdfs:range hqdm:system_component .
-hqdm:state_of_system_member_of rdfs:domain hqdm:state_of_system .
-hqdm:state_of_system_member_of rdfs:range hqdm:class_of_state_of_system .
-hqdm:state_of_system_temporal_part_of rdfs:domain hqdm:state_of_system .
-hqdm:state_of_system_temporal_part_of rdfs:range hqdm:system .
-hqdm:state_temporal_part_of rdfs:domain hqdm:state .
-hqdm:state_temporal_part_of rdfs:range hqdm:individual .
-hqdm:system rdf:type rdfs:Class .
-hqdm:system rdfs:subClassOf hqdm:ordinary_physical_object .
-hqdm:system rdfs:subClassOf hqdm:state_of_system .
-hqdm:system_component rdf:type rdfs:Class .
-hqdm:system_component rdfs:subClassOf hqdm:physical_object .
-hqdm:system_component rdfs:subClassOf hqdm:state_of_system_component .
-hqdm:system_component_component_of rdfs:domain hqdm:system_component .
-hqdm:system_component_component_of rdfs:range hqdm:system .
-hqdm:system_component_member_of rdfs:domain hqdm:system_component .
-hqdm:system_component_member_of rdfs:range hqdm:class_of_system_component .
-hqdm:system_member_of rdfs:domain hqdm:system .
-hqdm:system_member_of rdfs:range hqdm:class_of_system .
-hqdm:system_member_of_kind rdfs:domain hqdm:system .
-hqdm:system_member_of_kind rdfs:range hqdm:kind_of_system .
-hqdm:temporal_composition rdfs:subClassOf hqdm:composition .
-hqdm:thing rdf:type rdfs:Class .
-hqdm:thing_member__of rdfs:domain hqdm:thing .
-hqdm:thing_member__of rdfs:range hqdm:class .
-hqdm:transfer_of_ownership rdf:type rdfs:Class .
-hqdm:transfer_of_ownership rdfs:subClassOf hqdm:socially_constructed_activity .
-hqdm:transfer_of_ownership_causes_beginning rdfs:domain hqdm:transfer_of_ownership .
-hqdm:transfer_of_ownership_causes_beginning rdfs:range hqdm:beginning_of_ownership .
-hqdm:transfer_of_ownership_causes_ending rdfs:domain hqdm:transfer_of_ownership .
-hqdm:transfer_of_ownership_causes_ending rdfs:range hqdm:ending_of_ownership .
-hqdm:transfer_of_ownership_consists_of_participant rdfs:domain hqdm:transfer_of_ownership .
-hqdm:transfer_of_ownership_consists_of_participant rdfs:range hqdm:participant_in .
-hqdm:transfer_of_ownership_of_money rdf:type rdfs:Class .
-hqdm:transfer_of_ownership_of_money rdfs:subClassOf hqdm:transfer_of_ownership .
-hqdm:transfer_of_ownership_of_money_part_of rdfs:domain hqdm:transfer_of_ownership_of_money .
-hqdm:transfer_of_ownership_of_money_part_of rdfs:range hqdm:exchange_of_goods_and_money .
-hqdm:transfer_of_ownership_of_money_references rdfs:domain hqdm:transfer_of_ownership_of_money .
-hqdm:transfer_of_ownership_of_money_references rdfs:range hqdm:money_asset .
-hqdm:transfer_of_ownership_references rdfs:domain hqdm:transfer_of_ownership .
-hqdm:transfer_of_ownership_references rdfs:range hqdm:asset .
-hqdm:transfer_of_ownership_transfer_of_ownership_part_of rdfs:domain hqdm:transfer_of_ownership .
-hqdm:transfer_of_ownership_transfer_of_ownership_part_of rdfs:range hqdm:exchange_of_goods_and_money .
-hqdm:transferee rdfs:subClassOf hqdm:participant .
-hqdm:transferee rdfs:subClassOf hqdm:state_of_party .
-hqdm:transferee_participant_in rdfs:domain hqdm:transferee .
-hqdm:transferee_participant_in rdfs:range hqdm:transfer_of_ownership .
-hqdm:transferor rdf:type rdfs:Class .
-hqdm:transferor rdfs:subClassOf hqdm:participant .
-hqdm:transferor rdfs:subClassOf hqdm:state_of_party .
-hqdm:transferor_participant_in rdfs:domain hqdm:transferor .
-hqdm:transferor_participant_in rdfs:range hqdm:transfer_of_ownership .
-hqdm:transferor_temporal_part_of rdfs:domain hqdm:transferor .
-hqdm:transferor_temporal_part_of rdfs:range hqdm:owner .
-hqdm:unit_of_measure rdf:type rdfs:Class .
-hqdm:unit_of_measure rdfs:subClassOf hqdm:function_ .
diff --git a/examples/src/test/resources/hqdm.ttl b/examples/src/test/resources/hqdm.ttl
new file mode 100644
index 00000000..9aad1a75
--- /dev/null
+++ b/examples/src/test/resources/hqdm.ttl
@@ -0,0 +1,1958 @@
+@prefix dcterms: .
+@prefix foaf: .
+@prefix hqdm: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix sdo: .
+@prefix skos: .
+@prefix vann: .
+@prefix xsd: .
+
+ a owl:Ontology ;
+ owl:versionIRI ;
+ dcterms:modified "2025-03-30"^^xsd:date ;
+ dcterms:creator "Dr Matthew West"@en ;
+ dcterms:contributor "jamrce, ClimbingAl, twalmsley, Fabalab, amrc-benmorrow"@en ;
+ rdfs:label "High-Quality Data Models (HQDM) Ontology"@en ;
+ owl:versionInfo "1.0.0"@en ;
+ rdfs:comment "The High-Quality Data Models (HQDM) Framework captured as a formal foundational ontology to ensure data consistency, interoperability, and quality across diverse domains."@en ;
+ vann:preferredNamespaceUri ;
+ vann:preferredNamespacePrefix "hqdm"@en ;
+ dcterms:license ;
+ dcterms:created "2010-12-30"^^xsd:date ;
+ skos:historyNote "The High Quality Data Models (HQDM) Framework is a 4-Dimensionalist top level ontology with extensional identity criteria that aims to support large scale data integration. As such it aims to ensure there is consistency among data created using the framework. It is based on work developing and using ISO 15926 and lessons learnt from BORO, which influenced ISO 19526."@en ;
+ sdo:codeRepository ;
+ sdo:dateModified "2025-03-30"^^xsd:date ;
+ sdo:license .
+
+#################################################################
+# Object Properties
+#################################################################
+
+#### Top Properties ####
+
+hqdm:universalRelationSet a rdf:Property ;
+ skos:prefLabel "universal relation set"@en ;
+ skos:definition "The Binary Relation Set that is super Binary Relation Set for all HQDM Relationship Types."@en ;
+ rdfs:domain hqdm:Thing ;
+ rdfs:range hqdm:Thing .
+
+hqdm:universalPartRelationSet a rdfs:Class ;
+ skos:prefLabel "universal part relation set"@en ;
+ skos:definition "The Binary Relation Set that is super Binary Relation Set for all HQDM Whole-Part Relationship Types."@en ;
+ rdfs:subClassOf rdf:Property .
+
+hqdm:aggregatedInto a rdf:Property ;
+ skos:prefLabel "aggregated into"@en ;
+ skos:definition "A relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) may be aggregated into one or more others."@en ;
+ hqdm:memberOf hqdm:universalPartRelationSet ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:SpatioTemporalExtent ;
+ rdfs:subPropertyOf hqdm:universalRelationSet ;
+ skos:scopeNote "Within the HQDM EXPRESS model, this has the same meaning to the `Aggregation` entity type that is now depreciated."@en .
+
+hqdm:partOf a rdf:Property ;
+ skos:prefLabel "part of"@en ;
+ skos:definition "An `aggregated into` relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) may be [part of](#partOf) another and the [whole](#whole) has emergent properties and is more than just the sum of its parts."@en ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:SpatioTemporalExtent ;
+ rdfs:subPropertyOf hqdm:aggregatedInto ;
+ skos:scopeNote "This is the inverse of [consists of](#consistsOf)."@en ;
+ skos:scopeNote "Within the HQDM EXPRESS model, this has the same meaning to the `Composition` entity type that is now depreciated."@en .
+
+hqdm:temporalPartOf a rdf:Property ;
+ skos:prefLabel "temporal part of"@en ;
+ skos:definition "A `part of` relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) may be a temporal part of one or more other [Spatio-Temporal Extent](#SpatioTemporalExtent)."@en ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:SpatioTemporalExtent ;
+ rdfs:subPropertyOf hqdm:partOf ;
+ skos:scopeNote "Within the HQDM EXPRESS model, this has the same meaning as `Temporal Composition` entity type that is now depreciated."@en ;
+ skos:scopeNote "When used between a state_of_X and X, this relationship is optional because an [Individual](#Individual) is not necessarily a `temporal part of` another [Individual](#Individual)"@en .
+
+hqdm:universalOrderRelationSet a rdfs:Class ;
+ skos:prefLabel "universal order relation set"@en ;
+ skos:definition "The Binary Relation Set that is super Binary Relation Set for all HQDM Relationship Types to do with Order (before-after, left-right, etc)."@en ; # part of the sequencing of elements
+ rdfs:subClassOf rdf:Property .
+
+hqdm:beginning a rdf:Property ;
+ skos:prefLabel "beginning"@en ;
+ skos:definition "A `part of` relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) has exactly one [Event](#Event) that is its beginning."@en ;
+ hqdm:memberOf hqdm:universalOrderRelationSet ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:Event ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:ending a rdf:Property ;
+ skos:prefLabel "ending"@en ;
+ skos:definition "A `part of` relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) has exactly one [Event](#Event) that is its ending."@en ;
+ hqdm:memberOf hqdm:universalOrderRelationSet ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:Event ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:hasSupertype a rdf:Property ;
+ skos:prefLabel "has supertype"@en ;
+ skos:definition "A Relationship where one [Thing](#Thing) is the more general category of [Thing](#Thing))."@en ;
+ rdfs:domain hqdm:Thing ;
+ rdfs:range hqdm:Thing ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:hasSuperclass a rdf:Property ;
+ skos:prefLabel "has superclass"@en ;
+ skos:definition "A Relationship where each [member of](#memberOf) the [Class](#Class) is a [member of](#memberOf) the superclass. [has superclass](#hasSuperclass) is a specialization of [has supertype](#hasSupertype)"@en ;
+ rdfs:domain hqdm:Class ;
+ rdfs:range hqdm:Class ;
+ rdfs:subPropertyOf hqdm:hasSupertype ;
+ rdfs:seeAlso rdfs:subClassOf .
+
+rdfs:subPropertyOf rdfs:subPropertyOf hqdm:hasSupertype .
+
+hqdm:universalSetRelationSet a rdfs:Class ;
+ skos:prefLabel "universal set relation set"@en ;
+ skos:definition "The Binary Relation Set that is super Binary Relation Set for all HQDM Set Relationship Types (Sets in HQDM are [Class](#Class) and all of its subclasses)."@en ;
+ rdfs:subClassOf rdf:Property .
+
+hqdm:memberOf a rdf:Property ;
+ skos:prefLabel "member of"@en ;
+ skos:definition "A relationship type where a [Thing](#Thing) may be a [member of](#memberOf) one or more [Class](#Class)."@en ;
+ hqdm:memberOf hqdm:universalSetRelationSet ;
+ rdfs:domain hqdm:Thing ;
+ rdfs:range hqdm:Class ;
+ rdfs:subPropertyOf hqdm:universalRelationSet ;
+ skos:scopeNote "This relationship is the same as the entity type [Classification](#Classification)."@en .
+
+hqdm:memberOfKind a rdf:Property ;
+ skos:prefLabel "member of kind"@en ;
+ skos:definition "A [member of](#memberOf) relationship type where an [Individual] may be a [member of](#memberOf) one or more [Kind Of Individual](#KindOfIndividual)."@en ;
+ rdfs:domain hqdm:Individual ;
+ rdfs:range hqdm:KindOfIndividual ;
+ rdfs:subPropertyOf hqdm:memberOf .
+
+hqdm:universalEmergentRelationSet a rdfs:Class ;
+ skos:prefLabel "universal emergent relation set"@en ;
+ skos:definition "The Binary Relation Set that is super Binary Relation Set for all HQDM Emergent Relationship Types. Emergent relationships are those that are not fundamental to material existence. An example is [represents](#represents)."@en ;
+ rdfs:subClassOf rdf:Property .
+
+#### Core Properties ####
+
+hqdm:causes a rdf:Property ;
+ skos:prefLabel "causes"@en ;
+ skos:definition "A relationship type where each [Activity](#Activity) is the cause of one or more [Event](#Event)."@en ;
+ hqdm:memberOf hqdm:universalOrderRelationSet ;
+ rdfs:domain hqdm:Activity ;
+ rdfs:range hqdm:Event ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:causesBeginning a rdf:Property ;
+ skos:prefLabel "causes beginning"@en ;
+ skos:definition "A causes relationship type where a [Transfer Of Ownership](#TransferOfOwnership) causes exactly one [Beginning Of Ownership](#BeginningOfOwnership)."@en ;
+ rdfs:domain hqdm:TransferOfOwnership ;
+ rdfs:range hqdm:BeginningOfOwnership ;
+ rdfs:subPropertyOf hqdm:causes .
+
+hqdm:causesByClass a rdf:Property ;
+ skos:prefLabel "causes by class"@en ;
+ skos:definition "A relationship type where a [member of](#memberOf) the [Kind Of Activity](#KindOfActivity) causes a [member of](#memberOf) the [Class Of Event](#ClassOfEvent)."@en ;
+ hqdm:memberOf hqdm:universalOrderRelationSet ;
+ rdfs:domain hqdm:KindOfActivity ;
+ rdfs:range hqdm:ClassOfEvent ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:causesEnding a rdf:Property ;
+ skos:prefLabel "causes ending"@en ;
+ skos:definition "A causes relationship type where a [Transfer Of Ownership](#TransferOfOwnership) causes exactly one [EndingOfOwnership](#EndingOfOwnership)."@en ;
+ rdfs:domain hqdm:TransferOfOwnership ;
+ rdfs:range hqdm:EndingOfOwnership ;
+ rdfs:subPropertyOf hqdm:causes .
+
+hqdm:consistsOf a rdf:Property ;
+ skos:prefLabel "consists of"@en ;
+ skos:definition "An `aggregated into` relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) includes a [part of](#partOf) another, with the [whole](#whole) having emergent properties that is more than just the sum of its parts."@en ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:SpatioTemporalExtent ;
+ rdfs:subPropertyOf hqdm:aggregatedInto ;
+ skos:scopeNote "This is the inverse of [part of](#partOf)."@en .
+
+hqdm:classOfOffered a rdf:Property ;
+ skos:prefLabel "class of offered"@en ;
+ skos:definition "A relationship type where an [Offering](#Offering) has exactly one [ClassOfIndividual](#ClassOfIndividual) some `member of` which is offered."@en ;
+ rdfs:domain hqdm:Offering ;
+ rdfs:range hqdm:ClassOfIndividual ;
+ rdfs:subPropertyOf hqdm:referencesByClass .
+
+hqdm:componentByClass a rdf:Property ;
+ skos:prefLabel "component by class"@en ;
+ skos:definition "A [consists of by class](#consistsOfByClass) relationship type where each [member of](#memberOf) a [Kind Of System](#KindOfSystem) has a [member of](#memberOf) one or more [Kind Of System Component](#KindOfSystemComponent) as a component."@en ;
+ rdfs:domain hqdm:KindOfOrganization ;
+ rdfs:range hqdm:KindOfOrganizationComponent ;
+ rdfs:subPropertyOf hqdm:hasComponentByClass .
+
+hqdm:componentOf a rdf:Property ;
+ skos:prefLabel "component of"@en ;
+ skos:definition "A [part of](#partOf) relationship type where each [System Component](#SystemComponent) is [part of](#partOf) exactly one [System](#System)."@en ;
+ rdfs:domain hqdm:SystemComponent ;
+ rdfs:range hqdm:System ;
+ rdfs:subPropertyOf hqdm:partOf .
+
+hqdm:considerationByClass a rdf:Property ;
+ skos:prefLabel "consideration by class"@en ;
+ skos:definition "A relationship type where an [Offering](#Offering) has exactly one [Price](#Price) at which the [Offering](#Offering) is made."@en ;
+ rdfs:domain hqdm:Offering ;
+ rdfs:range hqdm:Price ;
+ rdfs:subPropertyOf hqdm:referencesByClass .
+
+hqdm:consistsOfInMembers a rdf:Property ;
+ skos:prefLabel "consists of in members"@en ;
+ skos:definition "A relationship type where a [Recognizing Language Community](#RecognizingLanguageCommunity) is a [participant in](#participantIn) each [member of](#memberOf) one or more [Representation By Pattern](#RepresentationByPattern)."@en ;
+ rdfs:domain hqdm:RepresentationByPattern ;
+ rdfs:range hqdm:RecognizingLanguageCommunity ;
+ rdfs:subPropertyOf hqdm:referencesByClass .
+
+hqdm:consistsOfParticipant a rdf:Property ;
+ skos:prefLabel "consists of participant"@en ;
+ skos:definition "A `consists of` relationship type where each association consists of two or more participants."@en ;
+ rdfs:domain hqdm:Activity,
+ hqdm:Association ;
+ rdfs:range hqdm:Participant ;
+ rdfs:subPropertyOf hqdm:consistsOf .
+
+hqdm:definedBy a rdf:Property ;
+ skos:prefLabel "defined by"@en ;
+ skos:definition "A [member of](#memberOf) relationship type where a [Requirement](#Requirement) is definedBy exactly one [Requirement Specification](#RequirementSpecification)."@en ;
+ rdfs:domain hqdm:Requirement ;
+ rdfs:range hqdm:RequirementSpecification ;
+ rdfs:subPropertyOf hqdm:memberOf .
+
+hqdm:determines a rdf:Property ;
+ skos:prefLabel "determines"@en ;
+ skos:definition "A relationship type where an [Activity](#Activity) may determine one or more [Thing](#Thing) to be the case."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:Activity ;
+ rdfs:range hqdm:Thing ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:determinesByClass a rdf:Property ;
+ skos:prefLabel "determines by class"@en ;
+ skos:definition "A relationship type where a [member of](#memberOf) the [Kind Of Activity](#KindOfActivity) determines a [member of](#memberOf) the [Class](#Class)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:KindOfActivity ;
+ rdfs:range hqdm:Class ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:domain a rdf:Property ;
+ skos:prefLabel "domain"@en ;
+ skos:definition "A [Scale](#Scale) has exactly one [Kind Of Physical Quantity](#KindOfPhysicalQuantity) as its domain."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:Scale ;
+ rdfs:range hqdm:KindOfPhysicalQuantity ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:hasComponentByClass a rdf:Property ;
+ skos:prefLabel "has component by class"@en ;
+ skos:definition "A [consists of by class](#consistsOfByClass) relationship type where each [member of](#memberOf) a [Kind Of System](#KindOfSystem) has a [member of](#memberOf) one or more [Kind Of System Component](#KindOfSystemComponent) as a component."@en ;
+ rdfs:domain hqdm:KindOfSystem ;
+ rdfs:range hqdm:KindOfSystemComponent ;
+ rdfs:subPropertyOf hqdm:consistsOfByClass .
+
+hqdm:intendedRole a rdf:Property ;
+ skos:prefLabel "intended role"@en ;
+ skos:definition "A relationship type where a [FunctionalObject](#FunctionalObject) has one or more intended [Role](#Role)(s)."@en ;
+ rdfs:domain hqdm:FunctionalObject ;
+ rdfs:range hqdm:Role ;
+ rdfs:subPropertyOf hqdm:memberOfKind .
+
+hqdm:intendedRoleByClass a rdf:Property ;
+ skos:prefLabel "intended role by class"@en ;
+ skos:definition "A relationship type where each [member of](#memberOf) a [Kind Of Functional Object](#KindOfFunctionalObject) is intended to play one or more [Role](#Role)(s)."@en ;
+ hqdm:memberOf hqdm:universalSetRelationSet ;
+ rdfs:domain hqdm:KindOfFunctionalObject ;
+ rdfs:range hqdm:Role ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:intersectionOf a rdf:Property ;
+ skos:prefLabel "intersection of"@en ;
+ skos:definition "A [has superclass](#hasSuperclass) relationship type where each [Requirement Specification](#RequirementSpecification) is the `intersection of` one or more [Class Of State](#ClassOfState)."@en ;
+ rdfs:domain hqdm:RequirementSpecification ;
+ rdfs:range hqdm:ClassOfState ;
+ rdfs:subPropertyOf hqdm:hasSuperclass ;
+ skos:scopeNote "The [Requirement Specification](#RequirementSpecification) is a subtype of each of the related [Class Of State](#ClassOfState)."@en .
+
+hqdm:lowerBound a rdf:Property ;
+ skos:prefLabel "lower bound"@en ;
+ skos:definition "A `supertype of` relationship type where each [PhysicalQuantityRange](#PhysicalQuantityRange) must have as Lower Bound exactly one [PhysicalQuantity](#PhysicalQuantity)."@en ;
+ rdfs:domain hqdm:PhysicalQuantity ;
+ rdfs:range hqdm:PhysicalQuantityRange ;
+ rdfs:subPropertyOf hqdm:rangesOver .
+
+hqdm:meetsSpecification a rdf:Property ;
+ skos:prefLabel "meets specification"@en ;
+ skos:definition "A `subclass of` relationship type where when a [Sales Product](#SalesProduct) `meets specification` of a [Requirement Specification](#RequirementSpecification), each [member of](#memberOf) a [Sales Product](#salesProduct) is a [member of](#memberOf) the [Requirement Specification](#RequirementSpecification)."@en ;
+ rdfs:domain hqdm:SalesProduct ;
+ rdfs:range hqdm:RequirementSpecification ;
+ rdfs:subPropertyOf hqdm:hasSuperclass .
+
+hqdm:memberOfCurrency a rdf:Property ;
+ skos:prefLabel "member of currency"@en ;
+ skos:definition "A [member of](#memberOf) relationship type where an [Amount Of Money](#AmountOfMoney) may be a [member of](#memberOf) exactly one [Currency](#Currency)."@en ;
+ rdfs:domain hqdm:AmountOfMoney ;
+ rdfs:range hqdm:Currency ;
+ rdfs:subPropertyOf hqdm:memberOf .
+
+hqdm:naturalRole a rdf:Property ;
+ skos:prefLabel "natural role"@en ;
+ skos:definition "A [member of](#memberOf) relationship type where a [BiologicalSystem](#BiologicalSystem) has a natural role that it plays."@en ;
+ rdfs:domain hqdm:BiologicalSystem ;
+ rdfs:range hqdm:Role ;
+ rdfs:subPropertyOf hqdm:memberOfKind ;
+ skos:example "My circulatory system has the natural role of circulating blood around the body."@en .
+
+hqdm:naturalRoleByClass a rdf:Property ;
+ skos:prefLabel "natural role by class"@en ;
+ skos:definition "A relationship type where each [member of](#memberOf) the [KindOfBiologicalSystem](#KindOfBiologicalSystem) naturally participates in the [Role](#Role)."@en ;
+ hqdm:memberOf hqdm:universalSetRelationSet ;
+ rdfs:domain hqdm:KindOfBiologicalSystem ;
+ rdfs:range hqdm:Role ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:offeror a rdf:Property ;
+ skos:prefLabel "offeror"@en ;
+ skos:definition "A relationship type where an [Offering](#Offering) has exactly one [Party](#Party) who makes the [Offering](#Offering)."@en ;
+ rdfs:domain hqdm:Offering ;
+ rdfs:range hqdm:Party ;
+ rdfs:subPropertyOf hqdm:referencesByClass .
+
+hqdm:partOfByClass a rdf:Property ;
+ skos:prefLabel "part of by class"@en ;
+ skos:definition "A relationship type where a [member of](#memberOf) a [Class Of Spatio-Temporal Extent](#ClassOfSpatioTemporalExtent) is [part of](#partOf) a [member of](#memberOf) some [Class Of Spatio-Temporal Extent](#ClassOfSpatioTemporalExtent)."@en ;
+ hqdm:memberOf hqdm:universalPartRelationSet ;
+ rdfs:domain hqdm:ClassOfSpatioTemporalExtent ;
+ rdfs:range hqdm:ClassOfSpatioTemporalExtent ;
+ rdfs:subPropertyOf hqdm:universalRelationSet ;
+ skos:scopeNote "Typical examples further down the structure are between [Kind Of Individual](#KindOfIndividual) and an expected [Role](#Role)."@en .
+
+hqdm:partOfPlan a rdf:Property ;
+ skos:prefLabel "part of plan"@en ;
+ skos:definition "A [part of](#partOf) relationship type where a [Requirement](#Requirement) must be [part of](#partOf) one or more [Plan](#Plan)."@en ;
+ rdfs:domain hqdm:Requirement ;
+ rdfs:range hqdm:Plan ;
+ rdfs:subPropertyOf hqdm:partOfPossibleWorld .
+
+hqdm:partOfPossibleWorld a rdf:Property ;
+ skos:prefLabel "part of possible world"@en ;
+ skos:definition "A [aggregated into](#aggregatedInto) relationship type where a [Spatio-Temporal Extent](#SpatioTemporalExtent) may be part of one or more [Possible World](#PossibleWorld)."@en ;
+ rdfs:domain hqdm:SpatioTemporalExtent ;
+ rdfs:range hqdm:PossibleWorld ;
+ rdfs:subPropertyOf hqdm:aggregatedInto ;
+ skos:scopeNote "The relationship is optional because a [Possible World](#PossibleWorld) is not part of any other [Spatio-Temporal Extent](#SpatioTemporalExtent)."@en .
+
+hqdm:participantIn a rdf:Property ;
+ skos:prefLabel "participant in"@en ;
+ skos:definition "A relationship type where a [State](#State) is participating in an [Activity](#Activity) or [Association](#Association)."@en ;
+ rdfs:domain hqdm:Participant ;
+ rdfs:range hqdm:Activity,
+ hqdm:Association ;
+ rdfs:subPropertyOf hqdm:partOf .
+
+hqdm:periodOffered a rdf:Property ;
+ skos:prefLabel "period offered"@en ;
+ skos:definition "A relationship that is exactly one [Period Of Time](#PeriodOfTime) for which the [Offering](#Offering) is valid."@en ;
+ rdfs:domain hqdm:Offering ;
+ rdfs:range hqdm:PeriodOfTime ;
+ rdfs:subPropertyOf hqdm:referencesByClass .
+
+hqdm:rangesOver a rdf:Property ;
+ skos:prefLabel "ranges over"@en ;
+ skos:definition "A supertype_of relationship type where the members of each [Physical Property](#PhysicalProperty) in the [Physical Property Range](#PhysicalPropertyRange) are members of the [Physical Property Range](#PhysicalPropertyRange)."@en ;
+ rdfs:domain hqdm:PhysicalProperty ;
+ rdfs:range hqdm:PhysicalPropertyRange ;
+ rdfs:subPropertyOf hqdm:hasSuperclass .
+
+hqdm:references a rdf:Property ;
+ skos:prefLabel "references"@en ;
+ skos:definition "A relationship type where an [Activity](#Activity) may reference one or more [Thing](#Thing)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:Activity ;
+ rdfs:range hqdm:Thing ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:referencesByClass a rdf:Property ;
+ skos:prefLabel "references by class"@en ;
+ skos:definition "A relationship type where a [member of](#memberOf) the [Kind Of Activity](#KindOfActivity) references a [member of](#memberOf) the [Class](#Class)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:KindOfActivity ;
+ rdfs:range hqdm:Class ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:represented a rdf:Property ;
+ skos:prefLabel "represented"@en ;
+ skos:definition "A relationship type where the [Thing](#Thing) is represented by each [member of](#memberOf) the [Representation By Pattern](#RepresentationByPattern)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:RepresentationByPattern ;
+ rdfs:range hqdm:Thing ;
+ rdfs:subPropertyOf hqdm:universalRelationSet ;
+ skos:scopeNote "When used with [IdentificationOfPhysicalQuantity](#IdentificationOfPhysicalQuantity), represents by class means that each [member of](#memberOf) an [IdentificationOfPhysicalQuantity](#IdentificationOfPhysicalQuantity) represents the [Physical Quantity](#PhysicalQuantity). For example any writing down of 20C represents that particular degree of hotness."@en .
+
+hqdm:represents a rdf:Property ;
+ skos:prefLabel "represents"@en ;
+ skos:definition "A relationship type where a [Representation By Sign](#RepresentationBySign) represents one or more [Thing](#Thing)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:RepresentationBySign ;
+ rdfs:range hqdm:Thing ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:soldAs a rdf:Property ;
+ skos:prefLabel "sold as"@en ;
+ skos:definition "A [has superclass](#hasSuperclass) where the [Sales Product Version](#SalesProductVersion) may be sold as a [Sales Product](#SalesProduct)."@en ;
+ rdfs:domain hqdm:SalesProductVersion ;
+ rdfs:range hqdm:SalesProduct ;
+ rdfs:subPropertyOf hqdm:hasSuperclass .
+
+hqdm:soldUnder a rdf:Property ;
+ skos:prefLabel "sold under"@en ;
+ skos:definition "A [has superclass](#hasSuperclass) where the [Sales Product](#SalesProduct) is sold under a [Product Brand](#ProductBrand)."@en ;
+ rdfs:domain hqdm:SalesProduct ;
+ rdfs:range hqdm:ProductBrand ;
+ rdfs:subPropertyOf hqdm:hasSuperclass .
+
+hqdm:successor a rdf:Property ;
+ skos:prefLabel "successor"@en ;
+ skos:definition "A relationship type where a [Sales Product Version](#SalesProductVersion) may have exactly one successor."@en ;
+ hqdm:memberOf hqdm:universalOrderRelationSet ;
+ rdfs:domain hqdm:SalesProductVersion ;
+ rdfs:range hqdm:SalesProductVersion ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:unit a rdf:Property ;
+ skos:prefLabel "unit"@en ;
+ skos:definition "A [Scale](#Scale) may have at most one [UnitOfMeasure](#UnitOfMeasure)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:Scale ;
+ rdfs:range hqdm:UnitOfMeasure ;
+ rdfs:subPropertyOf hqdm:universalRelationSet ;
+ skos:scopeNote "A [Scale](#Scale) may not have a [Unit Of Measure](#UnitOfMeasure). To have a [Unit Of Measure](#UnitOfMeasure) the points on the [Scale](#Scale) must be evenly placed so that adding one means the same thing. This is not true for some scales such as Rockwell Hardness where the points on the scale are an arbitrary distance apart. A [Scale](#Scale) will also not have a [Unit Of Measure](#UnitOfMeasure) when it is a dimensionless scale."@en,
+ "A [Unit Of Measure](#UnitOfMeasure) may apply to more than one [Scale](#Scale)."@en .
+
+hqdm:upperBound a rdf:Property ;
+ skos:prefLabel "upper bound"@en ;
+ skos:definition "A `supertype of` relationship type where each [PhysicalQuantityRange](#PhysicalQuantityRange) must have as UpperBound exactly one [PhysicalQuantity](#PhysicalQuantity)."@en ;
+ rdfs:domain hqdm:PhysicalQuantity ;
+ rdfs:range hqdm:PhysicalQuantityRange ;
+ rdfs:subPropertyOf hqdm:rangesOver .
+
+hqdm:uses a rdf:Property ;
+ skos:prefLabel "uses"@en ;
+ skos:definition "A relationship type where an [IdentificationOfPhysicalQuantity](#IdentificationOfPhysicalQuantity) uses exactly one [Scale](#Scale)."@en ;
+ hqdm:memberOf hqdm:universalEmergentRelationSet ;
+ rdfs:domain hqdm:IdentificationOfPhysicalQuantity ;
+ rdfs:range hqdm:Scale ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+hqdm:value a rdf:Property ;
+ skos:prefLabel "value"@en ;
+ skos:definition "A relationship type where an [IdentificationOfPhysicalQuantity](#IdentificationOfPhysicalQuantity) consists of exactly one decimal as its value."@en ;
+ rdfs:domain hqdm:IdentificationOfPhysicalQuantity ;
+ rdfs:range xsd:decimal ;
+ rdfs:subPropertyOf hqdm:consistsOfByClass ;
+ skos:scopeNote "The members of this data type `xsd:decimal` is an identification of a value from the real world, not just a particular double when implemented as a data model. E.g. The Planck constant to 300 significant figures can't be captured by just a double."@en .
+
+hqdm:consistsOfByClass a rdf:Property ;
+ skos:prefLabel "consists of by class"@en ;
+ skos:definition "An inverse [part of by class](#partOfByClass) relationship type where a [member of](#memberOf) one [Class Of Spatio-Temporal Extent](#ClassOfSpatioTemporalExtent) [consists of](#consistsOf) another [member of](#memberOf) a [Class Of Spatio-Temporal Extent](#ClassOfSpatioTemporalExtent)."@en ;
+ hqdm:memberOf hqdm:universalPartRelationSet ;
+ rdfs:domain hqdm:ClassOfSpatioTemporalExtent ;
+ rdfs:range hqdm:ClassOfSpatioTemporalExtent ;
+ rdfs:subPropertyOf hqdm:universalRelationSet .
+
+#################################################################
+# Classes
+#################################################################
+
+hqdm:AbstractObject a rdfs:Class ;
+ skos:prefLabel "Abstract Object"@en ;
+ skos:definition "A [Thing](#Thing) that does not exist in space or time."@en ;
+ rdfs:subClassOf hqdm:Thing ;
+ foaf:image .
+
+hqdm:AcceptanceOfOffer a rdfs:Class ;
+ skos:prefLabel "Acceptance of Offer"@en ;
+ skos:definition "A [SociallyConstructedActivity](#SociallyConstructedActivity) that is the acceptance of an offer as `part of` an [AgreeContract](#AgreeContract)."@en ;
+ rdfs:subClassOf hqdm:SociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:AcceptanceOfOfferForGoods a rdfs:Class ;
+ skos:prefLabel "Acceptance of Offer for Goods"@en ;
+ skos:definition "A [ReachingAgreement](#ReachingAgreement) that consists of an [Offer](#Offer) of something in exchange for some consideration, and an [AcceptanceOfOffer](#AcceptanceOfOffer)."@en ;
+ rdfs:subClassOf hqdm:AcceptanceOfOffer ;
+ foaf:image .
+
+hqdm:Activity a rdfs:Class ;
+ skos:prefLabel "Activity"@en ;
+ skos:definition "An [Individual](#Individual) that consists of its participants and causes some [Event](#Event)."@en ;
+ rdfs:subClassOf hqdm:Individual,
+ hqdm:StateOfActivity ;
+ foaf:image .
+
+hqdm:AgreeContract a rdfs:Class ;
+ skos:prefLabel "Agree Contract"@en ;
+ skos:definition "A [ReachingAgreement](#ReachingAgreement) that consists of an [Offer](#Offer) of something in exchange for some consideration, and an [AcceptanceOfOffer](#AcceptanceOfOffer)."@en ;
+ rdfs:subClassOf hqdm:ReachingAgreement ;
+ foaf:image .
+
+hqdm:AgreementExecution a rdfs:Class ;
+ skos:prefLabel "Agreement Execution"@en ;
+ skos:definition "A [SociallyConstructedActivity](#SociallyConstructedActivity) where two or more parties carry out a course of action previously agreed upon."@en ;
+ rdfs:subClassOf hqdm:SociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:AgreementProcess a rdfs:Class ;
+ skos:prefLabel "Agreement Process"@en ;
+ skos:definition "A [SociallyConstructedActivity](#SociallyConstructedActivity) that consists of a [ReachingAgreement](#ReachingAgreement) and an [AgreementExecution](#AgreementExecution), where the [AgreementExecution](#AgreementExecution) is the course of action agreed to in the [ReachingAgreement](#ReachingAgreement)."@en ;
+ rdfs:subClassOf hqdm:SociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:AmountOfMoney a rdfs:Class ;
+ skos:prefLabel "Amount of Money"@en ;
+ skos:definition "A [StateOfAmountOfMoney](#StateOfAmountOfMoney), that is also a [SociallyConstructedObject](#SociallyConstructedObject), and a [PhysicalObject](#PhysicalObject) that is intended and accepted for use as a means of exchange."@en ;
+ rdfs:subClassOf hqdm:PhysicalObject,
+ hqdm:SociallyConstructedObject,
+ hqdm:StateOfAmountOfMoney ;
+ foaf:image .
+
+hqdm:Asset a rdfs:Class ;
+ skos:prefLabel "Asset"@en ;
+ skos:definition "A [StateOfPhysicalObject](#StateOfPhysicalObject) that is also a [Participant](#Participant) that is the [participant in](#participantIn) an [Ownership](#Ownership) that is owned."@en ;
+ rdfs:subClassOf hqdm:Participant ;
+ foaf:image .
+
+hqdm:Association a rdfs:Class ;
+ skos:prefLabel "Association"@en ;
+ skos:definition "An [Individual](#Individual) that [consists of](#consistsOf) the participants that are associated, and where the participants are `part of` the same [PeriodOfTime](#PeriodOfTime)."@en ;
+ rdfs:subClassOf hqdm:Individual,
+ hqdm:StateOfAssociation ;
+ foaf:image .
+
+hqdm:BeginningOfOwnership a rdfs:Class ;
+ skos:prefLabel "Beginning of Ownership"@en ;
+ skos:definition "An [Event](#Event) that is the beginning of an ownership association."@en ;
+ rdfs:subClassOf hqdm:Event ;
+ foaf:image .
+
+hqdm:BiologicalObject a rdfs:Class ;
+ skos:prefLabel "Biological Object"@en ;
+ skos:definition "A [StateOfBiologicalObject](#StateOfBiologicalObject) that is also a [PhysicalObject](#PhysicalObject) that sustains itself and reproduces."@en ;
+ rdfs:subClassOf hqdm:PhysicalObject,
+ hqdm:StateOfBiologicalObject ;
+ foaf:image .
+
+hqdm:BiologicalSystem a rdfs:Class ;
+ skos:prefLabel "Biological System"@en ;
+ skos:definition "Any system that is also an [OrdinaryBiologicalObject](#OrdinaryBiologicalObject) and a [StateOfBiologicalSystem](#StateOfBiologicalSystem)."@en ;
+ rdfs:subClassOf hqdm:OrdinaryBiologicalObject,
+ hqdm:StateOfBiologicalSystem,
+ hqdm:System ;
+ foaf:image .
+
+hqdm:BiologicalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Biological System Component"@en ;
+ skos:definition "A [BiologicalObject](#BiologicalObject), [StateOfBiologicalSystemComponent](#StateOfBiologicalSystemComponent) and [SystemComponent](#SystemComponent) that is any [BiologicalObject](#BiologicalObject) that is also a [SystemComponent](#SystemComponent)."@en ;
+ rdfs:subClassOf hqdm:BiologicalObject,
+ hqdm:StateOfBiologicalSystemComponent,
+ hqdm:SystemComponent ;
+ foaf:image .
+
+hqdm:Class a rdfs:Class ;
+ skos:prefLabel "Class"@en ;
+ skos:definition "An [AbstractObject](#AbstractObject) that has members and whose identity is defined by its membership."@en ;
+ rdfs:subClassOf hqdm:AbstractObject,
+ rdfs:Class ;
+ foaf:image .
+
+hqdm:ClassOfAbstractObject a rdfs:Class ;
+ skos:prefLabel "Class of Abstract Object"@en ;
+ skos:definition "A [Class](#Class) that is [AbstractObject](#AbstractObject) or any its subsets."@en ;
+ rdfs:subClassOf hqdm:Class ;
+ foaf:image .
+
+hqdm:ClassOfActivity a rdfs:Class ;
+ skos:prefLabel "Class of Activity"@en ;
+ skos:definition "A [ClassOfIndividual](#ClassOfIndividual) and a [ClassOfStateOfActivity](#ClassOfStateOfActivity) that is [Activity](#Activity) or any of its possible subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIndividual,
+ hqdm:ClassOfStateOfActivity ;
+ foaf:image .
+
+hqdm:ClassOfAgreeContract a rdfs:Class ;
+ skos:prefLabel "Class of Agree Contract"@en ;
+ skos:definition "A [ClassOfReachingAgreement](#ClassOfReachingAgreement) that is [AgreeContract](#AgreeContract) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfReachingAgreement ;
+ foaf:image .
+
+hqdm:ClassOfAgreementExecution a rdfs:Class ;
+ skos:prefLabel "Class of Agreement Execution"@en ;
+ skos:definition "A [ClassOfSociallyConstructedActivity](#ClassOfSociallyConstructedActivity) that is [AgreementExecution](#AgreementExecution) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:ClassOfAgreementProcess a rdfs:Class ;
+ skos:prefLabel "Class of Agreement Process"@en ;
+ skos:definition "A [ClassOfSociallyConstructedActivity](#ClassOfSociallyConstructedActivity) that is [AgreementProcess](#AgreementProcess) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:ClassOfAmountOfMoney a rdfs:Class ;
+ skos:prefLabel "Class of Amount of Money"@en ;
+ skos:definition "A [ClassOfStateOfAmountOfMoney](#ClassOfStateOfAmountOfMoney), that is also a [ClassOfSociallyConstructedObject](#ClassOfSociallyConstructedObject), and a [ClassOfPhysicalObject](#ClassOfPhysicalObject) that is [AmountOfMoney](#AmountOfMoney) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfPhysicalObject,
+ hqdm:ClassOfSociallyConstructedObject,
+ hqdm:ClassOfStateOfAmountOfMoney ;
+ foaf:image .
+
+hqdm:ClassOfAssociation a rdfs:Class ;
+ skos:prefLabel "Class of Association"@en ;
+ skos:definition "A [ClassOfStateOfAssociation](#ClassOfStateOfAssociation) that is also a [ClassOfIndividual](#ClassOfIndividual) that is [Association](#Association) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIndividual,
+ hqdm:ClassOfStateOfAssociation ;
+ foaf:image .
+
+hqdm:ClassOfBiologicalObject a rdfs:Class ;
+ skos:prefLabel "Class of Biological Object"@en ;
+ skos:definition "A [ClassOfStateOfBiologicalObject](#ClassOfStateOfBiologicalObject) and [ClassOfPhysicalObject](#ClassOfPhysicalObject) that is [BiologicalObject](#BiologicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfPhysicalObject,
+ hqdm:ClassOfStateOfBiologicalObject ;
+ foaf:image .
+
+hqdm:ClassOfBiologicalSystem a rdfs:Class ;
+ skos:prefLabel "Class of Biological System"@en ;
+ skos:definition "A [ClassOfStateOfBiologicalSystem](#ClassOfStateOfBiologicalSystem), [ClassOfOrdinaryBiologicalObject](#ClassOfOrdinaryBiologicalObject), and [ClassOfSystem](#ClassOfSystem) that is [BiologicalSystem](#BiologicalSystem) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfOrdinaryBiologicalObject,
+ hqdm:ClassOfStateOfBiologicalSystem,
+ hqdm:ClassOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfBiologicalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of Biological System Component"@en ;
+ skos:definition "A [ClassOfBiologicalObject](#ClassOfBiologicalObject), [ClassOfStateOfBiologicalSystemComponent](#ClassOfStateOfBiologicalSystemComponent), and [ClassOfSystemComponent](#ClassOfSystemComponent) that is [BiologicalSystemComponent](#BiologicalSystemComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfBiologicalObject,
+ hqdm:ClassOfStateOfBiologicalSystemComponent,
+ hqdm:ClassOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfClass a rdfs:Class ;
+ skos:prefLabel "Class of Class"@en ;
+ skos:definition "A [Class](#Class) that is [Class](#Class) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfAbstractObject ;
+ skos:scopeNote "More formally this means that any [member of](#memberOf) the powerset of [Class](#Class) is a valid [member of](#memberOf) `Class Of Class`."@en ;
+ foaf:image .
+
+hqdm:ClassOfClassOfSpatioTemporalExtent a rdfs:Class ;
+ skos:prefLabel "Class of Class of Spatio-Temporal Extent"@en ;
+ skos:definition "A [ClassOfClass](#ClassOfClass) that is [ClassOfSpatioTemporalExtent](#ClassOfSpatioTemporalExtent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfClass ;
+ foaf:image .
+
+hqdm:ClassOfContractExecution a rdfs:Class ;
+ skos:prefLabel "Class of Contract Execution"@en ;
+ skos:definition "A [ClassOfAgreementExecution](#ClassOfAgreementExecution) that is [ContractExecution](#ContractExecution) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfAgreementExecution ;
+ foaf:image .
+
+hqdm:ClassOfContractProcess a rdfs:Class ;
+ skos:prefLabel "Class of Contract Process"@en ;
+ skos:definition "A [ClassOfAgreementProcess](#ClassOfAgreementProcess) that is [ContractProcess](#ContractProcess) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfAgreementProcess ;
+ foaf:image .
+
+hqdm:ClassOfEvent a rdfs:Class ;
+ skos:prefLabel "Class of Event"@en ;
+ skos:definition "A [ClassOfSpatioTemporalExtent](#ClassOfSpatioTemporalExtent) that is [Event](#Event) or any of its possible subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSpatioTemporalExtent ;
+ foaf:image .
+
+hqdm:ClassOfFunctionalObject a rdfs:Class ;
+ skos:prefLabel "Class of Functional Object"@en ;
+ skos:definition "A [ClassOfPhysicalObject](#ClassOfPhysicalObject), [ClassOfIntentionallyConstructedObject](#ClassOfIntentionallyConstructedObject), and [ClassOfStateOfFunctionalObject](#ClassOfStateOfFunctionalObject) that is [FunctionalObject](#FunctionalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIntentionallyConstructedObject,
+ hqdm:ClassOfPhysicalObject,
+ hqdm:ClassOfStateOfFunctionalObject ;
+ foaf:image .
+
+hqdm:ClassOfFunctionalSystem a rdfs:Class ;
+ skos:prefLabel "Class of Functional System"@en ;
+ skos:definition "A [ClassOfStateOfFunctionalSystem](#ClassOfStateOfFunctionalSystem), that is also a [ClassOfOrdinaryFunctionalObject](#ClassOfOrdinaryFunctionalObject), and a [ClassOfSystem](#ClassOfSystem) that is [FunctionalSystem](#FunctionalSystem) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfOrdinaryFunctionalObject,
+ hqdm:ClassOfStateOfFunctionalSystem,
+ hqdm:ClassOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfFunctionalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of Functional System Component"@en ;
+ skos:definition "A [ClassOfStateOfFunctionalSystemComponent](#ClassOfStateOfFunctionalSystemComponent), and [ClassOfSystemComponent](#ClassOfSystemComponent) that is [FunctionalSystemComponent](#FunctionalSystemComponent) and any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfFunctionalSystemComponent,
+ hqdm:ClassOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfInPlaceBiologicalComponent a rdfs:Class ;
+ skos:prefLabel "Class of In-Place Biological Component"@en ;
+ skos:definition "A [ClassOfStateOfBiologicalSystemComponent](#ClassOfStateOfBiologicalSystemComponent), that is also a [ClassOfStateOfOrdinaryBiologicalObject](#ClassOfStateOfOrdinaryBiologicalObject), and a [ClassOfInstalledObject](#ClassOfInstalledObject) that is [InPlaceBiologicalComponent](#InPlaceBiologicalComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfInstalledObject,
+ hqdm:ClassOfStateOfBiologicalSystemComponent,
+ hqdm:ClassOfStateOfOrdinaryBiologicalObject ;
+ foaf:image .
+
+hqdm:ClassOfIndividual a rdfs:Class ;
+ skos:prefLabel "Class of Individual"@en ;
+ skos:definition "A [ClassOfState](#ClassOfState) that is [Individual](#Individual) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfState ;
+ skos:scopeNote "Only classes that necessarily apply to an [Individual](#Individual) for the whole of its life are valid members. Others are members of [Class Of State](#ClassOfState) and apply to the [State](#State) that is the [Individual](#Individual) for the [Period Of Time](#PeriodOfTime) that the class applies for."@en ;
+ foaf:image .
+
+hqdm:ClassOfInstalledFunctionalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of Installed Functional System Component"@en ;
+ skos:definition "A [ClassOfStateOfFunctionalSystemComponent](#ClassOfStateOfFunctionalSystemComponent) that is also a [ClassOfInstalledObject](#ClassOfInstalledObject) that is [InstalledFunctionalSystemComponent](#InstalledFunctionalSystemComponent) and any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfInstalledObject,
+ hqdm:ClassOfStateOfFunctionalSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfInstalledObject a rdfs:Class ;
+ skos:prefLabel "Class of Installed Object"@en ;
+ skos:definition "A [ClassOfStateOfSystemComponent](#ClassOfStateOfSystemComponent) that is also a [ClassOfStateOfOrdinaryPhysicalObject](#ClassOfStateOfOrdinaryPhysicalObject) that is [InstalledObject](#InstalledObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrdinaryPhysicalObject,
+ hqdm:ClassOfStateOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfIntentionallyConstructedObject a rdfs:Class ;
+ skos:prefLabel "Class of Intentionally Constructed Object"@en ;
+ skos:definition "A [ClassOfIndividual](#ClassOfIndividual) that is also a [ClassOfStateOfIntentionallyConstructedObject](#ClassOfStateOfIntentionallyConstructedObject) that is [IntentionallyConstructedObject](#IntentionallyConstructedObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIndividual,
+ hqdm:ClassOfStateOfIntentionallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfOffer a rdfs:Class ;
+ skos:prefLabel "Class of Offer"@en ;
+ skos:definition "A [ClassOfSociallyConstructedActivity](#ClassOfSociallyConstructedActivity) that is [Offer](#Offer) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:ClassOfOrdinaryBiologicalObject a rdfs:Class ;
+ skos:prefLabel "Class of Ordinary Biological Object"@en ;
+ skos:definition "A [ClassOfBiologicalObject](#ClassOfBiologicalObject), [ClassOfOrdinaryPhysicalObject](#ClassOfOrdinaryPhysicalObject) and [ClassOfStateOfOrdinaryBiologicalObject](#ClassOfStateOfOrdinaryBiologicalObject) that is [OrdinaryBiologicalObject](#OrdinaryBiologicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfBiologicalObject,
+ hqdm:ClassOfOrdinaryPhysicalObject,
+ hqdm:ClassOfStateOfOrdinaryBiologicalObject ;
+ foaf:image .
+
+hqdm:ClassOfOrdinaryFunctionalObject a rdfs:Class ;
+ skos:prefLabel "Class of Ordinary Functional Object"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryFunctionalObject](#ClassOfStateOfOrdinaryFunctionalObject), that is also a [ClassOfFunctionalObject](#ClassOfFunctionalObject), and a [ClassOfOrdinaryPhysicalObject](#ClassOfOrdinaryPhysicalObject) that is [OrdinaryFunctionalObject](#OrdinaryFunctionalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfFunctionalObject,
+ hqdm:ClassOfOrdinaryPhysicalObject,
+ hqdm:ClassOfStateOfOrdinaryFunctionalObject ;
+ foaf:image .
+
+hqdm:ClassOfOrdinaryPhysicalObject a rdfs:Class ;
+ skos:prefLabel "Class of Ordinary Physical Object"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryPhysicalObject](#ClassOfStateOfOrdinaryPhysicalObject) that is also a [ClassOfPhysicalObject](#ClassOfPhysicalObject) that is [OrdinaryPhysicalObject](#OrdinaryPhysicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfPhysicalObject,
+ hqdm:ClassOfStateOfOrdinaryPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfOrganization a rdfs:Class ;
+ skos:prefLabel "Class of Organization"@en ;
+ skos:definition "A [ClassOfStateOfOrganization](#ClassOfStateOfOrganization), that is also a [ClassOfSociallyConstructedObject](#ClassOfSociallyConstructedObject), and a [ClassOfParty](#ClassOfParty) that is [Organization](#Organization) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfParty,
+ hqdm:ClassOfSociallyConstructedObject,
+ hqdm:ClassOfStateOfOrganization ;
+ foaf:image .
+
+hqdm:ClassOfOrganizationComponent a rdfs:Class ;
+ skos:prefLabel "Class of Organization Component"@en ;
+ skos:definition "A [ClassOfStateOfOrganizationComponent](#ClassOfStateOfOrganizationComponent), that is also a [ClassOfSystemComponent](#ClassOfSystemComponent), and a [ClassOfSociallyConstructedObject](#ClassOfSociallyConstructedObject) that is [OrganizationComponent](#OrganizationComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSociallyConstructedObject,
+ hqdm:ClassOfStateOfOrganizationComponent,
+ hqdm:ClassOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfParticipant a rdfs:Class ;
+ skos:prefLabel "Class of Participant"@en ;
+ skos:definition "A [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) that is [Participant](#Participant) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfParty a rdfs:Class ;
+ skos:prefLabel "Class of Party"@en ;
+ skos:definition "A [ClassOfSystem](#ClassOfSystem) that is [Party](#Party) or any of its subtypes."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfParty,
+ hqdm:ClassOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfPeriodOfTime a rdfs:Class ;
+ skos:prefLabel "Class of Period of Time"@en ;
+ skos:definition "A [ClassOfState](#ClassOfState) that is [PeriodOfTime](#PeriodOfTime) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfState ;
+ foaf:image .
+
+hqdm:ClassOfPerson a rdfs:Class ;
+ skos:prefLabel "Class of Person"@en ;
+ skos:definition "A [ClassOfBiologicalSystem](#ClassOfBiologicalSystem), [ClassOfStateOfPerson](#ClassOfStateOfPerson) and [ClassOfParty](#ClassOfParty) that is [Person](#Person) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfBiologicalSystem,
+ hqdm:ClassOfParty,
+ hqdm:ClassOfStateOfPerson ;
+ foaf:image .
+
+hqdm:ClassOfPersonInPosition a rdfs:Class ;
+ skos:prefLabel "Class of Person in Position"@en ;
+ skos:definition "A [ClassOfInstalledObject](#ClassOfInstalledObject) that is also a [ClassOfStateOfPosition](#ClassOfStateOfPosition) that is [PersonInPosition](#PersonInPosition) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfInstalledObject,
+ hqdm:ClassOfStateOfPosition ;
+ foaf:image .
+
+hqdm:ClassOfPhysicalObject a rdfs:Class ;
+ skos:prefLabel "Class of Physical Object"@en ;
+ skos:definition "A [ClassOfIndividual](#ClassOfIndividual) and a [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) that is [PhysicalObject](#PhysicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIndividual,
+ hqdm:ClassOfStateOfPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfPhysicalProperty a rdfs:Class ;
+ skos:prefLabel "Class of Physical Property"@en ;
+ skos:definition "A [ClassOfClassOfSpatioTemporalExtent](#ClassOfClassOfSpatioTemporalExtent) that is [PhysicalProperty](#PhysicalProperty) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfClassOfSpatioTemporalExtent ;
+ foaf:image .
+
+hqdm:ClassOfPhysicalQuantity a rdfs:Class ;
+ skos:prefLabel "Class of Physical Quantity"@en ;
+ skos:definition "A [ClassOfPhysicalProperty](#ClassOfPhysicalProperty) that is [PhysicalQuantity](#PhysicalQuantity) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfPhysicalProperty ;
+ foaf:image .
+
+hqdm:ClassOfPointInTime a rdfs:Class ;
+ skos:prefLabel "Class of Point in Time"@en ;
+ skos:definition "A [ClassOfEvent](#ClassOfEvent) that includes [PointInTime](#PointInTime) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfEvent ;
+ foaf:image .
+
+hqdm:ClassOfPosition a rdfs:Class ;
+ skos:prefLabel "Class of Position"@en ;
+ skos:definition "A [ClassOfStateOfPosition](#ClassOfStateOfPosition) that is also a [ClassOfOrganizationComponent](#ClassOfOrganizationComponent) that is [Position](#Position) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfOrganizationComponent,
+ hqdm:ClassOfStateOfPosition ;
+ foaf:image .
+
+hqdm:ClassOfPossibleWorld a rdfs:Class ;
+ skos:prefLabel "Class of Possible World"@en ;
+ skos:definition "A [ClassOfIndividual](#ClassOfIndividual) that is also a [ClassOfPeriodOfTime](#ClassOfPeriodOfTime) that is [PossibleWorld](#PossibleWorld) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIndividual,
+ hqdm:ClassOfPeriodOfTime ;
+ foaf:image .
+
+hqdm:ClassOfReachingAgreement a rdfs:Class ;
+ skos:prefLabel "Class of Reaching Agreement"@en ;
+ skos:definition "A [ClassOfSociallyConstructedActivity](#ClassOfSociallyConstructedActivity) that is [ReachingAgreement](#ReachingAgreement) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSociallyConstructedActivity ;
+ foaf:image .
+
+hqdm:ClassOfRelationship a rdfs:Class ;
+ skos:prefLabel "Class of Relationship"@en ;
+ skos:definition "A [Class](#Class) that is [Relationship](#Relationship) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfAbstractObject ;
+ foaf:image .
+
+hqdm:ClassOfRepresentation a rdfs:Class ;
+ skos:prefLabel "Class of Representation"@en ;
+ skos:definition "A [Class Of Association](#ClassOfAssociation) that is [Representation By Sign](#RepresentationBySign) or any of its subsets"@en ;
+ rdfs:subClassOf hqdm:ClassOfAssociation ;
+ foaf:image .
+
+hqdm:ClassOfSalesProductInstance a rdfs:Class ;
+ skos:prefLabel "Class of Sales Product Instance"@en ;
+ skos:definition "A [ClassOfStateOfSalesProductInstance](#ClassOfStateOfSalesProductInstance) that is also a [ClassOfOrdinaryFunctionalObject](#ClassOfOrdinaryFunctionalObject) that is [SalesProductInstance](#SalesProductInstance) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfOrdinaryFunctionalObject,
+ hqdm:ClassOfStateOfSalesProductInstance ;
+ foaf:image .
+
+hqdm:ClassOfSign a rdfs:Class ;
+ skos:prefLabel "Class of Sign"@en ;
+ skos:definition "A [ClassOfStateOfSign](#ClassOfStateOfSign) that is also a [ClassOfSociallyConstructedObject](#ClassOfSociallyConstructedObject) that is [Sign](#Sign) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSociallyConstructedObject,
+ hqdm:ClassOfStateOfSign ;
+ foaf:image .
+
+hqdm:ClassOfSociallyConstructedActivity a rdfs:Class ;
+ skos:prefLabel "Class of Socially Constructed Activity"@en ;
+ skos:definition "A [ClassOfSociallyConstructedObject](#ClassOfSociallyConstructedObject) and [ClassOfActivity](#ClassOfActivity) that is [SociallyConstructedActivity](#SociallyConstructedActivity) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfActivity,
+ hqdm:ClassOfSociallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfSociallyConstructedObject a rdfs:Class ;
+ skos:prefLabel "Class of Socially Constructed Object"@en ;
+ skos:definition "A [ClassOfIntentionallyConstructedObject](#ClassOfIntentionallyConstructedObject) that is [SociallyConstructedObject](#SociallyConstructedObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfIntentionallyConstructedObject,
+ hqdm:ClassOfStateOfSociallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfSpatioTemporalExtent a rdfs:Class ;
+ skos:prefLabel "Class of Spatio-Temporal Extent"@en ;
+ skos:definition "A [Class](#Class) that is [SpatioTemporalExtent](#SpatioTemporalExtent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:Class ;
+ foaf:image .
+
+hqdm:ClassOfState a rdfs:Class ;
+ skos:prefLabel "Class of State"@en ;
+ skos:definition "A [ClassOfSpatioTemporalExtent](#ClassOfSpatioTemporalExtent) that is [State](#State) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfSpatioTemporalExtent ;
+ foaf:image .
+
+hqdm:ClassOfStateOfActivity a rdfs:Class ;
+ skos:prefLabel "Class of State of Activity"@en ;
+ skos:definition "A [ClassOfState](#ClassOfState) that is [StateOfActivity](#StateOfActivity) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfState ;
+ foaf:image .
+
+hqdm:ClassOfStateOfAmountOfMoney a rdfs:Class ;
+ skos:prefLabel "Class of State of Amount of Money"@en ;
+ skos:definition "A [ClassOfStateOfSociallyConstructedObject](#ClassOfStateOfSociallyConstructedObject) that is also a [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) that is [StateOfAmountOfMoney](#StateOfAmountOfMoney) or one of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfPhysicalObject,
+ hqdm:ClassOfStateOfSociallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfAssociation a rdfs:Class ;
+ skos:prefLabel "Class of State of Association"@en ;
+ skos:definition "A [ClassOfState](#ClassOfState) that is [StateOfAssociation](#StateOfAssociation) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfState ;
+ foaf:image .
+
+hqdm:ClassOfStateOfBiologicalObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Biological Object"@en ;
+ skos:definition "A [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) that is [StateOfBiologicalObject](#StateOfBiologicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfBiologicalSystem a rdfs:Class ;
+ skos:prefLabel "Class of State of Biological System"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryBiologicalObject](#ClassOfStateOfOrdinaryBiologicalObject) and [ClassOfStateOfSystem](#ClassOfStateOfSystem) that is [StateOfBiologicalSystem](#StateOfBiologicalSystem) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrdinaryBiologicalObject,
+ hqdm:ClassOfStateOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfStateOfBiologicalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of State of Biological System Component"@en ;
+ skos:definition "A [ClassOfStateOfBiologicalObject](#ClassOfStateOfBiologicalObject) and [ClassOfStateOfSystemComponent](#ClassOfStateOfSystemComponent) that is [StateOfBiologicalSystemComponent](#StateOfBiologicalSystemComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfBiologicalObject,
+ hqdm:ClassOfStateOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfStateOfFunctionalObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Functional Object"@en ;
+ skos:definition "A [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) and [ClassOfStateOfIntentionallyConstructedObject](#ClassOfStateOfIntentionallyConstructedObject) that is [StateOfFunctionalObject](#StateOfFunctionalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfIntentionallyConstructedObject,
+ hqdm:ClassOfStateOfPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfFunctionalSystem a rdfs:Class ;
+ skos:prefLabel "Class of State of Functional System"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryFunctionalObject](#ClassOfStateOfOrdinaryFunctionalObject) that is also a [ClassOfStateOfSystem](#ClassOfStateOfSystem) that is [StateOfFunctionalSystem](#StateOfFunctionalSystem) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrdinaryFunctionalObject,
+ hqdm:ClassOfStateOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfStateOfFunctionalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of State of Functional System Component"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryFunctionalObject](#ClassOfStateOfOrdinaryFunctionalObject) that is also a [ClassOfStateOfSystemComponent](#ClassOfStateOfSystemComponent) that is [StateOfFunctionalSystemComponent](#StateOfFunctionalSystemComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrdinaryFunctionalObject,
+ hqdm:ClassOfStateOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfStateOfIntentionallyConstructedObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Intentionally Constructed Object"@en ;
+ skos:definition "A [ClassOfState](#ClassOfState) that is [StateOfIntentionallyConstructedObject](#StateOfIntentionallyConstructedObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfState ;
+ foaf:image .
+
+hqdm:ClassOfStateOfOrdinaryBiologicalObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Ordinary Biological Object"@en ;
+ skos:definition "A [ClassOfStateOfBiologicalObject](#ClassOfStateOfBiologicalObject) that is also a [ClassOfStateOfOrdinaryPhysicalObject](#ClassOfStateOfOrdinaryPhysicalObject) that is [StateOfOrdinaryBiologicalObject](#StateOfOrdinaryBiologicalObject) or any of its subsets"@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfBiologicalObject,
+ hqdm:ClassOfStateOfOrdinaryPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfOrdinaryFunctionalObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Ordinary Functional Object"@en ;
+ skos:definition "A [ClassOfStateOfFunctionalObject](#ClassOfStateOfFunctionalObject) that is also a [ClassOfStateOfOrdinaryPhysicalObject](#ClassOfStateOfOrdinaryPhysicalObject) that is [StateOfOrdinaryFunctionalObject](#StateOfOrdinaryFunctionalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfFunctionalObject,
+ hqdm:ClassOfStateOfOrdinaryPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfOrdinaryPhysicalObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Ordinary Physical Object"@en ;
+ skos:definition "A [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) that is [StateOfOrdinaryPhysicalObject](#StateOfOrdinaryPhysicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfOrganization a rdfs:Class ;
+ skos:prefLabel "Class of State of Organization"@en ;
+ skos:definition "A [ClassOfStateOfSociallyConstructedObject](#ClassOfStateOfSociallyConstructedObject) that is also a [ClassOfStateOfParty](#ClassOfStateOfParty) that is [StateOfOrganization](#StateOfOrganization) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfParty,
+ hqdm:ClassOfStateOfSociallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfOrganizationComponent a rdfs:Class ;
+ skos:prefLabel "Class of State of Organization Component"@en ;
+ skos:definition "A [ClassOfStateOfSystemComponent](#ClassOfStateOfSystemComponent) that is also a [ClassOfStateOfSociallyConstructedObject](#ClassOfStateOfSociallyConstructedObject) that is [StateOfOrganizationComponent](#StateOfOrganizationComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfSociallyConstructedObject,
+ hqdm:ClassOfStateOfSystemComponent ;
+ foaf:image .
+
+hqdm:ClassOfStateOfParty a rdfs:Class ;
+ skos:prefLabel "Class of State of Party"@en ;
+ skos:definition "A [ClassOfStateOfSystem](#ClassOfStateOfSystem) that is [StateOfParty](#StateOfParty) or any of its subtypes."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfStateOfPerson a rdfs:Class ;
+ skos:prefLabel "Class of State of Person"@en ;
+ skos:definition "A [ClassOfStateOfBiologicalSystem](#ClassOfStateOfBiologicalSystem) and [ClassOfStateOfParty](#ClassOfStateOfParty) that is [StateOfPerson](#StateOfPerson) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfBiologicalSystem,
+ hqdm:ClassOfStateOfParty ;
+ foaf:image .
+
+hqdm:ClassOfStateOfPhysicalObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Physical Object"@en ;
+ skos:definition "A [ClassOfState](#ClassOfState) that is [StateOfPhysicalObject](#StateOfPhysicalObject) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfState ;
+ foaf:image .
+
+hqdm:ClassOfStateOfPosition a rdfs:Class ;
+ skos:prefLabel "Class of State of Position"@en ;
+ skos:definition "A [ClassOfStateOfOrganizationComponent](#ClassOfStateOfOrganizationComponent) that is [StateOfPosition](#StateOfPosition) and any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrganizationComponent ;
+ foaf:image .
+
+hqdm:ClassOfStateOfSalesProductInstance a rdfs:Class ;
+ skos:prefLabel "Class of State of Sales Product Instance"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryFunctionalObject](#ClassOfStateOfOrdinaryFunctionalObject) that is [StateOfSalesProductInstance](#StateOfSalesProductInstance) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrdinaryFunctionalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfSign a rdfs:Class ;
+ skos:prefLabel "Class of State of Sign"@en ;
+ skos:definition "A [ClassOfSociallyConstructedObject](#ClassOfSociallyConstructedObject) that is [StateOfSign](#StateOfSign) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfSociallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfSociallyConstructedActivity a rdfs:Class ;
+ skos:prefLabel "Class of State of Socially Constructed Activity"@en ;
+ skos:definition "A [ClassOfStateOfSociallyConstructedObject](#ClassOfStateOfSociallyConstructedObject) that is [StateOfSociallyConstructedActivity](#StateOfSociallyConstructedActivity) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfActivity,
+ hqdm:ClassOfStateOfSociallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfSociallyConstructedObject a rdfs:Class ;
+ skos:prefLabel "Class of State of Socially Constructed Object"@en ;
+ skos:definition "A [ClassOfStateOfIntentionallyConstructedObject](#ClassOfStateOfIntentionallyConstructedObject) that is [StateOfSociallyConstructedObject](#StateOfSociallyConstructedObject) or one of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfIntentionallyConstructedObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfSystem a rdfs:Class ;
+ skos:prefLabel "Class of State of System"@en ;
+ skos:definition "A [ClassOfStateOfOrdinaryPhysicalObject](#ClassOfStateOfOrdinaryPhysicalObject) that is [StateOfSystem](#StateOfSystem) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfOrdinaryPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfStateOfSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of State of System Component"@en ;
+ skos:definition "A [ClassOfStateOfPhysicalObject](#ClassOfStateOfPhysicalObject) that is [StateOfSystemComponent](#StateOfSystemComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfStateOfPhysicalObject ;
+ foaf:image .
+
+hqdm:ClassOfSystem a rdfs:Class ;
+ skos:prefLabel "Class of System"@en ;
+ skos:definition "A [ClassOfStateOfSystem](#ClassOfStateOfSystem) that is also a [ClassOfOrdinaryPhysicalObject](#ClassOfOrdinaryPhysicalObject) that is [System](#System) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfOrdinaryPhysicalObject,
+ hqdm:ClassOfStateOfSystem ;
+ foaf:image .
+
+hqdm:ClassOfSystemComponent a rdfs:Class ;
+ skos:prefLabel "Class of System Component"@en ;
+ skos:definition "A [ClassOfStateOfSystemComponent](#ClassOfStateOfSystemComponent) that is also a [ClassOfPhysicalObject](#ClassOfPhysicalObject) that is [SystemComponent](#SystemComponent) or any of its subsets."@en ;
+ rdfs:subClassOf hqdm:ClassOfPhysicalObject,
+ hqdm:ClassOfStateOfSystemComponent ;
+ foaf:image .
+
+hqdm:ContractExecution a rdfs:Class ;
+ skos:prefLabel "Contract Execution"@en ;
+ skos:definition "An [AgreementExecution](#AgreementExecution) that is the provision of something in exchange for some consideration."@en ;
+ rdfs:subClassOf hqdm:AgreementExecution ;
+ foaf:image .
+
+hqdm:ContractProcess a rdfs:Class ;
+ skos:prefLabel "Contract Process"@en ;
+ skos:definition "An [AgreementProcess](#AgreementProcess) that consists of an [AgreeContract](#AgreeContract) and a [ContractExecution](#ContractExecution)."@en ;
+ rdfs:subClassOf hqdm:AgreementProcess ;
+ foaf:image .
+
+hqdm:Currency a rdfs:Class ;
+ skos:prefLabel "Currency"@en ;
+ skos:definition "A [ClassOfAmountOfMoney](#ClassOfAmountOfMoney) that is the subset of [AmountOfMoney](#AmountOfMoney) that has as members all the money issued by an issuing authority."@en ;
+ rdfs:subClassOf hqdm:ClassOfAmountOfMoney ;
+ foaf:image .
+
+hqdm:Definition a rdfs:Class ;
+ skos:prefLabel "Definition"@en ;
+ skos:definition "A [RepresentationByPattern](#RepresentationByPattern) that defines a [Class](#Class)."@en ;
+ rdfs:subClassOf hqdm:RepresentationByPattern ;
+ foaf:image .
+
+hqdm:Description a rdfs:Class ;
+ skos:prefLabel "Description"@en ;
+ skos:definition "A [RepresentationByPattern](#RepresentationByPattern) that describes some [Thing](#Thing)."@en ;
+ rdfs:subClassOf hqdm:RepresentationByPattern ;
+ foaf:image .
+
+hqdm:Employee a rdfs:Class ;
+ skos:prefLabel "Employee"@en ;
+ skos:definition "A [StateOfPerson](#StateOfPerson) that is a [participant in](#participantIn) an [Employment](#Employment)."@en ;
+ rdfs:subClassOf hqdm:Participant,
+ hqdm:StateOfPerson ;
+ foaf:image .
+
+hqdm:Employer a rdfs:Class ;
+ skos:prefLabel "Employer"@en ;
+ skos:definition "A [StateOfParty](#StateOfParty) that is a [participant in](#participantIn) an [Employment](#Employment)."@en ;
+ rdfs:subClassOf hqdm:Participant,
+ hqdm:StateOfParty ;
+ foaf:image .
+
+hqdm:Employment a rdfs:Class ;
+ skos:prefLabel "Employment"@en ;
+ skos:definition "An [Association](#Association) that consists of an [Employer](#Employer) and an [Employee](#Employee) where the [Employer](#Employer) pays the [Employee](#Employee) to work for them."@en ;
+ rdfs:subClassOf hqdm:Association ;
+ foaf:image .
+
+hqdm:EndingOfOwnership a rdfs:Class ;
+ skos:prefLabel "Ending of Ownership"@en ;
+ skos:definition "An [Event](#Event) that is the ending of an [Ownership](#Ownership)."@en ;
+ rdfs:subClassOf hqdm:Event ;
+ foaf:image .
+
+hqdm:EnumeratedClass a rdfs:Class ;
+ skos:prefLabel "Enumerated Class"@en ;
+ skos:definition "A [Class](#Class) where each `member of` the [Class](#Class) is known."@en ;
+ rdfs:subClassOf hqdm:Class ;
+ foaf:image .
+
+hqdm:Event a rdfs:Class ;
+ skos:prefLabel "Event"@en ;
+ skos:definition "A [SpatioTemporalExtent](#SpatioTemporalExtent) that has zero temporal thickness and may bound some [SpatioTemporalExtent](#SpatioTemporalExtent)."@en ;
+ rdfs:subClassOf hqdm:SpatioTemporalExtent ;
+ foaf:image .
+
+hqdm:ExchangeOfGoodsAndMoney a rdfs:Class ;
+ skos:prefLabel "Exchange of Goods and Money"@en ;
+ skos:definition "An [AgreementExecution](#AgreementExecution) that consists of a [TransferOfOwnership](#TransferOfOwnership) of goods and a [TransferOfOwnershipOfMoney](#TransferOfOwnershipOfMoney)."@en ;
+ rdfs:subClassOf hqdm:ContractExecution ;
+ foaf:image .
+
+hqdm:Function a rdfs:Class ;
+ skos:prefLabel "Function"@en ;
+ skos:definition "A many-to-one [Relationship](#Relationship)."@en ;
+ rdfs:subClassOf hqdm:Relationship ;
+ foaf:image .
+
+hqdm:FunctionalObject a rdfs:Class ;
+ skos:prefLabel "Functional Object"@en ;
+ skos:definition "An [IntentionallyConstructedObject](#IntentionallyConstructedObject) that is also a [PhysicalObject](#PhysicalObject) that has an `intended role`."@en ;
+ rdfs:subClassOf hqdm:IntentionallyConstructedObject,
+ hqdm:PhysicalObject,
+ hqdm:StateOfFunctionalObject ;
+ foaf:image .
+
+hqdm:FunctionalSystem a rdfs:Class ;
+ skos:prefLabel "Functional System"@en ;
+ skos:definition "Any [StateOfFunctionalSystem](#StateOfFunctionalSystem) that is also an [OrdinaryFunctionalObject](#OrdinaryFunctionalObject) and a [System](#System)."@en ;
+ rdfs:subClassOf hqdm:OrdinaryFunctionalObject,
+ hqdm:StateOfFunctionalSystem,
+ hqdm:System ;
+ foaf:image .
+
+hqdm:FunctionalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Functional System Component"@en ;
+ skos:definition "An [IntentionallyConstructedObject](#IntentionallyConstructedObject) that is a replaceable `component of` a [FunctionalSystem](#FunctionalSystem)."@en ;
+ rdfs:subClassOf hqdm:FunctionalObject,
+ hqdm:StateOfFunctionalSystemComponent,
+ hqdm:SystemComponent ;
+ foaf:image .
+
+hqdm:Identification a rdfs:Class ;
+ skos:prefLabel "Identification"@en ;
+ skos:definition "A [RepresentationByPattern](#RepresentationByPattern) that is a surrogate for the [Thing](#Thing) represented."@en ;
+ rdfs:subClassOf hqdm:RepresentationByPattern ;
+ foaf:image .
+
+hqdm:IdentificationOfPhysicalQuantity a rdfs:Class ;
+ skos:prefLabel "Identification of Physical Quantity"@en ;
+ skos:definition "An [Identification](#Identification) that identifies a [PhysicalQuantity](#PhysicalQuantity). An `identification of physical quantity` consists of a number that is a representation of the `value` the physical quantity maps to on the [Scale](#Scale)."@en ;
+ rdfs:subClassOf hqdm:Identification ;
+ foaf:image .
+
+hqdm:InPlaceBiologicalComponent a rdfs:Class ;
+ skos:prefLabel "In-Place Biological Component"@en ;
+ skos:definition "An [InstalledObject](#InstalledObject) that is also a [StateOfOrdinaryBiologicalObject](#StateOfOrdinaryBiologicalObject) and a [StateOfSystemComponent](#StateOfSystemComponent)."@en ;
+ rdfs:subClassOf hqdm:InstalledObject,
+ hqdm:StateOfBiologicalSystemComponent,
+ hqdm:StateOfOrdinaryBiologicalObject ;
+ foaf:image .
+
+hqdm:Individual a rdfs:Class ;
+ skos:prefLabel "Individual"@en ;
+ skos:definition "A [SpatioTemporalExtent](#SpatioTemporalExtent) that is not a proper `temporal part of` any other [Individual](#Individual) of the same kind."@en ;
+ rdfs:subClassOf hqdm:State ;
+ skos:scopeNote "In standard mereology a [SpatioTemporalExtent](#SpatioTemporalExtent) is a part of itself. Parts of an individual excluding itself are called proper parts."@en ;
+ foaf:image .
+
+hqdm:InstalledFunctionalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Installed Functional System Component"@en ;
+ skos:definition "Any [InstalledObject](#InstalledObject) that is also a [StateOfOrdinaryFunctionalObject](#StateOfOrdinaryFunctionalObject) and a [StateOfFunctionalSystemComponent](#StateOfFunctionalSystemComponent)."@en ;
+ rdfs:subClassOf hqdm:InstalledObject,
+ hqdm:StateOfFunctionalSystemComponent,
+ hqdm:StateOfOrdinaryFunctionalObject ;
+ foaf:image .
+
+hqdm:InstalledObject a rdfs:Class ;
+ skos:prefLabel "Installed Object"@en ;
+ skos:definition "A [StateOfOrdinaryPhysicalObject](#StateOfOrdinaryPhysicalObject) that is also a [StateOfSystemComponent](#StateOfSystemComponent) that is a `temporal part of` an [OrdinaryPhysicalObject](#OrdinaryPhysicalObject) from when it is installed as a [SystemComponent](#SystemComponent) to when it is removed."@en ;
+ rdfs:subClassOf hqdm:StateOfOrdinaryPhysicalObject,
+ hqdm:StateOfSystemComponent ;
+ foaf:image .
+
+hqdm:IntentionallyConstructedObject a rdfs:Class ;
+ skos:prefLabel "Intentionally Constructed Object"@en ;
+ skos:definition "An [Individual](#Individual) and [StateOfIntentionallyConstructedObject](#StateOfIntentionallyConstructedObject) that is intentionally constructed."@en ;
+ rdfs:subClassOf hqdm:Individual,
+ hqdm:StateOfIntentionallyConstructedObject ;
+ skos:scopeNote "Being intentionally constructed means that it is an act of will or agreement that makes it what it is."@en ;
+ foaf:image .
+
+hqdm:KindOfActivity a rdfs:Class ;
+ skos:prefLabel "Kind of Activity"@en ;
+ skos:definition "A [ClassOfActivity](#ClassOfActivity) all of whose members are of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfActivity,
+ hqdm:KindOfIndividual ;
+ foaf:image .
+
+hqdm:KindOfAssociation a rdfs:Class ;
+ skos:prefLabel "Kind of Association"@en ;
+ skos:definition "A [ClassOfAssociation](#ClassOfAssociation) where all the members are of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfAssociation,
+ hqdm:KindOfIndividual ;
+ foaf:image .
+
+hqdm:KindOfBiologicalObject a rdfs:Class ;
+ skos:prefLabel "Kind of Biological Object"@en ;
+ skos:definition "A [ClassOfBiologicalObject](#ClassOfBiologicalObject) and a [KindOfPhysicalObject](#KindOfPhysicalObject) where each `member of` a `Kind of Biological Object` is of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfBiologicalObject,
+ hqdm:KindOfPhysicalObject ;
+ foaf:image .
+
+hqdm:KindOfBiologicalSystem a rdfs:Class ;
+ skos:prefLabel "Kind of Biological System"@en ;
+ skos:definition "A [ClassOfBiologicalSystem](#ClassOfBiologicalSystem) that is also a [KindOfSystem](#KindOfSystem) all of whose members have a natural [Role](#Role) that they play."@en ;
+ rdfs:subClassOf hqdm:ClassOfBiologicalSystem,
+ hqdm:KindOfOrdinaryBiologicalObject,
+ hqdm:KindOfSystem ;
+ foaf:image .
+
+hqdm:KindOfBiologicalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Kind of Biological System Component"@en ;
+ skos:definition "A [ClassOfBiologicalSystemComponent](#ClassOfBiologicalSystemComponent) that is also a [KindOfSystemComponent](#KindOfSystemComponent) where all the member components play the same role in some [BiologicalSystem](#BiologicalSystem)."@en ;
+ rdfs:subClassOf hqdm:ClassOfBiologicalSystemComponent,
+ hqdm:KindOfBiologicalObject,
+ hqdm:KindOfSystemComponent ;
+ foaf:image .
+
+hqdm:KindOfFunctionalObject a rdfs:Class ;
+ skos:prefLabel "Kind of Functional Object"@en ;
+ skos:definition "A [ClassOfFunctionalObject](#ClassOfFunctionalObject), that is also a [KindOfPhysicalObject](#KindOfPhysicalObject), and a [KindOfIntentionallyConstructedObject](#KindOfIntentionallyConstructedObject) where each `member of` a [KindOfFunctionalObject](#KindOfFunctionalObject) is of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfFunctionalObject,
+ hqdm:KindOfIntentionallyConstructedObject,
+ hqdm:KindOfPhysicalObject ;
+ foaf:image .
+
+hqdm:KindOfFunctionalSystem a rdfs:Class ;
+ skos:prefLabel "Kind of Functional System"@en ;
+ skos:definition "A [ClassOfFunctionalSystem](#ClassOfFunctionalSystem) that is also a [KindOfSystem](#KindOfSystem) where each `Kind of Functional System` has members that are of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfFunctionalSystem,
+ hqdm:KindOfOrdinaryFunctionalObject,
+ hqdm:KindOfSystem ;
+ foaf:image .
+
+hqdm:KindOfFunctionalSystemComponent a rdfs:Class ;
+ skos:prefLabel "Kind of Functional System Component"@en ;
+ skos:definition "A [ClassOfFunctionalSystemComponent](#ClassOfFunctionalSystemComponent) that is also a [KindOfSystemComponent](#KindOfSystemComponent) where each `member of` a [KindOfFunctionalSystemComponent](#KindOfFunctionalSystemComponent) is of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfFunctionalSystemComponent,
+ hqdm:KindOfFunctionalObject,
+ hqdm:KindOfSystemComponent ;
+ foaf:image .
+
+hqdm:KindOfIndividual a rdfs:Class ;
+ skos:prefLabel "Kind of Individual"@en ;
+ skos:definition "A [ClassOfIndividual](#ClassOfIndividual) where all the members possess attributes in common."@en ;
+ rdfs:subClassOf hqdm:ClassOfIndividual ;
+ foaf:image .
+
+hqdm:KindOfIntentionallyConstructedObject a rdfs:Class ;
+ skos:prefLabel "Kind of Intentionally Constructed Object"@en ;
+ skos:definition "A [ClassOfIntentionallyConstructedObject](#ClassOfIntentionallyConstructedObject) that is also a [KindOfIndividual](#KindOfIndividual) where each `member of` a `Kind of Intentionally Constructed Object` is of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfIntentionallyConstructedObject,
+ hqdm:KindOfIndividual ;
+ foaf:image .
+
+hqdm:KindOfOrdinaryBiologicalObject a rdfs:Class ;
+ skos:prefLabel "Kind of Ordinary Biological Object"@en ;
+ skos:definition "A [ClassOfOrdinaryBiologicalObject](#ClassOfOrdinaryBiologicalObject) a [KindOfOrdinaryPhysicalObject](#KindOfOrdinaryPhysicalObject) and a [KindOfBiologicalObject](#KindOfBiologicalObject) where each `member of` a `Kind of Ordinary Biological Object` is of the same kind."@en ;
+ rdfs:subClassOf hqdm:ClassOfOrdinaryBiologicalObject,
+ hqdm:KindOfBiologicalObject,
+ hqdm:KindOfOrdinaryPhysicalObject ;
+ foaf:image