Author: lgiessmann Date: Mon Aug 15 07:39:54 2011 New Revision: 730
Log: gdl-frontend: Widgets: defined the TMCL schema that is required for the TextGrid ServiceRegistry, i.e. the schema for the topic types http://textgrid.org/serviceregistry/model/HashObject and http://textgrid.org/serviceregistry/model/Environment
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_TMCL_2010-05-03_required.jtm
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java Mon Aug 15 05:46:48 2011 (r729) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/LoadSchemaCallback.java Mon Aug 15 07:39:54 2011 (r730) @@ -23,7 +23,7 @@ // this class can be used as a callback that requests the Topic Map data // addressable by the URI isidorusUrl public class LoadSchemaCallback implements ILoadSchemaCallback{ - private final String isidorusUrl = URL.encode(GWT.getModuleBaseURL() + "test.gdl.jtm"); //"TextGrid.jtm"); // TODO: replace with the correct URL + private final String isidorusUrl = URL.encode(GWT.getModuleBaseURL() + "TextGrid_TMCL_2010-05-03_required.jtm"); //"test.gdl.jtm"); // TODO: replace with the correct URL private ArrayList<Pair<String, TopicIdentifierTypes>> requestedTopicsToCreate = new ArrayList<Pair<String,TopicIdentifierTypes>>(); private Pair<String, TopicIdentifierTypes> requestedTopicToEdit = null; private RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, isidorusUrl);
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_TMCL_2010-05-03_required.jtm ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_TMCL_2010-05-03_required.jtm Mon Aug 15 05:46:48 2011 (r729) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/war/gdl_widgets/TextGrid_TMCL_2010-05-03_required.jtm Mon Aug 15 07:39:54 2011 (r730) @@ -0,0 +1,136 @@ +{"version":"1.1", + "prefixes":{"tmcl":"http://psi.topicmaps.org/tmcl/", + "tmdm":"http://psi.topicmaps.org/iso13250/model/", + "tgm":"http://textgrid.org/serviceregistry/model/%22%7D, + + "item_type":"topicmap", + + "item_identifiers":["[tg:services-tm]"], + + "topics":[{"subject_identifiers":["[tmcl:topic-type]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:name-type]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:occurrence-type]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:role-type]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:association-type]"], "instance_of":["si:[tmcl:topic-type]"]}, + + {"subject_identifiers":["[tmcl:card-min]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + {"subject_identifiers":["[tmcl:card-max]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + {"subject_identifiers":["[tmcl:regexp]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + {"subject_identifiers":["[tmcl:datatype]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + + {"subject_identifiers":["[tmcl:constraint]"], "instance_of":["si:[tmcl:topic-type]", "si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tmcl:subject-identifier-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:topic-name-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:topic-occurrence-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:regular-expression-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:occurrence-datatype-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:topic-role-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tmcl:association-role-constraint]"], "instance_of":["si:[tmcl:topic-type]"]}, + + {"subject_identifiers":["[tmcl:constrained]"], "instance_of":["si:[tmcl:role-type]"]}, + + {"subject_identifiers":["[tmcl:constrained-statement]"], "instance_of":["si:[tmcl:association-type]"]}, + {"subject_identifiers":["[tmcl:constrained-topic-type]"], "instance_of":["si:[tmcl:association-type]"]}, + {"subject_identifiers":["[tmcl:constrained-role]"], "instance_of":["si:[tmcl:association-type]"]}, + + {"subject_identifiers":["[tmdm:supertype]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tmdm:subtype]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tmdm:supertype-subtype]"], "instance_of":["si:[tmcl:association-type]"]}, + + {"subject_identifiers":["[tgm:Service]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tgm:HashObject]"], "instance_of":["si:[tmcl:topic-type]"]}, + {"subject_identifiers":["[tgm:Environment]"], "instance_of":["si:[tmcl:topic-type]"]}, + + {"subject_identifiers":["[tgm:type]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + {"subject_identifiers":["[tgm:key]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + {"subject_identifiers":["[tgm:value]"], "instance_of":["si:[tmcl:occurrence-type]"]}, + + {"subject_identifiers":["[tgm:environment-name]"], "instance_of":["si:[tmcl:name-type]"]}, + + {"subject_identifiers":["[tgm:has-hash]"], "instance_of":["si:[tmcl:association-type]"]}, + {"subject_identifiers":["[tgm:has-environment]"], "instance_of":["si:[tmcl:association-type]"]}, + + {"subject_identifiers":["[tgm:service]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tgm:hash]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tgm:parameter]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tgm:config]"], "instance_of":["si:[tmcl:role-type]"]}, + {"subject_identifiers":["[tgm:environment]"], "instance_of":["si:[tmcl:role-type]"]}, + + {"subject_identifiers":["[tgm:environment-psi-constraint]"], "instance_of":["si:[tmcl:subject-identifier-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}, {"type":"si:[tmcl:regexp]", "value":"http://textgrid.org/serviceregistry/environment/.+%22%7D%5D%7D, + {"subject_identifiers":["[tgm:environment-name-constraint]"], "instance_of":["si:[tmcl:topic-name-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:environment-name-regular-expression-constraint]"], "instance_of":["si:[tmcl:regular-expression-constraint]"], "occurrences":[{"type":"si:[tmcl:regexp]", "value":"^.+$"}]}, + + {"subject_identifiers":["[tgm:hash-psi-constraint]"], "instance_of":["si:[tmcl:subject-identifier-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}, {"type":"si:[tmcl:regexp]", "value":"http://textgrid.org/serviceregistry/hashobject/.+%22%7D%5D%7D, + {"subject_identifiers":["[tgm:hash-type-constraint]"], "instance_of":["si:[tmcl:topic-occurrence-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:hash-type-regular-expression-constraint]"], "instance_of":["si:[tmcl:regular-expression-constraint]"], "occurrences":[{"type":"si:[tmcl:regexp]", "value":"^.+$"}]}, + {"subject_identifiers":["[tgm:hash-type-datatype-constraint]"], "instance_of":["si:[tmcl:occurrence-datatype-constraint]"], "occurrences":[{"type":"si:[tmcl:datatype]", "value":"xsd:string"}]}, + {"subject_identifiers":["[tgm:hash-key-constraint]"], "instance_of":["si:[tmcl:topic-occurrence-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:hash-key-regular-expression-constraint]"], "instance_of":["si:[tmcl:regular-expression-constraint]"], "occurrences":[{"type":"si:[tmcl:regexp]", "value":"^.+$"}]}, + {"subject_identifiers":["[tgm:hash-key-datatype-constraint]"], "instance_of":["si:[tmcl:occurrence-datatype-constraint]"], "occurrences":[{"type":"si:[tmcl:datatype]", "value":"xsd:string"}]}, + {"subject_identifiers":["[tgm:hash-value-constraint]"], "instance_of":["si:[tmcl:topic-occurrence-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:hash-value-regular-expression-constraint]"], "instance_of":["si:[tmcl:regular-expression-constraint]"], "occurrences":[{"type":"si:[tmcl:regexp]", "value":"^.+$"}]}, + {"subject_identifiers":["[tgm:hash-value-datatype-constraint]"], "instance_of":["si:[tmcl:occurrence-datatype-constraint]"], "occurrences":[{"type":"si:[tmcl:datatype]", "value":"xsd:string"}]}, + + {"subject_identifiers":["[tgm:has-environment-environment-role-constraint]"], "instance_of":["si:[tmcl:topic-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:has-environment-environment-association-role-constraint]"], "instance_of":["si:[tmcl:association-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + + {"subject_identifiers":["[tgm:has-environment-hash-role-constraint]"], "instance_of":["si:[tmcl:topic-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:has-environment-hash-association-role-constraint]"], "instance_of":["si:[tmcl:association-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + + {"subject_identifiers":["[tgm:has-hash-hash-role-constraint]"], "instance_of":["si:[tmcl:topic-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:has-hash-hash-association-role-constraint]"], "instance_of":["si:[tmcl:association-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + + {"subject_identifiers":["[tgm:has-hash-service-role-constraint]"], "instance_of":["si:[tmcl:topic-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]}, + {"subject_identifiers":["[tgm:has-hash-service-association-role-constraint]"], "instance_of":["si:[tmcl:association-role-constraint]"], "occurrences":[{"type":"si:[tmcl:card-min]", "value":"1"}, {"type":"si:[tmcl:card-max]", "value":"1"}]} + ], + + "associations":[{"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:topic-name-constraint]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:subject-identifier-constraint]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:topic-occurrence-constraint]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:regular-expression-constraint]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:topic-role-constraint]"}]}, + {"type":"si:[tmdm:supertype-subtype]", "roles":[{"type":"si:[tmdm:supertype]", "player":"si:[tmcl:constraint]"},{"type":"si:[tmdm:subtype]", "player":"si:[tmcl:association-role-constraint]"}]}, + + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:HashObject]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-psi-constraint]"}]}, + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:Environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:environment-psi-constraint]"}]}, + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:Environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:environment-name-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:environment-name]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:environment-name-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:environment-name]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:environment-name-regular-expression-constraint]"}]}, + + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:HashObject]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-type-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:type]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-type-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:type]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-type-regular-expression-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:type]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-type-datatype-constraint]"}]}, + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:HashObject]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-key-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:key]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-key-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:key]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-key-regular-expression-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:key]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-key-datatype-constraint]"}]}, + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:HashObject]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-value-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:value]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-value-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:value]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-value-regular-expression-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:value]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:hash-value-datatype-constraint]"}]}, + + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:Environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-environment-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-environment-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-environment-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-environment-association-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-environment-association-role-constraint]"}]}, + + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:HashObject]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-hash-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-hash-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-hash-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-environment]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-hash-association-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-environment-hash-association-role-constraint]"}]}, + + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:HashObject]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-hash-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-hash-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-hash-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-hash-association-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-hash-association-role-constraint]"}]}, + + {"type":"si:[tmcl:constrained-topic-type]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:Service]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-service-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-service-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:service]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-service-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-statement]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:has-hash]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-service-association-role-constraint]"}]}, + {"type":"si:[tmcl:constrained-role]", "roles":[{"type":"si:[tmcl:constrained]", "player":"si:[tgm:service]"},{"type":"si:[tmcl:constraint]", "player":"si:[tgm:has-hash-service-association-role-constraint]"}]} + ]} \ No newline at end of file