@balena/pinejs 14.53.1 → 14.54.0-renovate-node-18-x-aa1eeaed5800c3f8eef29a63aabf12e10423272e-1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"lfModel":{"1.4.3+1.4.3":{"\"Vocabulary: dev\\n\\nTerm: model value\\n\\tConcept Type: JSON (Type)\\nTerm: model\\n\\tReference Scheme: model value\\nTerm: vocabulary\\n\\tConcept Type: Short Text (Type)\\nTerm: model type\\n\\tConcept Type: Short Text (Type)\\n\\nFact Type: model is of vocabulary\\n\\tNecessity: Each model is of exactly one vocabulary\\nFact Type: model has model type\\n\\tNecessity: Each model has exactly one model type\\nFact Type: model has model value\\n\\tNecessity: Each model has exactly one model value\\n\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","dev",["Attributes"]],["Term","model value","dev",["Attributes",["ConceptType",["Term","JSON","Type"]]]],["Term","model","dev",["Attributes",["ReferenceScheme",["Term","model value","dev"]]]],["Term","vocabulary","dev",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","model type","dev",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["FactType",["Term","model","dev"],["Verb","is of",false],["Term","vocabulary","dev"],["Attributes",["SynonymousForm",[["Term","vocabulary","dev"],["Verb","has",false],["Term","model","dev"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","model","dev"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","vocabulary","dev"]],["AtomicFormulation",["FactType",["Term","model","dev"],["Verb","is of",false],["Term","vocabulary","dev"]],["RoleBinding",["Term","model","dev"],0],["RoleBinding",["Term","vocabulary","dev"],1]]]]],["StructuredEnglish","It is necessary that Each model is of exactly one vocabulary"]]]]],["FactType",["Term","model","dev"],["Verb","has",false],["Term","model type","dev"],["Attributes",["SynonymousForm",[["Term","model type","dev"],["Verb","is of",false],["Term","model","dev"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","model","dev"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model type","dev"]],["AtomicFormulation",["FactType",["Term","model","dev"],["Verb","has",false],["Term","model type","dev"]],["RoleBinding",["Term","model","dev"],0],["RoleBinding",["Term","model type","dev"],1]]]]],["StructuredEnglish","It is necessary that Each model has exactly one model type"]]]]],["FactType",["Term","model","dev"],["Verb","has",false],["Term","model value","dev"],["Attributes",["SynonymousForm",[["Term","model value","dev"],["Verb","is of",false],["Term","model","dev"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","model","dev"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model value","dev"]],["AtomicFormulation",["FactType",["Term","model","dev"],["Verb","has",false],["Term","model value","dev"]],["RoleBinding",["Term","model","dev"],0],["RoleBinding",["Term","model value","dev"],1]]]]],["StructuredEnglish","It is necessary that Each model has exactly one model value"]]]]]],"\"Vocabulary: Auth\\n\\nTerm: username\\n\\tConcept Type: Short Text (Type)\\nTerm: password\\n\\tConcept Type: Hashed (Type)\\nTerm: name\\n\\tConcept Type: Text (Type)\\nTerm: key\\n\\tConcept Type: Short Text (Type)\\nTerm: expiry date\\n\\tConcept Type: Date Time (Type)\\nTerm: description\\n\\tConcept Type: Text (Type)\\n\\nTerm: permission\\n\\tReference Scheme: name\\nFact type: permission has name\\n\\tNecessity: Each permission has exactly one name.\\n\\tNecessity: Each name is of exactly one permission.\\n\\nTerm: role\\n\\tReference Scheme: name\\nFact type: role has name\\n\\tNecessity: Each role has exactly one name.\\n\\tNecessity: Each name is of exactly one role.\\nFact type: role has permission\\n\\nTerm: actor\\n\\nTerm: user\\n\\tReference Scheme: username\\n\\tConcept Type: actor\\nFact type: user has username\\n\\tNecessity: Each user has exactly one username.\\n\\tNecessity: Each username is of exactly one user.\\nFact type: user has password\\n\\tNecessity: Each user has exactly one password.\\nFact type: user has role\\n\\tNote: A 'user' will inherit all the 'permissions' that the 'role' has.\\n\\tTerm Form: user role\\n\\tFact type: user role has expiry date\\n\\t\\tNecessity: Each user role has at most one expiry date.\\nFact type: user has permission\\n\\tTerm Form: user permission\\n\\tFact type: user permission has expiry date\\n\\t\\tNecessity: Each user permission has at most one expiry date.\\n\\nTerm: api key\\n\\tReference Scheme: key\\nFact type: api key has key\\n\\tNecessity: each api key has exactly one key\\n\\tNecessity: each key is of exactly one api key\\nFact type: api key has expiry date\\n\\tNecessity: each api key has at most one expiry date.\\nFact type: api key has role\\n\\tNote: An 'api key' will inherit all the 'permissions' that the 'role' has.\\nFact type: api key has permission\\nFact type: api key is of actor\\n\\tNecessity: each api key is of exactly one actor\\nFact type: api key has name\\n\\tNecessity: Each api key has at most one name.\\nFact type: api key has description\\n\\tNecessity: Each api key has at most one description.\\n\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","Auth",["Attributes"]],["Term","username","Auth",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","password","Auth",["Attributes",["ConceptType",["Term","Hashed","Type"]]]],["Term","name","Auth",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","key","Auth",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","expiry date","Auth",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","description","Auth",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","permission","Auth",["Attributes",["ReferenceScheme",["Term","name","Auth"]]]],["FactType",["Term","permission","Auth"],["Verb","has",false],["Term","name","Auth"],["Attributes",["SynonymousForm",[["Term","name","Auth"],["Verb","is of",false],["Term","permission","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","permission","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","name","Auth"]],["AtomicFormulation",["FactType",["Term","permission","Auth"],["Verb","has",false],["Term","name","Auth"]],["RoleBinding",["Term","permission","Auth"],0],["RoleBinding",["Term","name","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each permission has exactly one name."]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","name","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","permission","Auth"]],["AtomicFormulation",["FactType",["Term","name","Auth"],["Verb","is of",false],["Term","permission","Auth"]],["RoleBinding",["Term","name","Auth"],0],["RoleBinding",["Term","permission","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each name is of exactly one permission."]]]]],["Term","role","Auth",["Attributes",["ReferenceScheme",["Term","name","Auth"]]]],["FactType",["Term","role","Auth"],["Verb","has",false],["Term","name","Auth"],["Attributes",["SynonymousForm",[["Term","name","Auth"],["Verb","is of",false],["Term","role","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","role","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","name","Auth"]],["AtomicFormulation",["FactType",["Term","role","Auth"],["Verb","has",false],["Term","name","Auth"]],["RoleBinding",["Term","role","Auth"],0],["RoleBinding",["Term","name","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each role has exactly one name."]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","name","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","role","Auth"]],["AtomicFormulation",["FactType",["Term","name","Auth"],["Verb","is of",false],["Term","role","Auth"]],["RoleBinding",["Term","name","Auth"],0],["RoleBinding",["Term","role","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each name is of exactly one role."]]]]],["FactType",["Term","role","Auth"],["Verb","has",false],["Term","permission","Auth"],["Attributes",["SynonymousForm",[["Term","permission","Auth"],["Verb","is of",false],["Term","role","Auth"]]]]],["Term","actor","Auth",["Attributes"]],["Term","user","Auth",["Attributes",["ReferenceScheme",["Term","username","Auth"]],["ConceptType",["Term","actor","Auth"]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","username","Auth"],["Attributes",["SynonymousForm",[["Term","username","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","username","Auth"]],["AtomicFormulation",["FactType",["Term","user","Auth"],["Verb","has",false],["Term","username","Auth"]],["RoleBinding",["Term","user","Auth"],0],["RoleBinding",["Term","username","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user has exactly one username."]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","username","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","user","Auth"]],["AtomicFormulation",["FactType",["Term","username","Auth"],["Verb","is of",false],["Term","user","Auth"]],["RoleBinding",["Term","username","Auth"],0],["RoleBinding",["Term","user","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each username is of exactly one user."]]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","password","Auth"],["Attributes",["SynonymousForm",[["Term","password","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","password","Auth"]],["AtomicFormulation",["FactType",["Term","user","Auth"],["Verb","has",false],["Term","password","Auth"]],["RoleBinding",["Term","user","Auth"],0],["RoleBinding",["Term","password","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user has exactly one password."]]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","role","Auth"],["Attributes",["SynonymousForm",[["Term","role","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["Note","A 'user' will inherit all the 'permissions' that the 'role' has."],["TermForm",["Term","user role","Auth"]]]],["FactType",["Term","user role","Auth"],["Verb","has",false],["Term","expiry date","Auth"],["Attributes",["SynonymousForm",[["Term","expiry date","Auth"],["Verb","is of",false],["Term","user role","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user role","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","expiry date","Auth"]],["AtomicFormulation",["FactType",["Term","user role","Auth"],["Verb","has",false],["Term","expiry date","Auth"]],["RoleBinding",["Term","user role","Auth"],0],["RoleBinding",["Term","expiry date","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user role has at most one expiry date."]]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","permission","Auth"],["Attributes",["SynonymousForm",[["Term","permission","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["TermForm",["Term","user permission","Auth"]]]],["FactType",["Term","user permission","Auth"],["Verb","has",false],["Term","expiry date","Auth"],["Attributes",["SynonymousForm",[["Term","expiry date","Auth"],["Verb","is of",false],["Term","user permission","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user permission","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","expiry date","Auth"]],["AtomicFormulation",["FactType",["Term","user permission","Auth"],["Verb","has",false],["Term","expiry date","Auth"]],["RoleBinding",["Term","user permission","Auth"],0],["RoleBinding",["Term","expiry date","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user permission has at most one expiry date."]]]]],["Term","api key","Auth",["Attributes",["ReferenceScheme",["Term","key","Auth"]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","key","Auth"],["Attributes",["SynonymousForm",[["Term","key","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","key","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","key","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","key","Auth"],1]]]]],["StructuredEnglish","It is necessary that each api key has exactly one key"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","key","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","api key","Auth"]],["AtomicFormulation",["FactType",["Term","key","Auth"],["Verb","is of",false],["Term","api key","Auth"]],["RoleBinding",["Term","key","Auth"],0],["RoleBinding",["Term","api key","Auth"],1]]]]],["StructuredEnglish","It is necessary that each key is of exactly one api key"]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","expiry date","Auth"],["Attributes",["SynonymousForm",[["Term","expiry date","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","expiry date","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","expiry date","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","expiry date","Auth"],1]]]]],["StructuredEnglish","It is necessary that each api key has at most one expiry date."]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","role","Auth"],["Attributes",["SynonymousForm",[["Term","role","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Note","An 'api key' will inherit all the 'permissions' that the 'role' has."]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","permission","Auth"],["Attributes",["SynonymousForm",[["Term","permission","Auth"],["Verb","is of",false],["Term","api key","Auth"]]]]],["FactType",["Term","api key","Auth"],["Verb","is of",false],["Term","actor","Auth"],["Attributes",["SynonymousForm",[["Term","actor","Auth"],["Verb","has",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","actor","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","is of",false],["Term","actor","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","actor","Auth"],1]]]]],["StructuredEnglish","It is necessary that each api key is of exactly one actor"]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","name","Auth"],["Attributes",["SynonymousForm",[["Term","name","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","name","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","name","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","name","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each api key has at most one name."]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","description","Auth"],["Attributes",["SynonymousForm",[["Term","description","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","description","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","description","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","description","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each api key has at most one description."]]]]]],"\"Vocabulary: migrations\\n\\nTerm: model name\\n\\tConcept Type: Short Text (Type)\\nTerm: executed migrations\\n\\tConcept Type: JSON (Type)\\nTerm: lock time\\n\\tConcept Type: Date Time (Type)\\n\\nTerm: migration\\n\\tReference Scheme: model name\\n\\tDatabase ID Field: model name\\nFact Type: migration has model name\\n\\tNecessity: each migration has exactly one model name\\nFact Type: migration has executed migrations\\n\\tNecessity: each migration has exactly one executed migrations\\n\\nTerm: migration lock\\n\\tReference Scheme: model name\\n\\tDatabase ID Field: model name\\n\\nFact Type: migration lock has model name\\n\\tNecessity: each migration lock has exactly one model name\\n\\nTerm: migration key\\n\\tConcept Type: Short Text (Type)\\nTerm: start time\\n\\tConcept Type: Date Time (Type)\\nTerm: last run time\\n\\tConcept Type: Date Time (Type)\\nTerm: run count\\n\\tConcept Type: Integer (Type)\\nTerm: migrated row count\\n\\tConcept Type: Integer (Type)\\nTerm: error count\\n\\tConcept Type: Integer (Type)\\nTerm: converged time \\n\\tConcept Type: Date Time (Type)\\n\\n\\nTerm: migration status\\n\\tReference Scheme: migration key\\n\\tDatabase ID Field: migration key\\n\\nFact Type: migration status has migration key\\n\\tNecessity: each migration status has exactly one migration key\\n\\nFact Type: migration status has start time\\n\\tNecessity: each migration status has at most one start time\\n\\nFact Type: migration status has last run time\\n\\tNecessity: each migration status has at most one last run time\\n\\nFact Type: migration status has run count\\n\\tNecessity: each migration status has exactly one run count\\n\\nFact Type: migration status has migrated row count\\n\\tNecessity: each migration status has at most one migrated row count\\n\\nFact Type: migration status has error count\\n\\tNecessity: each migration status has at most one error count\\n\\nFact Type: migration status is backing off\\n\\nFact Type: migration status has converged time \\n\\tNecessity: each migration status has at most one converged time\\n\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","migrations",["Attributes"]],["Term","model name","migrations",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","executed migrations","migrations",["Attributes",["ConceptType",["Term","JSON","Type"]]]],["Term","lock time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","migration","migrations",["Attributes",["ReferenceScheme",["Term","model name","migrations"]],["DatabaseIDField","model name"]]],["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","model name","migrations"],["Attributes",["SynonymousForm",[["Term","model name","migrations"],["Verb","is of",false],["Term","migration","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model name","migrations"]],["AtomicFormulation",["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","model name","migrations"]],["RoleBinding",["Term","migration","migrations"],0],["RoleBinding",["Term","model name","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration has exactly one model name"]]]]],["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","executed migrations","migrations"],["Attributes",["SynonymousForm",[["Term","executed migrations","migrations"],["Verb","is of",false],["Term","migration","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","executed migrations","migrations"]],["AtomicFormulation",["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","executed migrations","migrations"]],["RoleBinding",["Term","migration","migrations"],0],["RoleBinding",["Term","executed migrations","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration has exactly one executed migrations"]]]]],["Term","migration lock","migrations",["Attributes",["ReferenceScheme",["Term","model name","migrations"]],["DatabaseIDField","model name"]]],["FactType",["Term","migration lock","migrations"],["Verb","has",false],["Term","model name","migrations"],["Attributes",["SynonymousForm",[["Term","model name","migrations"],["Verb","is of",false],["Term","migration lock","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration lock","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model name","migrations"]],["AtomicFormulation",["FactType",["Term","migration lock","migrations"],["Verb","has",false],["Term","model name","migrations"]],["RoleBinding",["Term","migration lock","migrations"],0],["RoleBinding",["Term","model name","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration lock has exactly one model name"]]]]],["Term","migration key","migrations",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","start time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","last run time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","run count","migrations",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","migrated row count","migrations",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","error count","migrations",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","converged time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","migration status","migrations",["Attributes",["ReferenceScheme",["Term","migration key","migrations"]],["DatabaseIDField","migration key"]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migration key","migrations"],["Attributes",["SynonymousForm",[["Term","migration key","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","migration key","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migration key","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","migration key","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has exactly one migration key"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","start time","migrations"],["Attributes",["SynonymousForm",[["Term","start time","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","start time","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","start time","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","start time","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one start time"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","last run time","migrations"],["Attributes",["SynonymousForm",[["Term","last run time","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","last run time","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","last run time","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","last run time","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one last run time"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","run count","migrations"],["Attributes",["SynonymousForm",[["Term","run count","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","run count","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","run count","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","run count","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has exactly one run count"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migrated row count","migrations"],["Attributes",["SynonymousForm",[["Term","migrated row count","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","migrated row count","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migrated row count","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","migrated row count","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one migrated row count"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","error count","migrations"],["Attributes",["SynonymousForm",[["Term","error count","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","error count","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","error count","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","error count","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one error count"]]]]],["FactType",["Term","migration status","migrations"],["Verb","is backing off",false],["Attributes"]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","converged time","migrations"],["Attributes",["SynonymousForm",[["Term","converged time","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","converged time","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","converged time","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","converged time","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one converged time"]]]]]],"\"Vocabulary: example\\n\\nTerm: name\\n\\t Concept Type: Short Text (Type)\\n\\nTerm: note\\n\\t Concept Type: Text (Type)\\n\\nTerm: type\\n\\t Concept Type: Short Text (Type)\\n\\nTerm: device\\n\\nFact Type: device has name\\n\\t Necessity: each device has at most one name.\\n\\nFact Type: device has note\\n\\t Necessity: each device has at most one note.\\n\\nFact Type: device has type\\n\\t Necessity: each device has exactly one type.\\n\\nTerm: deviceb\\n\\nFact Type: deviceb has name\\n\\t Necessity: each deviceb has at most one name.\\n\\nFact Type: deviceb has note\\n\\t Necessity: each deviceb has at most one note.\\n\\nFact Type: deviceb has type\\n\\t Necessity: each deviceb has exactly one type.\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","example",["Attributes"]],["Term","name","example",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","note","example",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","type","example",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","device","example",["Attributes"]],["FactType",["Term","device","example"],["Verb","has",false],["Term","name","example"],["Attributes",["SynonymousForm",[["Term","name","example"],["Verb","is of",false],["Term","device","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","device","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","name","example"]],["AtomicFormulation",["FactType",["Term","device","example"],["Verb","has",false],["Term","name","example"]],["RoleBinding",["Term","device","example"],0],["RoleBinding",["Term","name","example"],1]]]]],["StructuredEnglish","It is necessary that each device has at most one name."]]]]],["FactType",["Term","device","example"],["Verb","has",false],["Term","note","example"],["Attributes",["SynonymousForm",[["Term","note","example"],["Verb","is of",false],["Term","device","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","device","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","note","example"]],["AtomicFormulation",["FactType",["Term","device","example"],["Verb","has",false],["Term","note","example"]],["RoleBinding",["Term","device","example"],0],["RoleBinding",["Term","note","example"],1]]]]],["StructuredEnglish","It is necessary that each device has at most one note."]]]]],["FactType",["Term","device","example"],["Verb","has",false],["Term","type","example"],["Attributes",["SynonymousForm",[["Term","type","example"],["Verb","is of",false],["Term","device","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","device","example"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","type","example"]],["AtomicFormulation",["FactType",["Term","device","example"],["Verb","has",false],["Term","type","example"]],["RoleBinding",["Term","device","example"],0],["RoleBinding",["Term","type","example"],1]]]]],["StructuredEnglish","It is necessary that each device has exactly one type."]]]]],["Term","deviceb","example",["Attributes"]],["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","name","example"],["Attributes",["SynonymousForm",[["Term","name","example"],["Verb","is of",false],["Term","deviceb","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","deviceb","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","name","example"]],["AtomicFormulation",["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","name","example"]],["RoleBinding",["Term","deviceb","example"],0],["RoleBinding",["Term","name","example"],1]]]]],["StructuredEnglish","It is necessary that each deviceb has at most one name."]]]]],["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","note","example"],["Attributes",["SynonymousForm",[["Term","note","example"],["Verb","is of",false],["Term","deviceb","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","deviceb","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","note","example"]],["AtomicFormulation",["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","note","example"]],["RoleBinding",["Term","deviceb","example"],0],["RoleBinding",["Term","note","example"],1]]]]],["StructuredEnglish","It is necessary that each deviceb has at most one note."]]]]],["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","type","example"],["Attributes",["SynonymousForm",[["Term","type","example"],["Verb","is of",false],["Term","deviceb","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","deviceb","example"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","type","example"]],["AtomicFormulation",["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","type","example"]],["RoleBinding",["Term","deviceb","example"],0],["RoleBinding",["Term","type","example"],1]]]]],["StructuredEnglish","It is necessary that each deviceb has exactly one type."]]]]]]}},"abstractSqlModel":{"4.5.5+3.4.15":{"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"dev\",[\"Attributes\"]],[\"Term\",\"model value\",\"dev\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"JSON\",\"Type\"]]]],[\"Term\",\"model\",\"dev\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"model value\",\"dev\"]]]],[\"Term\",\"vocabulary\",\"dev\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"model type\",\"dev\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"vocabulary\",\"dev\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"vocabulary\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model\",\"dev\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"model\",\"dev\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"vocabulary\",\"dev\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"vocabulary\",\"dev\"]],[\"RoleBinding\",[\"Term\",\"model\",\"dev\"],0],[\"RoleBinding\",[\"Term\",\"vocabulary\",\"dev\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each model is of exactly one vocabulary\"]]]]],[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model type\",\"dev\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model type\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"model\",\"dev\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"model\",\"dev\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model type\",\"dev\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model type\",\"dev\"]],[\"RoleBinding\",[\"Term\",\"model\",\"dev\"],0],[\"RoleBinding\",[\"Term\",\"model type\",\"dev\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each model has exactly one model type\"]]]]],[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model value\",\"dev\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model value\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"model\",\"dev\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"model\",\"dev\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model value\",\"dev\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model value\",\"dev\"]],[\"RoleBinding\",[\"Term\",\"model\",\"dev\"],0],[\"RoleBinding\",[\"Term\",\"model value\",\"dev\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each model has exactly one model value\"]]]]]]":{"tables":{"model":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"is of-vocabulary","required":true,"references":{"resourceName":"vocabulary","fieldName":null}},{"dataType":"Short Text","fieldName":"model type","required":true,"references":{"resourceName":"model type","fieldName":null}},{"dataType":"JSON","fieldName":"model value","required":true,"references":{"resourceName":"model value","fieldName":null}}],"primitive":false,"name":"model","indexes":[],"idField":"id","resourceName":"model","modelName":"model","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model value"}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model value":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"vocabulary":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}},"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"rules":[],"synonyms":{}},"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"Auth\",[\"Attributes\"]],[\"Term\",\"username\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"password\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Hashed\",\"Type\"]]]],[\"Term\",\"name\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"key\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"expiry date\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"description\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"permission\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"name\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"permission\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"permission\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"permission\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each permission has exactly one name.\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"name\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"permission\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"permission\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"permission\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each name is of exactly one permission.\"]]]]],[\"Term\",\"role\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"name\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"role\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"role\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"role\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each role has exactly one name.\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"name\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"role\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"role\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"role\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each name is of exactly one role.\"]]]]],[\"FactType\",[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"permission\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"role\",\"Auth\"]]]]],[\"Term\",\"actor\",\"Auth\",[\"Attributes\"]],[\"Term\",\"user\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"username\",\"Auth\"]],[\"ConceptType\",[\"Term\",\"actor\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"username\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"username\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"username\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"username\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"username\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user has exactly one username.\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"username\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"user\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"username\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"username\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"user\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each username is of exactly one user.\"]]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"password\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"password\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"password\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"password\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"password\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user has exactly one password.\"]]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"role\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"Note\",\"A 'user' will inherit all the 'permissions' that the 'role' has.\"],[\"TermForm\",[\"Term\",\"user role\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"user role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"expiry date\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user role\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user role\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"expiry date\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user role\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"expiry date\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user role has at most one expiry date.\"]]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"permission\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"TermForm\",[\"Term\",\"user permission\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"user permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"expiry date\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user permission\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user permission\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"expiry date\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user permission\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"expiry date\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user permission has at most one expiry date.\"]]]]],[\"Term\",\"api key\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"key\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"key\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"key\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"key\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"key\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each api key has exactly one key\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"key\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"api key\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each key is of exactly one api key\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"expiry date\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"expiry date\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"expiry date\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each api key has at most one expiry date.\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"role\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Note\",\"An 'api key' will inherit all the 'permissions' that the 'role' has.\"]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"permission\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"actor\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"actor\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"actor\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"actor\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"actor\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each api key is of exactly one actor\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each api key has at most one name.\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"description\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"description\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"description\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"description\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"description\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each api key has at most one description.\"]]]]]]":{"tables":{"permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"permission","indexes":[],"idField":"id","resourceName":"permission","modelName":"permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name"},"role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"role","indexes":[],"idField":"id","resourceName":"role","modelName":"role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name"},"role-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"role-has-permission","indexes":[{"type":"UNIQUE","fields":["role","permission"]}],"idField":"id","resourceName":"role-has-permission","modelName":"role has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"actor":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"actor","indexes":[],"idField":"id","resourceName":"actor","modelName":"actor","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id"},"user":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"ConceptType","fieldName":"actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Short Text","fieldName":"username","required":true,"references":{"resourceName":"username","fieldName":null},"index":"UNIQUE"},{"dataType":"Hashed","fieldName":"password","required":true,"references":{"resourceName":"password","fieldName":null}}],"primitive":false,"name":"user","indexes":[],"idField":"id","resourceName":"user","modelName":"user","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"username"},"user-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-role","indexes":[{"type":"UNIQUE","fields":["user","role"]}],"idField":"id","resourceName":"user-has-role","modelName":"user has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"user-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-permission","indexes":[{"type":"UNIQUE","fields":["user","permission"]}],"idField":"id","resourceName":"user-has-permission","modelName":"user has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"api key":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"key","required":true,"references":{"resourceName":"key","fieldName":null},"index":"UNIQUE"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}},{"dataType":"ForeignKey","fieldName":"is of-actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"description","required":false,"references":{"resourceName":"description","fieldName":null}}],"primitive":false,"name":"api key","indexes":[],"idField":"id","resourceName":"api key","modelName":"api key","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"key"},"api key-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-role","indexes":[{"type":"UNIQUE","fields":["api key","role"]}],"idField":"id","resourceName":"api key-has-role","modelName":"api key has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"api key-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-permission","indexes":[{"type":"UNIQUE","fields":["api key","permission"]}],"idField":"id","resourceName":"api key-has-permission","modelName":"api key has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"username":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"password":{"Hashed":{"$":["Hashed"]},"has":{"Hashed":{"$":["Hashed"]}}},"name":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"expiry date":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"description":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"permission":{"has":{"name":{"$":["name"]},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"permission":{"has":{"name":{"$":["name"]}}},"name":{"$":["name"]},"is of":{"role":{"$":["id",["role-has-permission","permission"]]},"user":{"$":["id",["user-has-permission","permission"]]},"api key":{"$":["id",["api key-has-permission","permission"]]}},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]}}},"name":{"$":["name"]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}},"is of":{"user":{"$":["id",["user-has-role","role"]]},"api key":{"$":["id",["api key-has-role","role"]]}}},"role-has-permission":{"role":{"$":["role",["role","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"role":{"$":["role",["role","id"]]}}},"actor":{"is of":{"user":{"$":["id",["user","actor"]]}},"api key":{"$":["id",["api key","is of-actor"]]},"has":{"api key":{"$":["id",["api key","is of-actor"]]}}},"user":{"actor":{"$":["actor",["actor","id"]]},"has":{"actor":{"$":["actor",["actor","id"]]},"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"user":{"has":{"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"permission":{"$":["id",["user-has-permission","user"]]}},"user":{"has":{"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"username":{"$":["username"]},"password":{"$":["password"]}},"user-has-role":{"user":{"$":["user",["user","id"]],"has":{"role":{"has":{"expiry date":{"$":["expiry date"]}}}}},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"user-has-permission":{"user":{"$":["user",["user","id"]],"has":{"permission":{"has":{"expiry date":{"$":["expiry date"]}}}}},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"is of":{"actor":{"$":["id",["api key-is of-actor","api key"]]}}},"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"is of":{"actor":{"$":["is of-actor",["actor","id"]]}},"name":{"$":["name"]},"description":{"$":["description"]}},"api key-has-role":{"api key":{"$":["api key",["api key","id"]]},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}},"api key-has-permission":{"api key":{"$":["api key",["api key","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}}},"rules":[],"synonyms":{"user role":"user-has-role","user permission":"user-has-permission"}},"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"migrations\",[\"Attributes\"]],[\"Term\",\"model name\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"executed migrations\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"JSON\",\"Type\"]]]],[\"Term\",\"lock time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"migration\",\"migrations\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"model name\",\"migrations\"]],[\"DatabaseIDField\",\"model name\"]]],[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model name\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model name\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"model name\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration has exactly one model name\"]]]]],[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"executed migrations\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"executed migrations\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"executed migrations\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"executed migrations\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"executed migrations\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration has exactly one executed migrations\"]]]]],[\"Term\",\"migration lock\",\"migrations\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"model name\",\"migrations\"]],[\"DatabaseIDField\",\"model name\"]]],[\"FactType\",[\"Term\",\"migration lock\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model name\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration lock\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration lock\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model name\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration lock\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration lock\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"model name\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration lock has exactly one model name\"]]]]],[\"Term\",\"migration key\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"start time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"last run time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"run count\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"migrated row count\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"error count\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"converged time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"migration status\",\"migrations\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"migration key\",\"migrations\"]],[\"DatabaseIDField\",\"migration key\"]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migration key\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"migration key\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"migration key\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migration key\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"migration key\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has exactly one migration key\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"start time\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"start time\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"start time\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"start time\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"start time\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one start time\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"last run time\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"last run time\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"last run time\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"last run time\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"last run time\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one last run time\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"run count\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"run count\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"run count\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"run count\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"run count\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has exactly one run count\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migrated row count\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"migrated row count\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"migrated row count\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migrated row count\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"migrated row count\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one migrated row count\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"error count\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"error count\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"error count\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"error count\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"error count\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one error count\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"is backing off\",false],[\"Attributes\"]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"converged time\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"converged time\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"converged time\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"converged time\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"converged time\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one converged time\"]]]]]]":{"tables":{"migration":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"JSON","fieldName":"executed migrations","required":true,"references":{"resourceName":"executed migrations","fieldName":null}}],"primitive":false,"name":"migration","indexes":[],"idField":"model name","resourceName":"migration","modelName":"migration","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name"},"migration lock":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"}],"primitive":false,"name":"migration lock","indexes":[],"idField":"model name","resourceName":"migration lock","modelName":"migration lock","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name"},"migration status":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"migration key","required":true,"references":{"resourceName":"migration key","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"start time","required":false,"references":{"resourceName":"start time","fieldName":null}},{"dataType":"Date Time","fieldName":"last run time","required":false,"references":{"resourceName":"last run time","fieldName":null}},{"dataType":"Integer","fieldName":"run count","required":true,"references":{"resourceName":"run count","fieldName":null}},{"dataType":"Integer","fieldName":"migrated row count","required":false,"references":{"resourceName":"migrated row count","fieldName":null}},{"dataType":"Integer","fieldName":"error count","required":false,"references":{"resourceName":"error count","fieldName":null}},{"dataType":"Boolean","fieldName":"is backing off","required":true},{"dataType":"Date Time","fieldName":"converged time","required":false,"references":{"resourceName":"converged time","fieldName":null}}],"primitive":false,"name":"migration status","indexes":[],"idField":"migration key","resourceName":"migration status","modelName":"migration status","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"migration key"}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"executed migrations":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"lock time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}}},"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration lock":{"has":{"model name":{"$":["model name"]}},"migration lock":{"has":{"model name":{"$":["model name"]}}},"model name":{"$":["model name"]}},"migration key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"start time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"last run time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"run count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"migrated row count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"error count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"converged time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}}},"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"is backing off":{"$":["is backing off"]},"converged time":{"$":["converged time"]}}},"rules":[],"synonyms":{}},"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"example\",[\"Attributes\"]],[\"Term\",\"name\",\"example\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"note\",\"example\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"type\",\"example\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"device\",\"example\",[\"Attributes\"]],[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"device\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"device\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"]],[\"RoleBinding\",[\"Term\",\"device\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each device has at most one name.\"]]]]],[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"note\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"device\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"device\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"note\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"]],[\"RoleBinding\",[\"Term\",\"device\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"note\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each device has at most one note.\"]]]]],[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"type\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"device\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"device\",\"example\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"type\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"]],[\"RoleBinding\",[\"Term\",\"device\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"type\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each device has exactly one type.\"]]]]],[\"Term\",\"deviceb\",\"example\",[\"Attributes\"]],[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"deviceb\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"deviceb\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"]],[\"RoleBinding\",[\"Term\",\"deviceb\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each deviceb has at most one name.\"]]]]],[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"note\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"deviceb\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"deviceb\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"note\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"]],[\"RoleBinding\",[\"Term\",\"deviceb\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"note\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each deviceb has at most one note.\"]]]]],[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"type\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"deviceb\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"deviceb\",\"example\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"type\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"]],[\"RoleBinding\",[\"Term\",\"deviceb\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"type\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each deviceb has exactly one type.\"]]]]]]":{"tables":{"device":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"device","indexes":[],"idField":"id","resourceName":"device","modelName":"device","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id"},"deviceb":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"deviceb","indexes":[],"idField":"id","resourceName":"deviceb","modelName":"deviceb","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id"}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"note":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"rules":[],"synonyms":{}}}},"metadata":{"14.53.1":{"{\"vocab\":\"dev\",\"abstractSqlModel\":{\"tables\":{\"model\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"is of-vocabulary\",\"required\":true,\"references\":{\"resourceName\":\"vocabulary\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"model type\",\"required\":true,\"references\":{\"resourceName\":\"model type\",\"fieldName\":null}},{\"dataType\":\"JSON\",\"fieldName\":\"model value\",\"required\":true,\"references\":{\"resourceName\":\"model value\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"model\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"model\",\"modelName\":\"model\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model value\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model value\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"vocabulary\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}},\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"rules\":[],\"synonyms\":{}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"dev\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"model\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"is_of__vocabulary\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"model_type\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"model_value\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\t\t\t\t\t<EntityContainer Name=\"devService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"model\" EntityType=\"dev.model\" />\n\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>","{\"vocab\":\"Auth\",\"abstractSqlModel\":{\"tables\":{\"permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"permission\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"permission\",\"modelName\":\"permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"role\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"role\",\"modelName\":\"role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"role-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"role\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"role-has-permission\",\"modelName\":\"role has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"actor\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"actor\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"actor\",\"modelName\":\"actor\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"user\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"ConceptType\",\"fieldName\":\"actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Short Text\",\"fieldName\":\"username\",\"required\":true,\"references\":{\"resourceName\":\"username\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Hashed\",\"fieldName\":\"password\",\"required\":true,\"references\":{\"resourceName\":\"password\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"user\",\"modelName\":\"user\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"username\"},\"user-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-role\",\"modelName\":\"user has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"user-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-permission\",\"modelName\":\"user has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"key\",\"required\":true,\"references\":{\"resourceName\":\"key\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"is of-actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"description\",\"required\":false,\"references\":{\"resourceName\":\"description\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"api key\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"api key\",\"modelName\":\"api key\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"key\"},\"api key-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-role\",\"modelName\":\"api key has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-permission\",\"modelName\":\"api key has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"username\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"password\":{\"Hashed\":{\"$\":[\"Hashed\"]},\"has\":{\"Hashed\":{\"$\":[\"Hashed\"]}}},\"name\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"expiry date\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"description\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]}}},\"name\":{\"$\":[\"name\"]},\"is of\":{\"role\":{\"$\":[\"id\",[\"role-has-permission\",\"permission\"]]},\"user\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-permission\",\"permission\"]]}},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]}}},\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}},\"is of\":{\"user\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-role\",\"role\"]]}}},\"role-has-permission\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}}},\"actor\":{\"is of\":{\"user\":{\"$\":[\"id\",[\"user\",\"actor\"]]}},\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]},\"has\":{\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]}}},\"user\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"has\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}},\"user\":{\"has\":{\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]}},\"user-has-role\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"role\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"user-has-permission\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"permission\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"is of\":{\"actor\":{\"$\":[\"id\",[\"api key-is of-actor\",\"api key\"]]}}},\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"is of\":{\"actor\":{\"$\":[\"is of-actor\",[\"actor\",\"id\"]]}},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key-has-role\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}},\"api key-has-permission\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}}},\"rules\":[],\"synonyms\":{\"user role\":\"user-has-role\",\"user permission\":\"user-has-permission\"}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"Auth\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"role\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"role__has__permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<NavigationProperty Name=\"role\" Relationship=\"Auth.role__has__permissionrole\" FromRole=\"role__has__permission\" ToRole=\"role\" />\n<NavigationProperty Name=\"permission\" Relationship=\"Auth.role__has__permissionpermission\" FromRole=\"role__has__permission\" ToRole=\"permission\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"actor\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"user\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"actor\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"username\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"password\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"user__has__role\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"expiry_date\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<NavigationProperty Name=\"user\" Relationship=\"Auth.user__has__roleuser\" FromRole=\"user__has__role\" ToRole=\"user\" />\n<NavigationProperty Name=\"role\" Relationship=\"Auth.user__has__rolerole\" FromRole=\"user__has__role\" ToRole=\"role\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"user__has__permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"expiry_date\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<NavigationProperty Name=\"user\" Relationship=\"Auth.user__has__permissionuser\" FromRole=\"user__has__permission\" ToRole=\"user\" />\n<NavigationProperty Name=\"permission\" Relationship=\"Auth.user__has__permissionpermission\" FromRole=\"user__has__permission\" ToRole=\"permission\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"api_key\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"key\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"expiry_date\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"description\" Type=\"Edm.String\" Nullable=\"true\" />\n<NavigationProperty Name=\"is_of__actor\" Relationship=\"Auth.api_keyactor\" FromRole=\"api_key\" ToRole=\"actor\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"api_key__has__role\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<NavigationProperty Name=\"api_key\" Relationship=\"Auth.api_key__has__roleapi key\" FromRole=\"api_key__has__role\" ToRole=\"api key\" />\n<NavigationProperty Name=\"role\" Relationship=\"Auth.api_key__has__rolerole\" FromRole=\"api_key__has__role\" ToRole=\"role\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"api_key__has__permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<NavigationProperty Name=\"api_key\" Relationship=\"Auth.api_key__has__permissionapi key\" FromRole=\"api_key__has__permission\" ToRole=\"api key\" />\n<NavigationProperty Name=\"permission\" Relationship=\"Auth.api_key__has__permissionpermission\" FromRole=\"api_key__has__permission\" ToRole=\"permission\" />\n\n\t\t\t\t\t</EntityType><Association Name=\"role__has__permissionrole\">\n\t<End Role=\"role__has__permission\" Type=\"Auth.role__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"role\" Type=\"Auth.role\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"role__has__permissionpermission\">\n\t<End Role=\"role__has__permission\" Type=\"Auth.role__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"permission\" Type=\"Auth.permission\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__roleuser\">\n\t<End Role=\"user__has__role\" Type=\"Auth.user__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"user\" Type=\"Auth.user\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__rolerole\">\n\t<End Role=\"user__has__role\" Type=\"Auth.user__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"role\" Type=\"Auth.role\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__permissionuser\">\n\t<End Role=\"user__has__permission\" Type=\"Auth.user__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"user\" Type=\"Auth.user\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__permissionpermission\">\n\t<End Role=\"user__has__permission\" Type=\"Auth.user__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"permission\" Type=\"Auth.permission\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_keyactor\">\n\t<End Role=\"api_key\" Type=\"Auth.api_key\" Multiplicity=\"1\" />\n\t<End Role=\"actor\" Type=\"Auth.actor\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__roleapi_key\">\n\t<End Role=\"api_key__has__role\" Type=\"Auth.api_key__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"api key\" Type=\"Auth.api key\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__rolerole\">\n\t<End Role=\"api_key__has__role\" Type=\"Auth.api_key__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"role\" Type=\"Auth.role\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__permissionapi_key\">\n\t<End Role=\"api_key__has__permission\" Type=\"Auth.api_key__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"api key\" Type=\"Auth.api key\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__permissionpermission\">\n\t<End Role=\"api_key__has__permission\" Type=\"Auth.api_key__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"permission\" Type=\"Auth.permission\" Multiplicity=\"*\" />\n</Association>\n\t\t\t\t\t<EntityContainer Name=\"AuthService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"permission\" EntityType=\"Auth.permission\" />\n<EntitySet Name=\"role\" EntityType=\"Auth.role\" />\n<EntitySet Name=\"role__has__permission\" EntityType=\"Auth.role__has__permission\" />\n<EntitySet Name=\"actor\" EntityType=\"Auth.actor\" />\n<EntitySet Name=\"user\" EntityType=\"Auth.user\" />\n<EntitySet Name=\"user__has__role\" EntityType=\"Auth.user__has__role\" />\n<EntitySet Name=\"user__has__permission\" EntityType=\"Auth.user__has__permission\" />\n<EntitySet Name=\"api_key\" EntityType=\"Auth.api_key\" />\n<EntitySet Name=\"api_key__has__role\" EntityType=\"Auth.api_key__has__role\" />\n<EntitySet Name=\"api_key__has__permission\" EntityType=\"Auth.api_key__has__permission\" />\n<AssociationSet Name=\"role__has__permissionrole\" Association=\"Auth.role__has__permissionrole\">\n\t<End Role=\"role__has__permission\" EntitySet=\"Auth.role__has__permission\" />\n\t<End Role=\"role\" EntitySet=\"Auth.role\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"role__has__permissionpermission\" Association=\"Auth.role__has__permissionpermission\">\n\t<End Role=\"role__has__permission\" EntitySet=\"Auth.role__has__permission\" />\n\t<End Role=\"permission\" EntitySet=\"Auth.permission\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__roleuser\" Association=\"Auth.user__has__roleuser\">\n\t<End Role=\"user__has__role\" EntitySet=\"Auth.user__has__role\" />\n\t<End Role=\"user\" EntitySet=\"Auth.user\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__rolerole\" Association=\"Auth.user__has__rolerole\">\n\t<End Role=\"user__has__role\" EntitySet=\"Auth.user__has__role\" />\n\t<End Role=\"role\" EntitySet=\"Auth.role\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__permissionuser\" Association=\"Auth.user__has__permissionuser\">\n\t<End Role=\"user__has__permission\" EntitySet=\"Auth.user__has__permission\" />\n\t<End Role=\"user\" EntitySet=\"Auth.user\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__permissionpermission\" Association=\"Auth.user__has__permissionpermission\">\n\t<End Role=\"user__has__permission\" EntitySet=\"Auth.user__has__permission\" />\n\t<End Role=\"permission\" EntitySet=\"Auth.permission\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_keyactor\" Association=\"Auth.api_keyactor\">\n\t<End Role=\"api_key\" EntitySet=\"Auth.api_key\" />\n\t<End Role=\"actor\" EntitySet=\"Auth.actor\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__roleapi_key\" Association=\"Auth.api_key__has__roleapi_key\">\n\t<End Role=\"api_key__has__role\" EntitySet=\"Auth.api_key__has__role\" />\n\t<End Role=\"api key\" EntitySet=\"Auth.api key\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__rolerole\" Association=\"Auth.api_key__has__rolerole\">\n\t<End Role=\"api_key__has__role\" EntitySet=\"Auth.api_key__has__role\" />\n\t<End Role=\"role\" EntitySet=\"Auth.role\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__permissionapi_key\" Association=\"Auth.api_key__has__permissionapi_key\">\n\t<End Role=\"api_key__has__permission\" EntitySet=\"Auth.api_key__has__permission\" />\n\t<End Role=\"api key\" EntitySet=\"Auth.api key\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__permissionpermission\" Association=\"Auth.api_key__has__permissionpermission\">\n\t<End Role=\"api_key__has__permission\" EntitySet=\"Auth.api_key__has__permission\" />\n\t<End Role=\"permission\" EntitySet=\"Auth.permission\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>","{\"vocab\":\"migrations\",\"abstractSqlModel\":{\"tables\":{\"migration\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"JSON\",\"fieldName\":\"executed migrations\",\"required\":true,\"references\":{\"resourceName\":\"executed migrations\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration\",\"modelName\":\"migration\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration lock\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"migration lock\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration lock\",\"modelName\":\"migration lock\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration status\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"migration key\",\"required\":true,\"references\":{\"resourceName\":\"migration key\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"start time\",\"required\":false,\"references\":{\"resourceName\":\"start time\",\"fieldName\":null}},{\"dataType\":\"Date Time\",\"fieldName\":\"last run time\",\"required\":false,\"references\":{\"resourceName\":\"last run time\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"run count\",\"required\":true,\"references\":{\"resourceName\":\"run count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"migrated row count\",\"required\":false,\"references\":{\"resourceName\":\"migrated row count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"error count\",\"required\":false,\"references\":{\"resourceName\":\"error count\",\"fieldName\":null}},{\"dataType\":\"Boolean\",\"fieldName\":\"is backing off\",\"required\":true},{\"dataType\":\"Date Time\",\"fieldName\":\"converged time\",\"required\":false,\"references\":{\"resourceName\":\"converged time\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration status\",\"indexes\":[],\"idField\":\"migration key\",\"resourceName\":\"migration status\",\"modelName\":\"migration status\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"migration key\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"executed migrations\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"lock time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}}},\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}}},\"model name\":{\"$\":[\"model name\"]}},\"migration key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"start time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"last run time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"run count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"migrated row count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"error count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"converged time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"is backing off\":{\"$\":[\"is backing off\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"rules\":[],\"synonyms\":{}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"migrations\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"migration\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"model name\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"model_name\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"executed_migrations\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"migration_lock\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"model name\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"model_name\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"migration_status\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"migration key\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"migration_key\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"start_time\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<Property Name=\"last_run_time\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<Property Name=\"run_count\" Type=\"Edm.Int32\" Nullable=\"false\" />\n<Property Name=\"migrated_row_count\" Type=\"Edm.Int32\" Nullable=\"true\" />\n<Property Name=\"error_count\" Type=\"Edm.Int32\" Nullable=\"true\" />\n<Property Name=\"is_backing_off\" Type=\"Edm.Boolean\" Nullable=\"false\" />\n<Property Name=\"converged_time\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n\n\n\t\t\t\t\t</EntityType>\n\t\t\t\t\t<EntityContainer Name=\"migrationsService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"migration\" EntityType=\"migrations.migration\" />\n<EntitySet Name=\"migration_lock\" EntityType=\"migrations.migration_lock\" />\n<EntitySet Name=\"migration_status\" EntityType=\"migrations.migration_status\" />\n\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>","{\"vocab\":\"example\",\"abstractSqlModel\":{\"tables\":{\"device\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"device\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"device\",\"modelName\":\"device\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"deviceb\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"deviceb\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"deviceb\",\"modelName\":\"deviceb\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"note\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"rules\":[],\"synonyms\":{}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"example\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"device\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"note\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"type\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"deviceb\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"note\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"type\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\t\t\t\t\t<EntityContainer Name=\"exampleService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"device\" EntityType=\"example.device\" />\n<EntitySet Name=\"deviceb\" EntityType=\"example.deviceb\" />\n\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>"}},"sqlModel":{"7.22.0+postgres":{"{\"tables\":{\"model\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"is of-vocabulary\",\"required\":true,\"references\":{\"resourceName\":\"vocabulary\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"model type\",\"required\":true,\"references\":{\"resourceName\":\"model type\",\"fieldName\":null}},{\"dataType\":\"JSON\",\"fieldName\":\"model value\",\"required\":true,\"references\":{\"resourceName\":\"model value\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"model\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"model\",\"modelName\":\"model\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model value\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model value\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"vocabulary\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}},\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"rules\":[],\"synonyms\":{}}":{"synonyms":{},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model value":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"vocabulary":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}},"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"tables":{"model":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"is of-vocabulary","required":true,"references":{"resourceName":"vocabulary","fieldName":null}},{"dataType":"Short Text","fieldName":"model type","required":true,"references":{"resourceName":"model type","fieldName":null}},{"dataType":"JSON","fieldName":"model value","required":true,"references":{"resourceName":"model value","fieldName":null}}],"primitive":false,"name":"model","indexes":[],"idField":"id","resourceName":"model","modelName":"model","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model value","localFields":{"created_at":true,"modified_at":true,"id":true,"is_of__vocabulary":true,"model_type":true,"model_value":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"model\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"is of-vocabulary\" VARCHAR(255) NOT NULL\n,\t\"model type\" VARCHAR(255) NOT NULL\n,\t\"model value\" TEXT NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'model'\n\tAND \"trigger_name\" = 'model_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"model_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"model\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"model\";","DROP TRIGGER \"model_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]},"{\"tables\":{\"permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"permission\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"permission\",\"modelName\":\"permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"role\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"role\",\"modelName\":\"role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"role-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"role\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"role-has-permission\",\"modelName\":\"role has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"actor\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"actor\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"actor\",\"modelName\":\"actor\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"user\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"ConceptType\",\"fieldName\":\"actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Short Text\",\"fieldName\":\"username\",\"required\":true,\"references\":{\"resourceName\":\"username\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Hashed\",\"fieldName\":\"password\",\"required\":true,\"references\":{\"resourceName\":\"password\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"user\",\"modelName\":\"user\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"username\"},\"user-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-role\",\"modelName\":\"user has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"user-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-permission\",\"modelName\":\"user has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"key\",\"required\":true,\"references\":{\"resourceName\":\"key\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"is of-actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"description\",\"required\":false,\"references\":{\"resourceName\":\"description\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"api key\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"api key\",\"modelName\":\"api key\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"key\"},\"api key-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-role\",\"modelName\":\"api key has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-permission\",\"modelName\":\"api key has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"username\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"password\":{\"Hashed\":{\"$\":[\"Hashed\"]},\"has\":{\"Hashed\":{\"$\":[\"Hashed\"]}}},\"name\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"expiry date\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"description\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]}}},\"name\":{\"$\":[\"name\"]},\"is of\":{\"role\":{\"$\":[\"id\",[\"role-has-permission\",\"permission\"]]},\"user\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-permission\",\"permission\"]]}},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]}}},\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}},\"is of\":{\"user\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-role\",\"role\"]]}}},\"role-has-permission\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}}},\"actor\":{\"is of\":{\"user\":{\"$\":[\"id\",[\"user\",\"actor\"]]}},\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]},\"has\":{\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]}}},\"user\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"has\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}},\"user\":{\"has\":{\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]}},\"user-has-role\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"role\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"user-has-permission\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"permission\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"is of\":{\"actor\":{\"$\":[\"id\",[\"api key-is of-actor\",\"api key\"]]}}},\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"is of\":{\"actor\":{\"$\":[\"is of-actor\",[\"actor\",\"id\"]]}},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key-has-role\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}},\"api key-has-permission\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}}},\"rules\":[],\"synonyms\":{\"user role\":\"user-has-role\",\"user permission\":\"user-has-permission\"}}":{"synonyms":{"user role":"user-has-role","user permission":"user-has-permission"},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"username":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"password":{"Hashed":{"$":["Hashed"]},"has":{"Hashed":{"$":["Hashed"]}}},"name":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"expiry date":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"description":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"permission":{"has":{"name":{"$":["name"]},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"permission":{"has":{"name":{"$":["name"]}}},"name":{"$":["name"]},"is of":{"role":{"$":["id",["role-has-permission","permission"]]},"user":{"$":["id",["user-has-permission","permission"]]},"api key":{"$":["id",["api key-has-permission","permission"]]}},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]}}},"name":{"$":["name"]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}},"is of":{"user":{"$":["id",["user-has-role","role"]]},"api key":{"$":["id",["api key-has-role","role"]]}}},"role-has-permission":{"role":{"$":["role",["role","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"role":{"$":["role",["role","id"]]}}},"actor":{"is of":{"user":{"$":["id",["user","actor"]]}},"api key":{"$":["id",["api key","is of-actor"]]},"has":{"api key":{"$":["id",["api key","is of-actor"]]}}},"user":{"actor":{"$":["actor",["actor","id"]]},"has":{"actor":{"$":["actor",["actor","id"]]},"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"user":{"has":{"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"permission":{"$":["id",["user-has-permission","user"]]}},"user":{"has":{"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"username":{"$":["username"]},"password":{"$":["password"]}},"user-has-role":{"user":{"$":["user",["user","id"]],"has":{"role":{"has":{"expiry date":{"$":["expiry date"]}}}}},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"user-has-permission":{"user":{"$":["user",["user","id"]],"has":{"permission":{"has":{"expiry date":{"$":["expiry date"]}}}}},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"is of":{"actor":{"$":["id",["api key-is of-actor","api key"]]}}},"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"is of":{"actor":{"$":["is of-actor",["actor","id"]]}},"name":{"$":["name"]},"description":{"$":["description"]}},"api key-has-role":{"api key":{"$":["api key",["api key","id"]]},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}},"api key-has-permission":{"api key":{"$":["api key",["api key","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}}},"tables":{"permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"permission","indexes":[],"idField":"id","resourceName":"permission","modelName":"permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true},"fetchProcessingFields":{}},"role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"role","indexes":[],"idField":"id","resourceName":"role","modelName":"role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true},"fetchProcessingFields":{}},"role-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"role-has-permission","indexes":[{"type":"UNIQUE","fields":["role","permission"]}],"idField":"id","resourceName":"role-has-permission","modelName":"role has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}},"actor":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"actor","indexes":[],"idField":"id","resourceName":"actor","modelName":"actor","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id","localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}},"user":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"ConceptType","fieldName":"actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Short Text","fieldName":"username","required":true,"references":{"resourceName":"username","fieldName":null},"index":"UNIQUE"},{"dataType":"Hashed","fieldName":"password","required":true,"references":{"resourceName":"password","fieldName":null}}],"primitive":false,"name":"user","indexes":[],"idField":"id","resourceName":"user","modelName":"user","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"username","localFields":{"created_at":true,"modified_at":true,"id":true,"actor":true,"username":true,"password":true},"fetchProcessingFields":{}},"user-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-role","indexes":[{"type":"UNIQUE","fields":["user","role"]}],"idField":"id","resourceName":"user-has-role","modelName":"user has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true,"expiry_date":true},"fetchProcessingFields":{}},"user-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-permission","indexes":[{"type":"UNIQUE","fields":["user","permission"]}],"idField":"id","resourceName":"user-has-permission","modelName":"user has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true,"expiry_date":true},"fetchProcessingFields":{}},"api key":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"key","required":true,"references":{"resourceName":"key","fieldName":null},"index":"UNIQUE"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}},{"dataType":"ForeignKey","fieldName":"is of-actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"description","required":false,"references":{"resourceName":"description","fieldName":null}}],"primitive":false,"name":"api key","indexes":[],"idField":"id","resourceName":"api key","modelName":"api key","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"key","localFields":{"created_at":true,"modified_at":true,"id":true,"key":true,"expiry_date":true,"name":true,"description":true},"fetchProcessingFields":{}},"api key-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-role","indexes":[{"type":"UNIQUE","fields":["api key","role"]}],"idField":"id","resourceName":"api key-has-role","modelName":"api key has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}},"api key-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-permission","indexes":[{"type":"UNIQUE","fields":["api key","permission"]}],"idField":"id","resourceName":"api key-has-permission","modelName":"api key has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" TEXT NOT NULL UNIQUE\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'permission'\n\tAND \"trigger_name\" = 'permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"role\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" TEXT NOT NULL UNIQUE\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'role'\n\tAND \"trigger_name\" = 'role_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"role_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"role\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"role-has-permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"role\" INTEGER NOT NULL\n,\t\"permission\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\tFOREIGN KEY (\"role\") REFERENCES \"role\" (\"id\")\n,\tFOREIGN KEY (\"permission\") REFERENCES \"permission\" (\"id\")\n,\tUNIQUE(\"role\", \"permission\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'role-has-permission'\n\tAND \"trigger_name\" = 'role-has-permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"role-has-permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"role-has-permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"actor\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'actor'\n\tAND \"trigger_name\" = 'actor_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"actor_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"actor\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"user\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"actor\" INTEGER NOT NULL\n,\t\"username\" VARCHAR(255) NOT NULL UNIQUE\n,\t\"password\" CHAR(60) NOT NULL\n,\tFOREIGN KEY (\"actor\") REFERENCES \"actor\" (\"id\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'user'\n\tAND \"trigger_name\" = 'user_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"user_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"user\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"user-has-role\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"user\" INTEGER NOT NULL\n,\t\"role\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"expiry date\" TIMESTAMP NULL\n,\tFOREIGN KEY (\"user\") REFERENCES \"user\" (\"id\")\n,\tFOREIGN KEY (\"role\") REFERENCES \"role\" (\"id\")\n,\tUNIQUE(\"user\", \"role\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'user-has-role'\n\tAND \"trigger_name\" = 'user-has-role_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"user-has-role_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"user-has-role\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"user-has-permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"user\" INTEGER NOT NULL\n,\t\"permission\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"expiry date\" TIMESTAMP NULL\n,\tFOREIGN KEY (\"user\") REFERENCES \"user\" (\"id\")\n,\tFOREIGN KEY (\"permission\") REFERENCES \"permission\" (\"id\")\n,\tUNIQUE(\"user\", \"permission\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'user-has-permission'\n\tAND \"trigger_name\" = 'user-has-permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"user-has-permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"user-has-permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"api key\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"key\" VARCHAR(255) NOT NULL UNIQUE\n,\t\"expiry date\" TIMESTAMP NULL\n,\t\"is of-actor\" INTEGER NOT NULL\n,\t\"name\" TEXT NULL\n,\t\"description\" TEXT NULL\n,\tFOREIGN KEY (\"is of-actor\") REFERENCES \"actor\" (\"id\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'api key'\n\tAND \"trigger_name\" = 'api key_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"api key_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"api key\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"api key-has-role\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"api key\" INTEGER NOT NULL\n,\t\"role\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\tFOREIGN KEY (\"api key\") REFERENCES \"api key\" (\"id\")\n,\tFOREIGN KEY (\"role\") REFERENCES \"role\" (\"id\")\n,\tUNIQUE(\"api key\", \"role\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'api key-has-role'\n\tAND \"trigger_name\" = 'api key-has-role_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"api key-has-role_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"api key-has-role\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"api key-has-permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"api key\" INTEGER NOT NULL\n,\t\"permission\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\tFOREIGN KEY (\"api key\") REFERENCES \"api key\" (\"id\")\n,\tFOREIGN KEY (\"permission\") REFERENCES \"permission\" (\"id\")\n,\tUNIQUE(\"api key\", \"permission\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'api key-has-permission'\n\tAND \"trigger_name\" = 'api key-has-permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"api key-has-permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"api key-has-permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"api key-has-permission\";","DROP TRIGGER \"api key-has-permission_trigger_update_modified_at\";","DROP TABLE \"api key-has-role\";","DROP TRIGGER \"api key-has-role_trigger_update_modified_at\";","DROP TABLE \"api key\";","DROP TRIGGER \"api key_trigger_update_modified_at\";","DROP TABLE \"user-has-permission\";","DROP TRIGGER \"user-has-permission_trigger_update_modified_at\";","DROP TABLE \"user-has-role\";","DROP TRIGGER \"user-has-role_trigger_update_modified_at\";","DROP TABLE \"user\";","DROP TRIGGER \"user_trigger_update_modified_at\";","DROP TABLE \"actor\";","DROP TRIGGER \"actor_trigger_update_modified_at\";","DROP TABLE \"role-has-permission\";","DROP TRIGGER \"role-has-permission_trigger_update_modified_at\";","DROP TABLE \"role\";","DROP TRIGGER \"role_trigger_update_modified_at\";","DROP TABLE \"permission\";","DROP TRIGGER \"permission_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]},"{\"tables\":{\"migration\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"JSON\",\"fieldName\":\"executed migrations\",\"required\":true,\"references\":{\"resourceName\":\"executed migrations\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration\",\"modelName\":\"migration\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration lock\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"migration lock\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration lock\",\"modelName\":\"migration lock\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration status\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"migration key\",\"required\":true,\"references\":{\"resourceName\":\"migration key\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"start time\",\"required\":false,\"references\":{\"resourceName\":\"start time\",\"fieldName\":null}},{\"dataType\":\"Date Time\",\"fieldName\":\"last run time\",\"required\":false,\"references\":{\"resourceName\":\"last run time\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"run count\",\"required\":true,\"references\":{\"resourceName\":\"run count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"migrated row count\",\"required\":false,\"references\":{\"resourceName\":\"migrated row count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"error count\",\"required\":false,\"references\":{\"resourceName\":\"error count\",\"fieldName\":null}},{\"dataType\":\"Boolean\",\"fieldName\":\"is backing off\",\"required\":true},{\"dataType\":\"Date Time\",\"fieldName\":\"converged time\",\"required\":false,\"references\":{\"resourceName\":\"converged time\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration status\",\"indexes\":[],\"idField\":\"migration key\",\"resourceName\":\"migration status\",\"modelName\":\"migration status\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"migration key\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"executed migrations\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"lock time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}}},\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}}},\"model name\":{\"$\":[\"model name\"]}},\"migration key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"start time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"last run time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"run count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"migrated row count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"error count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"converged time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"is backing off\":{\"$\":[\"is backing off\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"rules\":[],\"synonyms\":{}}":{"synonyms":{},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"executed migrations":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"lock time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}}},"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration lock":{"has":{"model name":{"$":["model name"]}},"migration lock":{"has":{"model name":{"$":["model name"]}}},"model name":{"$":["model name"]}},"migration key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"start time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"last run time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"run count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"migrated row count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"error count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"converged time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}}},"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"is backing off":{"$":["is backing off"]},"converged time":{"$":["converged time"]}}},"tables":{"migration":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"JSON","fieldName":"executed migrations","required":true,"references":{"resourceName":"executed migrations","fieldName":null}}],"primitive":false,"name":"migration","indexes":[],"idField":"model name","resourceName":"migration","modelName":"migration","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name","localFields":{"created_at":true,"modified_at":true,"model_name":true,"executed_migrations":true},"fetchProcessingFields":{}},"migration lock":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"}],"primitive":false,"name":"migration lock","indexes":[],"idField":"model name","resourceName":"migration lock","modelName":"migration lock","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name","localFields":{"created_at":true,"modified_at":true,"model_name":true},"fetchProcessingFields":{}},"migration status":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"migration key","required":true,"references":{"resourceName":"migration key","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"start time","required":false,"references":{"resourceName":"start time","fieldName":null}},{"dataType":"Date Time","fieldName":"last run time","required":false,"references":{"resourceName":"last run time","fieldName":null}},{"dataType":"Integer","fieldName":"run count","required":true,"references":{"resourceName":"run count","fieldName":null}},{"dataType":"Integer","fieldName":"migrated row count","required":false,"references":{"resourceName":"migrated row count","fieldName":null}},{"dataType":"Integer","fieldName":"error count","required":false,"references":{"resourceName":"error count","fieldName":null}},{"dataType":"Boolean","fieldName":"is backing off","required":true},{"dataType":"Date Time","fieldName":"converged time","required":false,"references":{"resourceName":"converged time","fieldName":null}}],"primitive":false,"name":"migration status","indexes":[],"idField":"migration key","resourceName":"migration status","modelName":"migration status","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"migration key","localFields":{"created_at":true,"modified_at":true,"migration_key":true,"start_time":true,"last_run_time":true,"run_count":true,"migrated_row_count":true,"error_count":true,"is_backing_off":true,"converged_time":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"migration\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"model name\" VARCHAR(255) NOT NULL PRIMARY KEY\n,\t\"executed migrations\" TEXT NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'migration'\n\tAND \"trigger_name\" = 'migration_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"migration_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"migration\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"migration lock\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"model name\" VARCHAR(255) NOT NULL PRIMARY KEY\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'migration lock'\n\tAND \"trigger_name\" = 'migration lock_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"migration lock_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"migration lock\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"migration status\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"migration key\" VARCHAR(255) NOT NULL PRIMARY KEY\n,\t\"start time\" TIMESTAMP NULL\n,\t\"last run time\" TIMESTAMP NULL\n,\t\"run count\" INTEGER NOT NULL\n,\t\"migrated row count\" INTEGER NULL\n,\t\"error count\" INTEGER NULL\n,\t\"is backing off\" INTEGER DEFAULT 0 NOT NULL\n,\t\"converged time\" TIMESTAMP NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'migration status'\n\tAND \"trigger_name\" = 'migration status_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"migration status_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"migration status\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"migration status\";","DROP TRIGGER \"migration status_trigger_update_modified_at\";","DROP TABLE \"migration lock\";","DROP TRIGGER \"migration lock_trigger_update_modified_at\";","DROP TABLE \"migration\";","DROP TRIGGER \"migration_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]},"{\"tables\":{\"device\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"device\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"device\",\"modelName\":\"device\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"deviceb\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"deviceb\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"deviceb\",\"modelName\":\"deviceb\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"note\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"rules\":[],\"synonyms\":{}}":{"synonyms":{},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"note":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"tables":{"device":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"device","indexes":[],"idField":"id","resourceName":"device","modelName":"device","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true,"note":true,"type":true},"fetchProcessingFields":{}},"deviceb":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"deviceb","indexes":[],"idField":"id","resourceName":"deviceb","modelName":"deviceb","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true,"note":true,"type":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"device\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" VARCHAR(255) NULL\n,\t\"note\" TEXT NULL\n,\t\"type\" VARCHAR(255) NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'device'\n\tAND \"trigger_name\" = 'device_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"device_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"device\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"deviceb\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" VARCHAR(255) NULL\n,\t\"note\" TEXT NULL\n,\t\"type\" VARCHAR(255) NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'deviceb'\n\tAND \"trigger_name\" = 'deviceb_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"deviceb_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"deviceb\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"deviceb\";","DROP TRIGGER \"deviceb_trigger_update_modified_at\";","DROP TABLE \"device\";","DROP TRIGGER \"device_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]}}}}
1
+ {"lfModel":{"1.4.3+1.4.3":{"\"Vocabulary: dev\\n\\nTerm: model value\\n\\tConcept Type: JSON (Type)\\nTerm: model\\n\\tReference Scheme: model value\\nTerm: vocabulary\\n\\tConcept Type: Short Text (Type)\\nTerm: model type\\n\\tConcept Type: Short Text (Type)\\n\\nFact Type: model is of vocabulary\\n\\tNecessity: Each model is of exactly one vocabulary\\nFact Type: model has model type\\n\\tNecessity: Each model has exactly one model type\\nFact Type: model has model value\\n\\tNecessity: Each model has exactly one model value\\n\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","dev",["Attributes"]],["Term","model value","dev",["Attributes",["ConceptType",["Term","JSON","Type"]]]],["Term","model","dev",["Attributes",["ReferenceScheme",["Term","model value","dev"]]]],["Term","vocabulary","dev",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","model type","dev",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["FactType",["Term","model","dev"],["Verb","is of",false],["Term","vocabulary","dev"],["Attributes",["SynonymousForm",[["Term","vocabulary","dev"],["Verb","has",false],["Term","model","dev"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","model","dev"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","vocabulary","dev"]],["AtomicFormulation",["FactType",["Term","model","dev"],["Verb","is of",false],["Term","vocabulary","dev"]],["RoleBinding",["Term","model","dev"],0],["RoleBinding",["Term","vocabulary","dev"],1]]]]],["StructuredEnglish","It is necessary that Each model is of exactly one vocabulary"]]]]],["FactType",["Term","model","dev"],["Verb","has",false],["Term","model type","dev"],["Attributes",["SynonymousForm",[["Term","model type","dev"],["Verb","is of",false],["Term","model","dev"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","model","dev"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model type","dev"]],["AtomicFormulation",["FactType",["Term","model","dev"],["Verb","has",false],["Term","model type","dev"]],["RoleBinding",["Term","model","dev"],0],["RoleBinding",["Term","model type","dev"],1]]]]],["StructuredEnglish","It is necessary that Each model has exactly one model type"]]]]],["FactType",["Term","model","dev"],["Verb","has",false],["Term","model value","dev"],["Attributes",["SynonymousForm",[["Term","model value","dev"],["Verb","is of",false],["Term","model","dev"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","model","dev"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model value","dev"]],["AtomicFormulation",["FactType",["Term","model","dev"],["Verb","has",false],["Term","model value","dev"]],["RoleBinding",["Term","model","dev"],0],["RoleBinding",["Term","model value","dev"],1]]]]],["StructuredEnglish","It is necessary that Each model has exactly one model value"]]]]]],"\"Vocabulary: Auth\\n\\nTerm: username\\n\\tConcept Type: Short Text (Type)\\nTerm: password\\n\\tConcept Type: Hashed (Type)\\nTerm: name\\n\\tConcept Type: Text (Type)\\nTerm: key\\n\\tConcept Type: Short Text (Type)\\nTerm: expiry date\\n\\tConcept Type: Date Time (Type)\\nTerm: description\\n\\tConcept Type: Text (Type)\\n\\nTerm: permission\\n\\tReference Scheme: name\\nFact type: permission has name\\n\\tNecessity: Each permission has exactly one name.\\n\\tNecessity: Each name is of exactly one permission.\\n\\nTerm: role\\n\\tReference Scheme: name\\nFact type: role has name\\n\\tNecessity: Each role has exactly one name.\\n\\tNecessity: Each name is of exactly one role.\\nFact type: role has permission\\n\\nTerm: actor\\n\\nTerm: user\\n\\tReference Scheme: username\\n\\tConcept Type: actor\\nFact type: user has username\\n\\tNecessity: Each user has exactly one username.\\n\\tNecessity: Each username is of exactly one user.\\nFact type: user has password\\n\\tNecessity: Each user has exactly one password.\\nFact type: user has role\\n\\tNote: A 'user' will inherit all the 'permissions' that the 'role' has.\\n\\tTerm Form: user role\\n\\tFact type: user role has expiry date\\n\\t\\tNecessity: Each user role has at most one expiry date.\\nFact type: user has permission\\n\\tTerm Form: user permission\\n\\tFact type: user permission has expiry date\\n\\t\\tNecessity: Each user permission has at most one expiry date.\\n\\nTerm: api key\\n\\tReference Scheme: key\\nFact type: api key has key\\n\\tNecessity: each api key has exactly one key\\n\\tNecessity: each key is of exactly one api key\\nFact type: api key has expiry date\\n\\tNecessity: each api key has at most one expiry date.\\nFact type: api key has role\\n\\tNote: An 'api key' will inherit all the 'permissions' that the 'role' has.\\nFact type: api key has permission\\nFact type: api key is of actor\\n\\tNecessity: each api key is of exactly one actor\\nFact type: api key has name\\n\\tNecessity: Each api key has at most one name.\\nFact type: api key has description\\n\\tNecessity: Each api key has at most one description.\\n\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","Auth",["Attributes"]],["Term","username","Auth",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","password","Auth",["Attributes",["ConceptType",["Term","Hashed","Type"]]]],["Term","name","Auth",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","key","Auth",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","expiry date","Auth",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","description","Auth",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","permission","Auth",["Attributes",["ReferenceScheme",["Term","name","Auth"]]]],["FactType",["Term","permission","Auth"],["Verb","has",false],["Term","name","Auth"],["Attributes",["SynonymousForm",[["Term","name","Auth"],["Verb","is of",false],["Term","permission","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","permission","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","name","Auth"]],["AtomicFormulation",["FactType",["Term","permission","Auth"],["Verb","has",false],["Term","name","Auth"]],["RoleBinding",["Term","permission","Auth"],0],["RoleBinding",["Term","name","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each permission has exactly one name."]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","name","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","permission","Auth"]],["AtomicFormulation",["FactType",["Term","name","Auth"],["Verb","is of",false],["Term","permission","Auth"]],["RoleBinding",["Term","name","Auth"],0],["RoleBinding",["Term","permission","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each name is of exactly one permission."]]]]],["Term","role","Auth",["Attributes",["ReferenceScheme",["Term","name","Auth"]]]],["FactType",["Term","role","Auth"],["Verb","has",false],["Term","name","Auth"],["Attributes",["SynonymousForm",[["Term","name","Auth"],["Verb","is of",false],["Term","role","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","role","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","name","Auth"]],["AtomicFormulation",["FactType",["Term","role","Auth"],["Verb","has",false],["Term","name","Auth"]],["RoleBinding",["Term","role","Auth"],0],["RoleBinding",["Term","name","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each role has exactly one name."]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","name","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","role","Auth"]],["AtomicFormulation",["FactType",["Term","name","Auth"],["Verb","is of",false],["Term","role","Auth"]],["RoleBinding",["Term","name","Auth"],0],["RoleBinding",["Term","role","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each name is of exactly one role."]]]]],["FactType",["Term","role","Auth"],["Verb","has",false],["Term","permission","Auth"],["Attributes",["SynonymousForm",[["Term","permission","Auth"],["Verb","is of",false],["Term","role","Auth"]]]]],["Term","actor","Auth",["Attributes"]],["Term","user","Auth",["Attributes",["ReferenceScheme",["Term","username","Auth"]],["ConceptType",["Term","actor","Auth"]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","username","Auth"],["Attributes",["SynonymousForm",[["Term","username","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","username","Auth"]],["AtomicFormulation",["FactType",["Term","user","Auth"],["Verb","has",false],["Term","username","Auth"]],["RoleBinding",["Term","user","Auth"],0],["RoleBinding",["Term","username","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user has exactly one username."]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","username","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","user","Auth"]],["AtomicFormulation",["FactType",["Term","username","Auth"],["Verb","is of",false],["Term","user","Auth"]],["RoleBinding",["Term","username","Auth"],0],["RoleBinding",["Term","user","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each username is of exactly one user."]]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","password","Auth"],["Attributes",["SynonymousForm",[["Term","password","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","password","Auth"]],["AtomicFormulation",["FactType",["Term","user","Auth"],["Verb","has",false],["Term","password","Auth"]],["RoleBinding",["Term","user","Auth"],0],["RoleBinding",["Term","password","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user has exactly one password."]]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","role","Auth"],["Attributes",["SynonymousForm",[["Term","role","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["Note","A 'user' will inherit all the 'permissions' that the 'role' has."],["TermForm",["Term","user role","Auth"]]]],["FactType",["Term","user role","Auth"],["Verb","has",false],["Term","expiry date","Auth"],["Attributes",["SynonymousForm",[["Term","expiry date","Auth"],["Verb","is of",false],["Term","user role","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user role","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","expiry date","Auth"]],["AtomicFormulation",["FactType",["Term","user role","Auth"],["Verb","has",false],["Term","expiry date","Auth"]],["RoleBinding",["Term","user role","Auth"],0],["RoleBinding",["Term","expiry date","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user role has at most one expiry date."]]]]],["FactType",["Term","user","Auth"],["Verb","has",false],["Term","permission","Auth"],["Attributes",["SynonymousForm",[["Term","permission","Auth"],["Verb","is of",false],["Term","user","Auth"]]],["TermForm",["Term","user permission","Auth"]]]],["FactType",["Term","user permission","Auth"],["Verb","has",false],["Term","expiry date","Auth"],["Attributes",["SynonymousForm",[["Term","expiry date","Auth"],["Verb","is of",false],["Term","user permission","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","user permission","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","expiry date","Auth"]],["AtomicFormulation",["FactType",["Term","user permission","Auth"],["Verb","has",false],["Term","expiry date","Auth"]],["RoleBinding",["Term","user permission","Auth"],0],["RoleBinding",["Term","expiry date","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each user permission has at most one expiry date."]]]]],["Term","api key","Auth",["Attributes",["ReferenceScheme",["Term","key","Auth"]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","key","Auth"],["Attributes",["SynonymousForm",[["Term","key","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","key","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","key","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","key","Auth"],1]]]]],["StructuredEnglish","It is necessary that each api key has exactly one key"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","key","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","api key","Auth"]],["AtomicFormulation",["FactType",["Term","key","Auth"],["Verb","is of",false],["Term","api key","Auth"]],["RoleBinding",["Term","key","Auth"],0],["RoleBinding",["Term","api key","Auth"],1]]]]],["StructuredEnglish","It is necessary that each key is of exactly one api key"]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","expiry date","Auth"],["Attributes",["SynonymousForm",[["Term","expiry date","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","expiry date","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","expiry date","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","expiry date","Auth"],1]]]]],["StructuredEnglish","It is necessary that each api key has at most one expiry date."]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","role","Auth"],["Attributes",["SynonymousForm",[["Term","role","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Note","An 'api key' will inherit all the 'permissions' that the 'role' has."]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","permission","Auth"],["Attributes",["SynonymousForm",[["Term","permission","Auth"],["Verb","is of",false],["Term","api key","Auth"]]]]],["FactType",["Term","api key","Auth"],["Verb","is of",false],["Term","actor","Auth"],["Attributes",["SynonymousForm",[["Term","actor","Auth"],["Verb","has",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","actor","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","is of",false],["Term","actor","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","actor","Auth"],1]]]]],["StructuredEnglish","It is necessary that each api key is of exactly one actor"]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","name","Auth"],["Attributes",["SynonymousForm",[["Term","name","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","name","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","name","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","name","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each api key has at most one name."]]]]],["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","description","Auth"],["Attributes",["SynonymousForm",[["Term","description","Auth"],["Verb","is of",false],["Term","api key","Auth"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","api key","Auth"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","description","Auth"]],["AtomicFormulation",["FactType",["Term","api key","Auth"],["Verb","has",false],["Term","description","Auth"]],["RoleBinding",["Term","api key","Auth"],0],["RoleBinding",["Term","description","Auth"],1]]]]],["StructuredEnglish","It is necessary that Each api key has at most one description."]]]]]],"\"Vocabulary: migrations\\n\\nTerm: model name\\n\\tConcept Type: Short Text (Type)\\nTerm: executed migrations\\n\\tConcept Type: JSON (Type)\\nTerm: lock time\\n\\tConcept Type: Date Time (Type)\\n\\nTerm: migration\\n\\tReference Scheme: model name\\n\\tDatabase ID Field: model name\\nFact Type: migration has model name\\n\\tNecessity: each migration has exactly one model name\\nFact Type: migration has executed migrations\\n\\tNecessity: each migration has exactly one executed migrations\\n\\nTerm: migration lock\\n\\tReference Scheme: model name\\n\\tDatabase ID Field: model name\\n\\nFact Type: migration lock has model name\\n\\tNecessity: each migration lock has exactly one model name\\n\\nTerm: migration key\\n\\tConcept Type: Short Text (Type)\\nTerm: start time\\n\\tConcept Type: Date Time (Type)\\nTerm: last run time\\n\\tConcept Type: Date Time (Type)\\nTerm: run count\\n\\tConcept Type: Integer (Type)\\nTerm: migrated row count\\n\\tConcept Type: Integer (Type)\\nTerm: error count\\n\\tConcept Type: Integer (Type)\\nTerm: converged time \\n\\tConcept Type: Date Time (Type)\\n\\n\\nTerm: migration status\\n\\tReference Scheme: migration key\\n\\tDatabase ID Field: migration key\\n\\nFact Type: migration status has migration key\\n\\tNecessity: each migration status has exactly one migration key\\n\\nFact Type: migration status has start time\\n\\tNecessity: each migration status has at most one start time\\n\\nFact Type: migration status has last run time\\n\\tNecessity: each migration status has at most one last run time\\n\\nFact Type: migration status has run count\\n\\tNecessity: each migration status has exactly one run count\\n\\nFact Type: migration status has migrated row count\\n\\tNecessity: each migration status has at most one migrated row count\\n\\nFact Type: migration status has error count\\n\\tNecessity: each migration status has at most one error count\\n\\nFact Type: migration status is backing off\\n\\nFact Type: migration status has converged time \\n\\tNecessity: each migration status has at most one converged time\\n\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","migrations",["Attributes"]],["Term","model name","migrations",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","executed migrations","migrations",["Attributes",["ConceptType",["Term","JSON","Type"]]]],["Term","lock time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","migration","migrations",["Attributes",["ReferenceScheme",["Term","model name","migrations"]],["DatabaseIDField","model name"]]],["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","model name","migrations"],["Attributes",["SynonymousForm",[["Term","model name","migrations"],["Verb","is of",false],["Term","migration","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model name","migrations"]],["AtomicFormulation",["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","model name","migrations"]],["RoleBinding",["Term","migration","migrations"],0],["RoleBinding",["Term","model name","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration has exactly one model name"]]]]],["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","executed migrations","migrations"],["Attributes",["SynonymousForm",[["Term","executed migrations","migrations"],["Verb","is of",false],["Term","migration","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","executed migrations","migrations"]],["AtomicFormulation",["FactType",["Term","migration","migrations"],["Verb","has",false],["Term","executed migrations","migrations"]],["RoleBinding",["Term","migration","migrations"],0],["RoleBinding",["Term","executed migrations","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration has exactly one executed migrations"]]]]],["Term","migration lock","migrations",["Attributes",["ReferenceScheme",["Term","model name","migrations"]],["DatabaseIDField","model name"]]],["FactType",["Term","migration lock","migrations"],["Verb","has",false],["Term","model name","migrations"],["Attributes",["SynonymousForm",[["Term","model name","migrations"],["Verb","is of",false],["Term","migration lock","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration lock","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","model name","migrations"]],["AtomicFormulation",["FactType",["Term","migration lock","migrations"],["Verb","has",false],["Term","model name","migrations"]],["RoleBinding",["Term","migration lock","migrations"],0],["RoleBinding",["Term","model name","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration lock has exactly one model name"]]]]],["Term","migration key","migrations",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","start time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","last run time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","run count","migrations",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","migrated row count","migrations",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","error count","migrations",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","converged time","migrations",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["Term","migration status","migrations",["Attributes",["ReferenceScheme",["Term","migration key","migrations"]],["DatabaseIDField","migration key"]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migration key","migrations"],["Attributes",["SynonymousForm",[["Term","migration key","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","migration key","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migration key","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","migration key","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has exactly one migration key"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","start time","migrations"],["Attributes",["SynonymousForm",[["Term","start time","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","start time","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","start time","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","start time","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one start time"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","last run time","migrations"],["Attributes",["SynonymousForm",[["Term","last run time","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","last run time","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","last run time","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","last run time","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one last run time"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","run count","migrations"],["Attributes",["SynonymousForm",[["Term","run count","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","run count","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","run count","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","run count","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has exactly one run count"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migrated row count","migrations"],["Attributes",["SynonymousForm",[["Term","migrated row count","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","migrated row count","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","migrated row count","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","migrated row count","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one migrated row count"]]]]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","error count","migrations"],["Attributes",["SynonymousForm",[["Term","error count","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","error count","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","error count","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","error count","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one error count"]]]]],["FactType",["Term","migration status","migrations"],["Verb","is backing off",false],["Attributes"]],["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","converged time","migrations"],["Attributes",["SynonymousForm",[["Term","converged time","migrations"],["Verb","is of",false],["Term","migration status","migrations"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","migration status","migrations"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","converged time","migrations"]],["AtomicFormulation",["FactType",["Term","migration status","migrations"],["Verb","has",false],["Term","converged time","migrations"]],["RoleBinding",["Term","migration status","migrations"],0],["RoleBinding",["Term","converged time","migrations"],1]]]]],["StructuredEnglish","It is necessary that each migration status has at most one converged time"]]]]]],"\"Vocabulary: example\\n\\nTerm: name\\n\\t Concept Type: Short Text (Type)\\n\\nTerm: note\\n\\t Concept Type: Text (Type)\\n\\nTerm: type\\n\\t Concept Type: Short Text (Type)\\n\\nTerm: device\\n\\nFact Type: device has name\\n\\t Necessity: each device has at most one name.\\n\\nFact Type: device has note\\n\\t Necessity: each device has at most one note.\\n\\nFact Type: device has type\\n\\t Necessity: each device has exactly one type.\\n\\nTerm: deviceb\\n\\nFact Type: deviceb has name\\n\\t Necessity: each deviceb has at most one name.\\n\\nFact Type: deviceb has note\\n\\t Necessity: each deviceb has at most one note.\\n\\nFact Type: deviceb has type\\n\\t Necessity: each deviceb has exactly one type.\"":["Model",["Vocabulary","Type",["Attributes"]],["Term","Integer","Type",["Attributes"]],["Term","Real","Type",["Attributes"]],["Term","Text","Type",["Attributes"]],["Term","Date","Type",["Attributes"]],["Term","Date Time","Type",["Attributes"]],["Term","Time","Type",["Attributes"]],["Term","Interval","Type",["Attributes"]],["Term","File","Type",["Attributes"]],["Term","Big Integer","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Serial","Type",["Attributes",["ConceptType",["Term","Integer","Type"]],["Note","An auto-incrementing 'Integer'."]]],["Term","Case Insensitive Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that is compared case insensitively."]]],["Term","JSON","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will only allow valid JSON."]]],["Term","Hashed","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a hash."]]],["Term","SHA","Type",["Attributes",["ConceptType",["Term","Text","Type"]],["Note","A 'Text' type that will automatically be converted to a sha256 hash."]]],["Term","Length","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Name","Current Time","Type",["Attributes",["ConceptType",["Term","Date Time","Type"]]]],["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"],["Attributes",["SynonymousForm",[["Term","Length","Type"],["Verb","is of",false],["Term","Text","Type"]]],["Note","Length in characters"],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Text","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Length","Type"]],["AtomicFormulation",["FactType",["Term","Text","Type"],["Verb","has",false],["Term","Length","Type"]],["RoleBinding",["Term","Text","Type"],0],["RoleBinding",["Term","Length","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Text has exactly one Length"]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Integer","Type",["Number",1]],["Verb","is equal to",false],["Term","Integer","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","is equal to",false],["Term","Integer","Type",["Number",1]]]],["SynonymousForm",[["Term","Integer","Type",["Number",1]],["Verb","equals",false],["Term","Integer","Type",["Number",2]]]],["SynonymousForm",[["Term","Integer","Type",["Number",2]],["Verb","equals",false],["Term","Integer","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is less than or equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is greater than or equal to",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Real","Type",["Number",1]],["Verb","is equal to",false],["Term","Real","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","is equal to",false],["Term","Real","Type",["Number",1]]]],["SynonymousForm",[["Term","Real","Type",["Number",1]],["Verb","equals",false],["Term","Real","Type",["Number",2]]]],["SynonymousForm",[["Term","Real","Type",["Number",2]],["Verb","equals",false],["Term","Real","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is before",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is after",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date","Type",["Number",1]],["Verb","is equal to",false],["Term","Date","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","is equal to",false],["Term","Date","Type",["Number",1]]]],["SynonymousForm",[["Term","Date","Type",["Number",1]],["Verb","equals",false],["Term","Date","Type",["Number",2]]]],["SynonymousForm",[["Term","Date","Type",["Number",2]],["Verb","equals",false],["Term","Date","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is before",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is after",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Date Time","Type",["Number",1]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","is equal to",false],["Term","Date Time","Type",["Number",1]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",1]],["Verb","equals",false],["Term","Date Time","Type",["Number",2]]]],["SynonymousForm",[["Term","Date Time","Type",["Number",2]],["Verb","equals",false],["Term","Date Time","Type",["Number",1]]]]]],["FactType",["Term","Real","Type"],["Verb","is less than",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than",false],["Term","Integer","Type"]]]]],["FactType",["Term","Real","Type"],["Verb","is less than or equal to",false],["Term","Integer","Type"],["Attributes",["SynonymousForm",[["Term","Integer","Type"],["Verb","is greater than or equal to",false],["Term","Real","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is less than or equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is greater than or equal to",false],["Term","Integer","Type"]]]]],["FactType",["Term","Integer","Type"],["Verb","is equal to",false],["Term","Real","Type"],["Attributes",["SynonymousForm",[["Term","Real","Type"],["Verb","is equal to",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Real","Type"],["Verb","equals",false],["Term","Integer","Type"]]],["SynonymousForm",[["Term","Integer","Type"],["Verb","equals",false],["Term","Real","Type"]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","is equal to",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is equal to",false],["Term","Text","Type",["Number",1]]]],["SynonymousForm",[["Term","Text","Type",["Number",1]],["Verb","equals",false],["Term","Text","Type",["Number",2]]]],["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","equals",false],["Term","Text","Type",["Number",1]]]]]],["FactType",["Term","Text","Type",["Number",1]],["Verb","starts with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","ends with",false],["Term","Text","Type",["Number",2]],["Attributes"]],["FactType",["Term","Text","Type",["Number",1]],["Verb","contains",false],["Term","Text","Type",["Number",2]],["Attributes",["SynonymousForm",[["Term","Text","Type",["Number",2]],["Verb","is contained in",false],["Term","Text","Type",["Number",1]]]]]],["Term","Short Text","Type",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","Red Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Green Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Blue Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Alpha Component","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["Term","Color","Type",["Attributes",["ConceptType",["Term","Integer","Type"]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"],["Attributes",["SynonymousForm",[["Term","Red Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Red Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Red Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Red Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Red Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"],["Attributes",["SynonymousForm",[["Term","Green Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Green Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Green Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Green Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Green Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"],["Attributes",["SynonymousForm",[["Term","Blue Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Blue Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Blue Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Blue Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Blue Component"]]]]],["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"],["Attributes",["SynonymousForm",[["Term","Alpha Component","Type"],["Verb","is of",false],["Term","Color","Type"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","Color","Type"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","Alpha Component","Type"]],["AtomicFormulation",["FactType",["Term","Color","Type"],["Verb","has",false],["Term","Alpha Component","Type"]],["RoleBinding",["Term","Color","Type"],0],["RoleBinding",["Term","Alpha Component","Type"],1]]]]],["StructuredEnglish","It is necessary that Each Color has exactly one Alpha Component"]]]]],["Vocabulary","Default",["Attributes"]],["Vocabulary","example",["Attributes"]],["Term","name","example",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","note","example",["Attributes",["ConceptType",["Term","Text","Type"]]]],["Term","type","example",["Attributes",["ConceptType",["Term","Short Text","Type"]]]],["Term","device","example",["Attributes"]],["FactType",["Term","device","example"],["Verb","has",false],["Term","name","example"],["Attributes",["SynonymousForm",[["Term","name","example"],["Verb","is of",false],["Term","device","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","device","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","name","example"]],["AtomicFormulation",["FactType",["Term","device","example"],["Verb","has",false],["Term","name","example"]],["RoleBinding",["Term","device","example"],0],["RoleBinding",["Term","name","example"],1]]]]],["StructuredEnglish","It is necessary that each device has at most one name."]]]]],["FactType",["Term","device","example"],["Verb","has",false],["Term","note","example"],["Attributes",["SynonymousForm",[["Term","note","example"],["Verb","is of",false],["Term","device","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","device","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","note","example"]],["AtomicFormulation",["FactType",["Term","device","example"],["Verb","has",false],["Term","note","example"]],["RoleBinding",["Term","device","example"],0],["RoleBinding",["Term","note","example"],1]]]]],["StructuredEnglish","It is necessary that each device has at most one note."]]]]],["FactType",["Term","device","example"],["Verb","has",false],["Term","type","example"],["Attributes",["SynonymousForm",[["Term","type","example"],["Verb","is of",false],["Term","device","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","device","example"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","type","example"]],["AtomicFormulation",["FactType",["Term","device","example"],["Verb","has",false],["Term","type","example"]],["RoleBinding",["Term","device","example"],0],["RoleBinding",["Term","type","example"],1]]]]],["StructuredEnglish","It is necessary that each device has exactly one type."]]]]],["Term","deviceb","example",["Attributes"]],["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","name","example"],["Attributes",["SynonymousForm",[["Term","name","example"],["Verb","is of",false],["Term","deviceb","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","deviceb","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","name","example"]],["AtomicFormulation",["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","name","example"]],["RoleBinding",["Term","deviceb","example"],0],["RoleBinding",["Term","name","example"],1]]]]],["StructuredEnglish","It is necessary that each deviceb has at most one name."]]]]],["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","note","example"],["Attributes",["SynonymousForm",[["Term","note","example"],["Verb","is of",false],["Term","deviceb","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","deviceb","example"]],["AtMostNQuantification",["MaximumCardinality",["Number",1]],["Variable",["Number",1],["Term","note","example"]],["AtomicFormulation",["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","note","example"]],["RoleBinding",["Term","deviceb","example"],0],["RoleBinding",["Term","note","example"],1]]]]],["StructuredEnglish","It is necessary that each deviceb has at most one note."]]]]],["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","type","example"],["Attributes",["SynonymousForm",[["Term","type","example"],["Verb","is of",false],["Term","deviceb","example"]]],["Necessity",["Rule",["NecessityFormulation",["UniversalQuantification",["Variable",["Number",0],["Term","deviceb","example"]],["ExactQuantification",["Cardinality",["Number",1]],["Variable",["Number",1],["Term","type","example"]],["AtomicFormulation",["FactType",["Term","deviceb","example"],["Verb","has",false],["Term","type","example"]],["RoleBinding",["Term","deviceb","example"],0],["RoleBinding",["Term","type","example"],1]]]]],["StructuredEnglish","It is necessary that each deviceb has exactly one type."]]]]]]}},"abstractSqlModel":{"4.5.5+3.4.15":{"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"dev\",[\"Attributes\"]],[\"Term\",\"model value\",\"dev\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"JSON\",\"Type\"]]]],[\"Term\",\"model\",\"dev\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"model value\",\"dev\"]]]],[\"Term\",\"vocabulary\",\"dev\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"model type\",\"dev\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"vocabulary\",\"dev\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"vocabulary\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model\",\"dev\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"model\",\"dev\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"vocabulary\",\"dev\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"vocabulary\",\"dev\"]],[\"RoleBinding\",[\"Term\",\"model\",\"dev\"],0],[\"RoleBinding\",[\"Term\",\"vocabulary\",\"dev\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each model is of exactly one vocabulary\"]]]]],[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model type\",\"dev\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model type\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"model\",\"dev\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"model\",\"dev\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model type\",\"dev\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model type\",\"dev\"]],[\"RoleBinding\",[\"Term\",\"model\",\"dev\"],0],[\"RoleBinding\",[\"Term\",\"model type\",\"dev\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each model has exactly one model type\"]]]]],[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model value\",\"dev\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model value\",\"dev\"],[\"Verb\",\"is of\",false],[\"Term\",\"model\",\"dev\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"model\",\"dev\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model value\",\"dev\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"model\",\"dev\"],[\"Verb\",\"has\",false],[\"Term\",\"model value\",\"dev\"]],[\"RoleBinding\",[\"Term\",\"model\",\"dev\"],0],[\"RoleBinding\",[\"Term\",\"model value\",\"dev\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each model has exactly one model value\"]]]]]]":{"tables":{"model":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"is of-vocabulary","required":true,"references":{"resourceName":"vocabulary","fieldName":null}},{"dataType":"Short Text","fieldName":"model type","required":true,"references":{"resourceName":"model type","fieldName":null}},{"dataType":"JSON","fieldName":"model value","required":true,"references":{"resourceName":"model value","fieldName":null}}],"primitive":false,"name":"model","indexes":[],"idField":"id","resourceName":"model","modelName":"model","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model value"}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model value":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"vocabulary":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}},"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"rules":[],"synonyms":{}},"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"Auth\",[\"Attributes\"]],[\"Term\",\"username\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"password\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Hashed\",\"Type\"]]]],[\"Term\",\"name\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"key\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"expiry date\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"description\",\"Auth\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"permission\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"name\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"permission\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"permission\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"permission\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each permission has exactly one name.\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"name\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"permission\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"permission\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"permission\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each name is of exactly one permission.\"]]]]],[\"Term\",\"role\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"name\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"role\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"role\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"role\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each role has exactly one name.\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"name\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"role\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"role\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"role\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each name is of exactly one role.\"]]]]],[\"FactType\",[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"permission\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"role\",\"Auth\"]]]]],[\"Term\",\"actor\",\"Auth\",[\"Attributes\"]],[\"Term\",\"user\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"username\",\"Auth\"]],[\"ConceptType\",[\"Term\",\"actor\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"username\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"username\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"username\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"username\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"username\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user has exactly one username.\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"username\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"user\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"username\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"username\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"user\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each username is of exactly one user.\"]]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"password\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"password\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"password\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"password\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"password\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user has exactly one password.\"]]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"role\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"Note\",\"A 'user' will inherit all the 'permissions' that the 'role' has.\"],[\"TermForm\",[\"Term\",\"user role\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"user role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"expiry date\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user role\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user role\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"expiry date\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user role\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user role\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"expiry date\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user role has at most one expiry date.\"]]]]],[\"FactType\",[\"Term\",\"user\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"permission\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user\",\"Auth\"]]],[\"TermForm\",[\"Term\",\"user permission\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"user permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"expiry date\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"user permission\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"user permission\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"expiry date\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"user permission\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"user permission\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"expiry date\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each user permission has at most one expiry date.\"]]]]],[\"Term\",\"api key\",\"Auth\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"key\",\"Auth\"]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"key\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"key\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"key\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"key\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each api key has exactly one key\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"key\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"api key\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each key is of exactly one api key\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"expiry date\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"expiry date\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"expiry date\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"expiry date\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each api key has at most one expiry date.\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"role\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"role\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Note\",\"An 'api key' will inherit all the 'permissions' that the 'role' has.\"]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"permission\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"permission\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"actor\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"actor\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"actor\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"actor\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"actor\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each api key is of exactly one actor\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each api key has at most one name.\"]]]]],[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"description\",\"Auth\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"description\",\"Auth\"],[\"Verb\",\"is of\",false],[\"Term\",\"api key\",\"Auth\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"api key\",\"Auth\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"description\",\"Auth\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"api key\",\"Auth\"],[\"Verb\",\"has\",false],[\"Term\",\"description\",\"Auth\"]],[\"RoleBinding\",[\"Term\",\"api key\",\"Auth\"],0],[\"RoleBinding\",[\"Term\",\"description\",\"Auth\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each api key has at most one description.\"]]]]]]":{"tables":{"permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"permission","indexes":[],"idField":"id","resourceName":"permission","modelName":"permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name"},"role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"role","indexes":[],"idField":"id","resourceName":"role","modelName":"role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name"},"role-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"role-has-permission","indexes":[{"type":"UNIQUE","fields":["role","permission"]}],"idField":"id","resourceName":"role-has-permission","modelName":"role has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"actor":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"actor","indexes":[],"idField":"id","resourceName":"actor","modelName":"actor","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id"},"user":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"ConceptType","fieldName":"actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Short Text","fieldName":"username","required":true,"references":{"resourceName":"username","fieldName":null},"index":"UNIQUE"},{"dataType":"Hashed","fieldName":"password","required":true,"references":{"resourceName":"password","fieldName":null}}],"primitive":false,"name":"user","indexes":[],"idField":"id","resourceName":"user","modelName":"user","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"username"},"user-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-role","indexes":[{"type":"UNIQUE","fields":["user","role"]}],"idField":"id","resourceName":"user-has-role","modelName":"user has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"user-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-permission","indexes":[{"type":"UNIQUE","fields":["user","permission"]}],"idField":"id","resourceName":"user-has-permission","modelName":"user has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"api key":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"key","required":true,"references":{"resourceName":"key","fieldName":null},"index":"UNIQUE"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}},{"dataType":"ForeignKey","fieldName":"is of-actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"description","required":false,"references":{"resourceName":"description","fieldName":null}}],"primitive":false,"name":"api key","indexes":[],"idField":"id","resourceName":"api key","modelName":"api key","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"key"},"api key-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-role","indexes":[{"type":"UNIQUE","fields":["api key","role"]}],"idField":"id","resourceName":"api key-has-role","modelName":"api key has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]},"api key-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-permission","indexes":[{"type":"UNIQUE","fields":["api key","permission"]}],"idField":"id","resourceName":"api key-has-permission","modelName":"api key has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}]}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"username":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"password":{"Hashed":{"$":["Hashed"]},"has":{"Hashed":{"$":["Hashed"]}}},"name":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"expiry date":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"description":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"permission":{"has":{"name":{"$":["name"]},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"permission":{"has":{"name":{"$":["name"]}}},"name":{"$":["name"]},"is of":{"role":{"$":["id",["role-has-permission","permission"]]},"user":{"$":["id",["user-has-permission","permission"]]},"api key":{"$":["id",["api key-has-permission","permission"]]}},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]}}},"name":{"$":["name"]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}},"is of":{"user":{"$":["id",["user-has-role","role"]]},"api key":{"$":["id",["api key-has-role","role"]]}}},"role-has-permission":{"role":{"$":["role",["role","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"role":{"$":["role",["role","id"]]}}},"actor":{"is of":{"user":{"$":["id",["user","actor"]]}},"api key":{"$":["id",["api key","is of-actor"]]},"has":{"api key":{"$":["id",["api key","is of-actor"]]}}},"user":{"actor":{"$":["actor",["actor","id"]]},"has":{"actor":{"$":["actor",["actor","id"]]},"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"user":{"has":{"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"permission":{"$":["id",["user-has-permission","user"]]}},"user":{"has":{"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"username":{"$":["username"]},"password":{"$":["password"]}},"user-has-role":{"user":{"$":["user",["user","id"]],"has":{"role":{"has":{"expiry date":{"$":["expiry date"]}}}}},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"user-has-permission":{"user":{"$":["user",["user","id"]],"has":{"permission":{"has":{"expiry date":{"$":["expiry date"]}}}}},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"is of":{"actor":{"$":["id",["api key-is of-actor","api key"]]}}},"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"is of":{"actor":{"$":["is of-actor",["actor","id"]]}},"name":{"$":["name"]},"description":{"$":["description"]}},"api key-has-role":{"api key":{"$":["api key",["api key","id"]]},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}},"api key-has-permission":{"api key":{"$":["api key",["api key","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}}},"rules":[],"synonyms":{"user role":"user-has-role","user permission":"user-has-permission"}},"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"migrations\",[\"Attributes\"]],[\"Term\",\"model name\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"executed migrations\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"JSON\",\"Type\"]]]],[\"Term\",\"lock time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"migration\",\"migrations\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"model name\",\"migrations\"]],[\"DatabaseIDField\",\"model name\"]]],[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model name\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model name\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"model name\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration has exactly one model name\"]]]]],[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"executed migrations\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"executed migrations\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"executed migrations\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"executed migrations\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"executed migrations\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration has exactly one executed migrations\"]]]]],[\"Term\",\"migration lock\",\"migrations\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"model name\",\"migrations\"]],[\"DatabaseIDField\",\"model name\"]]],[\"FactType\",[\"Term\",\"migration lock\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"model name\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration lock\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration lock\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"model name\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration lock\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"model name\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration lock\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"model name\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration lock has exactly one model name\"]]]]],[\"Term\",\"migration key\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"start time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"last run time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"run count\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"migrated row count\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"error count\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"converged time\",\"migrations\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"Term\",\"migration status\",\"migrations\",[\"Attributes\",[\"ReferenceScheme\",[\"Term\",\"migration key\",\"migrations\"]],[\"DatabaseIDField\",\"migration key\"]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migration key\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"migration key\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"migration key\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migration key\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"migration key\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has exactly one migration key\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"start time\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"start time\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"start time\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"start time\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"start time\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one start time\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"last run time\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"last run time\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"last run time\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"last run time\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"last run time\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one last run time\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"run count\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"run count\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"run count\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"run count\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"run count\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has exactly one run count\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migrated row count\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"migrated row count\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"migrated row count\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"migrated row count\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"migrated row count\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one migrated row count\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"error count\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"error count\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"error count\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"error count\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"error count\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one error count\"]]]]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"is backing off\",false],[\"Attributes\"]],[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"converged time\",\"migrations\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"converged time\",\"migrations\"],[\"Verb\",\"is of\",false],[\"Term\",\"migration status\",\"migrations\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"migration status\",\"migrations\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"converged time\",\"migrations\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"migration status\",\"migrations\"],[\"Verb\",\"has\",false],[\"Term\",\"converged time\",\"migrations\"]],[\"RoleBinding\",[\"Term\",\"migration status\",\"migrations\"],0],[\"RoleBinding\",[\"Term\",\"converged time\",\"migrations\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each migration status has at most one converged time\"]]]]]]":{"tables":{"migration":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"JSON","fieldName":"executed migrations","required":true,"references":{"resourceName":"executed migrations","fieldName":null}}],"primitive":false,"name":"migration","indexes":[],"idField":"model name","resourceName":"migration","modelName":"migration","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name"},"migration lock":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"}],"primitive":false,"name":"migration lock","indexes":[],"idField":"model name","resourceName":"migration lock","modelName":"migration lock","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name"},"migration status":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"migration key","required":true,"references":{"resourceName":"migration key","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"start time","required":false,"references":{"resourceName":"start time","fieldName":null}},{"dataType":"Date Time","fieldName":"last run time","required":false,"references":{"resourceName":"last run time","fieldName":null}},{"dataType":"Integer","fieldName":"run count","required":true,"references":{"resourceName":"run count","fieldName":null}},{"dataType":"Integer","fieldName":"migrated row count","required":false,"references":{"resourceName":"migrated row count","fieldName":null}},{"dataType":"Integer","fieldName":"error count","required":false,"references":{"resourceName":"error count","fieldName":null}},{"dataType":"Boolean","fieldName":"is backing off","required":true},{"dataType":"Date Time","fieldName":"converged time","required":false,"references":{"resourceName":"converged time","fieldName":null}}],"primitive":false,"name":"migration status","indexes":[],"idField":"migration key","resourceName":"migration status","modelName":"migration status","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"migration key"}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"executed migrations":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"lock time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}}},"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration lock":{"has":{"model name":{"$":["model name"]}},"migration lock":{"has":{"model name":{"$":["model name"]}}},"model name":{"$":["model name"]}},"migration key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"start time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"last run time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"run count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"migrated row count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"error count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"converged time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}}},"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"is backing off":{"$":["is backing off"]},"converged time":{"$":["converged time"]}}},"rules":[],"synonyms":{}},"[\"Model\",[\"Vocabulary\",\"Type\",[\"Attributes\"]],[\"Term\",\"Integer\",\"Type\",[\"Attributes\"]],[\"Term\",\"Real\",\"Type\",[\"Attributes\"]],[\"Term\",\"Text\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date\",\"Type\",[\"Attributes\"]],[\"Term\",\"Date Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Time\",\"Type\",[\"Attributes\"]],[\"Term\",\"Interval\",\"Type\",[\"Attributes\"]],[\"Term\",\"File\",\"Type\",[\"Attributes\"]],[\"Term\",\"Big Integer\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Serial\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]],[\"Note\",\"An auto-incrementing 'Integer'.\"]]],[\"Term\",\"Case Insensitive Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that is compared case insensitively.\"]]],[\"Term\",\"JSON\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will only allow valid JSON.\"]]],[\"Term\",\"Hashed\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a hash.\"]]],[\"Term\",\"SHA\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]],[\"Note\",\"A 'Text' type that will automatically be converted to a sha256 hash.\"]]],[\"Term\",\"Length\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Name\",\"Current Time\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Date Time\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Length\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Text\",\"Type\"]]],[\"Note\",\"Length in characters\"],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Text\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Length\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Text\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Length\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Text\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Length\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Text has exactly one Length\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is before\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is after\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Date Time\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Date Time\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Integer\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is less than or equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is greater than or equal to\",false],[\"Term\",\"Integer\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Real\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"is equal to\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Real\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Integer\",\"Type\"]]],[\"SynonymousForm\",[[\"Term\",\"Integer\",\"Type\"],[\"Verb\",\"equals\",false],[\"Term\",\"Real\",\"Type\"]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is equal to\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]]]],[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"equals\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"starts with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"ends with\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\"]],[\"FactType\",[\"Term\",\"Text\",\"Type\",[\"Number\",1]],[\"Verb\",\"contains\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Text\",\"Type\",[\"Number\",2]],[\"Verb\",\"is contained in\",false],[\"Term\",\"Text\",\"Type\",[\"Number\",1]]]]]],[\"Term\",\"Short Text\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"Red Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Green Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Blue Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Alpha Component\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"Term\",\"Color\",\"Type\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Integer\",\"Type\"]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Red Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Red Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Red Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Red Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Red Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Green Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Green Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Green Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Green Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Green Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Blue Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Blue Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Blue Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Blue Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Blue Component\"]]]]],[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"Alpha Component\",\"Type\"],[\"Verb\",\"is of\",false],[\"Term\",\"Color\",\"Type\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"Color\",\"Type\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"Alpha Component\",\"Type\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"Color\",\"Type\"],[\"Verb\",\"has\",false],[\"Term\",\"Alpha Component\",\"Type\"]],[\"RoleBinding\",[\"Term\",\"Color\",\"Type\"],0],[\"RoleBinding\",[\"Term\",\"Alpha Component\",\"Type\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that Each Color has exactly one Alpha Component\"]]]]],[\"Vocabulary\",\"Default\",[\"Attributes\"]],[\"Vocabulary\",\"example\",[\"Attributes\"]],[\"Term\",\"name\",\"example\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"note\",\"example\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Text\",\"Type\"]]]],[\"Term\",\"type\",\"example\",[\"Attributes\",[\"ConceptType\",[\"Term\",\"Short Text\",\"Type\"]]]],[\"Term\",\"device\",\"example\",[\"Attributes\"]],[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"device\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"device\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"]],[\"RoleBinding\",[\"Term\",\"device\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each device has at most one name.\"]]]]],[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"note\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"device\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"device\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"note\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"]],[\"RoleBinding\",[\"Term\",\"device\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"note\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each device has at most one note.\"]]]]],[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"type\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"device\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"device\",\"example\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"type\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"device\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"]],[\"RoleBinding\",[\"Term\",\"device\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"type\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each device has exactly one type.\"]]]]],[\"Term\",\"deviceb\",\"example\",[\"Attributes\"]],[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"name\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"deviceb\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"deviceb\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"name\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"name\",\"example\"]],[\"RoleBinding\",[\"Term\",\"deviceb\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"name\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each deviceb has at most one name.\"]]]]],[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"note\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"deviceb\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"deviceb\",\"example\"]],[\"AtMostNQuantification\",[\"MaximumCardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"note\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"note\",\"example\"]],[\"RoleBinding\",[\"Term\",\"deviceb\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"note\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each deviceb has at most one note.\"]]]]],[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"],[\"Attributes\",[\"SynonymousForm\",[[\"Term\",\"type\",\"example\"],[\"Verb\",\"is of\",false],[\"Term\",\"deviceb\",\"example\"]]],[\"Necessity\",[\"Rule\",[\"NecessityFormulation\",[\"UniversalQuantification\",[\"Variable\",[\"Number\",0],[\"Term\",\"deviceb\",\"example\"]],[\"ExactQuantification\",[\"Cardinality\",[\"Number\",1]],[\"Variable\",[\"Number\",1],[\"Term\",\"type\",\"example\"]],[\"AtomicFormulation\",[\"FactType\",[\"Term\",\"deviceb\",\"example\"],[\"Verb\",\"has\",false],[\"Term\",\"type\",\"example\"]],[\"RoleBinding\",[\"Term\",\"deviceb\",\"example\"],0],[\"RoleBinding\",[\"Term\",\"type\",\"example\"],1]]]]],[\"StructuredEnglish\",\"It is necessary that each deviceb has exactly one type.\"]]]]]]":{"tables":{"device":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"device","indexes":[],"idField":"id","resourceName":"device","modelName":"device","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id"},"deviceb":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"deviceb","indexes":[],"idField":"id","resourceName":"deviceb","modelName":"deviceb","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id"}},"functions":{"trigger_update_modified_at":{"type":"trigger","body":"NEW.\"modified at\" = NOW();\nRETURN NEW;","language":"plpgsql"}},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"note":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"rules":[],"synonyms":{}}}},"metadata":{"14.54.0":{"{\"vocab\":\"dev\",\"abstractSqlModel\":{\"tables\":{\"model\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"is of-vocabulary\",\"required\":true,\"references\":{\"resourceName\":\"vocabulary\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"model type\",\"required\":true,\"references\":{\"resourceName\":\"model type\",\"fieldName\":null}},{\"dataType\":\"JSON\",\"fieldName\":\"model value\",\"required\":true,\"references\":{\"resourceName\":\"model value\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"model\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"model\",\"modelName\":\"model\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model value\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model value\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"vocabulary\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}},\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"rules\":[],\"synonyms\":{}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"dev\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"model\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"is_of__vocabulary\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"model_type\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"model_value\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\t\t\t\t\t<EntityContainer Name=\"devService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"model\" EntityType=\"dev.model\" />\n\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>","{\"vocab\":\"Auth\",\"abstractSqlModel\":{\"tables\":{\"permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"permission\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"permission\",\"modelName\":\"permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"role\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"role\",\"modelName\":\"role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"role-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"role\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"role-has-permission\",\"modelName\":\"role has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"actor\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"actor\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"actor\",\"modelName\":\"actor\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"user\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"ConceptType\",\"fieldName\":\"actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Short Text\",\"fieldName\":\"username\",\"required\":true,\"references\":{\"resourceName\":\"username\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Hashed\",\"fieldName\":\"password\",\"required\":true,\"references\":{\"resourceName\":\"password\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"user\",\"modelName\":\"user\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"username\"},\"user-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-role\",\"modelName\":\"user has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"user-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-permission\",\"modelName\":\"user has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"key\",\"required\":true,\"references\":{\"resourceName\":\"key\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"is of-actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"description\",\"required\":false,\"references\":{\"resourceName\":\"description\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"api key\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"api key\",\"modelName\":\"api key\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"key\"},\"api key-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-role\",\"modelName\":\"api key has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-permission\",\"modelName\":\"api key has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"username\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"password\":{\"Hashed\":{\"$\":[\"Hashed\"]},\"has\":{\"Hashed\":{\"$\":[\"Hashed\"]}}},\"name\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"expiry date\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"description\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]}}},\"name\":{\"$\":[\"name\"]},\"is of\":{\"role\":{\"$\":[\"id\",[\"role-has-permission\",\"permission\"]]},\"user\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-permission\",\"permission\"]]}},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]}}},\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}},\"is of\":{\"user\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-role\",\"role\"]]}}},\"role-has-permission\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}}},\"actor\":{\"is of\":{\"user\":{\"$\":[\"id\",[\"user\",\"actor\"]]}},\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]},\"has\":{\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]}}},\"user\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"has\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}},\"user\":{\"has\":{\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]}},\"user-has-role\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"role\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"user-has-permission\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"permission\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"is of\":{\"actor\":{\"$\":[\"id\",[\"api key-is of-actor\",\"api key\"]]}}},\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"is of\":{\"actor\":{\"$\":[\"is of-actor\",[\"actor\",\"id\"]]}},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key-has-role\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}},\"api key-has-permission\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}}},\"rules\":[],\"synonyms\":{\"user role\":\"user-has-role\",\"user permission\":\"user-has-permission\"}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"Auth\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"role\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"role__has__permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<NavigationProperty Name=\"role\" Relationship=\"Auth.role__has__permissionrole\" FromRole=\"role__has__permission\" ToRole=\"role\" />\n<NavigationProperty Name=\"permission\" Relationship=\"Auth.role__has__permissionpermission\" FromRole=\"role__has__permission\" ToRole=\"permission\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"actor\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"user\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"actor\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"username\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"password\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"user__has__role\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"expiry_date\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<NavigationProperty Name=\"user\" Relationship=\"Auth.user__has__roleuser\" FromRole=\"user__has__role\" ToRole=\"user\" />\n<NavigationProperty Name=\"role\" Relationship=\"Auth.user__has__rolerole\" FromRole=\"user__has__role\" ToRole=\"role\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"user__has__permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"expiry_date\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<NavigationProperty Name=\"user\" Relationship=\"Auth.user__has__permissionuser\" FromRole=\"user__has__permission\" ToRole=\"user\" />\n<NavigationProperty Name=\"permission\" Relationship=\"Auth.user__has__permissionpermission\" FromRole=\"user__has__permission\" ToRole=\"permission\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"api_key\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"key\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"expiry_date\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"description\" Type=\"Edm.String\" Nullable=\"true\" />\n<NavigationProperty Name=\"is_of__actor\" Relationship=\"Auth.api_keyactor\" FromRole=\"api_key\" ToRole=\"actor\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"api_key__has__role\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<NavigationProperty Name=\"api_key\" Relationship=\"Auth.api_key__has__roleapi key\" FromRole=\"api_key__has__role\" ToRole=\"api key\" />\n<NavigationProperty Name=\"role\" Relationship=\"Auth.api_key__has__rolerole\" FromRole=\"api_key__has__role\" ToRole=\"role\" />\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"api_key__has__permission\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<NavigationProperty Name=\"api_key\" Relationship=\"Auth.api_key__has__permissionapi key\" FromRole=\"api_key__has__permission\" ToRole=\"api key\" />\n<NavigationProperty Name=\"permission\" Relationship=\"Auth.api_key__has__permissionpermission\" FromRole=\"api_key__has__permission\" ToRole=\"permission\" />\n\n\t\t\t\t\t</EntityType><Association Name=\"role__has__permissionrole\">\n\t<End Role=\"role__has__permission\" Type=\"Auth.role__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"role\" Type=\"Auth.role\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"role__has__permissionpermission\">\n\t<End Role=\"role__has__permission\" Type=\"Auth.role__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"permission\" Type=\"Auth.permission\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__roleuser\">\n\t<End Role=\"user__has__role\" Type=\"Auth.user__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"user\" Type=\"Auth.user\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__rolerole\">\n\t<End Role=\"user__has__role\" Type=\"Auth.user__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"role\" Type=\"Auth.role\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__permissionuser\">\n\t<End Role=\"user__has__permission\" Type=\"Auth.user__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"user\" Type=\"Auth.user\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"user__has__permissionpermission\">\n\t<End Role=\"user__has__permission\" Type=\"Auth.user__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"permission\" Type=\"Auth.permission\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_keyactor\">\n\t<End Role=\"api_key\" Type=\"Auth.api_key\" Multiplicity=\"1\" />\n\t<End Role=\"actor\" Type=\"Auth.actor\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__roleapi_key\">\n\t<End Role=\"api_key__has__role\" Type=\"Auth.api_key__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"api key\" Type=\"Auth.api key\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__rolerole\">\n\t<End Role=\"api_key__has__role\" Type=\"Auth.api_key__has__role\" Multiplicity=\"1\" />\n\t<End Role=\"role\" Type=\"Auth.role\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__permissionapi_key\">\n\t<End Role=\"api_key__has__permission\" Type=\"Auth.api_key__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"api key\" Type=\"Auth.api key\" Multiplicity=\"*\" />\n</Association>\n<Association Name=\"api_key__has__permissionpermission\">\n\t<End Role=\"api_key__has__permission\" Type=\"Auth.api_key__has__permission\" Multiplicity=\"1\" />\n\t<End Role=\"permission\" Type=\"Auth.permission\" Multiplicity=\"*\" />\n</Association>\n\t\t\t\t\t<EntityContainer Name=\"AuthService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"permission\" EntityType=\"Auth.permission\" />\n<EntitySet Name=\"role\" EntityType=\"Auth.role\" />\n<EntitySet Name=\"role__has__permission\" EntityType=\"Auth.role__has__permission\" />\n<EntitySet Name=\"actor\" EntityType=\"Auth.actor\" />\n<EntitySet Name=\"user\" EntityType=\"Auth.user\" />\n<EntitySet Name=\"user__has__role\" EntityType=\"Auth.user__has__role\" />\n<EntitySet Name=\"user__has__permission\" EntityType=\"Auth.user__has__permission\" />\n<EntitySet Name=\"api_key\" EntityType=\"Auth.api_key\" />\n<EntitySet Name=\"api_key__has__role\" EntityType=\"Auth.api_key__has__role\" />\n<EntitySet Name=\"api_key__has__permission\" EntityType=\"Auth.api_key__has__permission\" />\n<AssociationSet Name=\"role__has__permissionrole\" Association=\"Auth.role__has__permissionrole\">\n\t<End Role=\"role__has__permission\" EntitySet=\"Auth.role__has__permission\" />\n\t<End Role=\"role\" EntitySet=\"Auth.role\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"role__has__permissionpermission\" Association=\"Auth.role__has__permissionpermission\">\n\t<End Role=\"role__has__permission\" EntitySet=\"Auth.role__has__permission\" />\n\t<End Role=\"permission\" EntitySet=\"Auth.permission\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__roleuser\" Association=\"Auth.user__has__roleuser\">\n\t<End Role=\"user__has__role\" EntitySet=\"Auth.user__has__role\" />\n\t<End Role=\"user\" EntitySet=\"Auth.user\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__rolerole\" Association=\"Auth.user__has__rolerole\">\n\t<End Role=\"user__has__role\" EntitySet=\"Auth.user__has__role\" />\n\t<End Role=\"role\" EntitySet=\"Auth.role\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__permissionuser\" Association=\"Auth.user__has__permissionuser\">\n\t<End Role=\"user__has__permission\" EntitySet=\"Auth.user__has__permission\" />\n\t<End Role=\"user\" EntitySet=\"Auth.user\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"user__has__permissionpermission\" Association=\"Auth.user__has__permissionpermission\">\n\t<End Role=\"user__has__permission\" EntitySet=\"Auth.user__has__permission\" />\n\t<End Role=\"permission\" EntitySet=\"Auth.permission\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_keyactor\" Association=\"Auth.api_keyactor\">\n\t<End Role=\"api_key\" EntitySet=\"Auth.api_key\" />\n\t<End Role=\"actor\" EntitySet=\"Auth.actor\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__roleapi_key\" Association=\"Auth.api_key__has__roleapi_key\">\n\t<End Role=\"api_key__has__role\" EntitySet=\"Auth.api_key__has__role\" />\n\t<End Role=\"api key\" EntitySet=\"Auth.api key\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__rolerole\" Association=\"Auth.api_key__has__rolerole\">\n\t<End Role=\"api_key__has__role\" EntitySet=\"Auth.api_key__has__role\" />\n\t<End Role=\"role\" EntitySet=\"Auth.role\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__permissionapi_key\" Association=\"Auth.api_key__has__permissionapi_key\">\n\t<End Role=\"api_key__has__permission\" EntitySet=\"Auth.api_key__has__permission\" />\n\t<End Role=\"api key\" EntitySet=\"Auth.api key\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n<AssociationSet Name=\"api_key__has__permissionpermission\" Association=\"Auth.api_key__has__permissionpermission\">\n\t<End Role=\"api_key__has__permission\" EntitySet=\"Auth.api_key__has__permission\" />\n\t<End Role=\"permission\" EntitySet=\"Auth.permission\" />\n\t\t\t\t\t\t\t\t</AssociationSet>\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>","{\"vocab\":\"migrations\",\"abstractSqlModel\":{\"tables\":{\"migration\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"JSON\",\"fieldName\":\"executed migrations\",\"required\":true,\"references\":{\"resourceName\":\"executed migrations\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration\",\"modelName\":\"migration\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration lock\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"migration lock\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration lock\",\"modelName\":\"migration lock\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration status\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"migration key\",\"required\":true,\"references\":{\"resourceName\":\"migration key\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"start time\",\"required\":false,\"references\":{\"resourceName\":\"start time\",\"fieldName\":null}},{\"dataType\":\"Date Time\",\"fieldName\":\"last run time\",\"required\":false,\"references\":{\"resourceName\":\"last run time\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"run count\",\"required\":true,\"references\":{\"resourceName\":\"run count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"migrated row count\",\"required\":false,\"references\":{\"resourceName\":\"migrated row count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"error count\",\"required\":false,\"references\":{\"resourceName\":\"error count\",\"fieldName\":null}},{\"dataType\":\"Boolean\",\"fieldName\":\"is backing off\",\"required\":true},{\"dataType\":\"Date Time\",\"fieldName\":\"converged time\",\"required\":false,\"references\":{\"resourceName\":\"converged time\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration status\",\"indexes\":[],\"idField\":\"migration key\",\"resourceName\":\"migration status\",\"modelName\":\"migration status\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"migration key\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"executed migrations\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"lock time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}}},\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}}},\"model name\":{\"$\":[\"model name\"]}},\"migration key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"start time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"last run time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"run count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"migrated row count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"error count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"converged time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"is backing off\":{\"$\":[\"is backing off\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"rules\":[],\"synonyms\":{}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"migrations\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"migration\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"model name\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"model_name\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"executed_migrations\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"migration_lock\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"model name\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"model_name\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"migration_status\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"migration key\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"migration_key\" Type=\"Edm.String\" Nullable=\"false\" />\n<Property Name=\"start_time\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<Property Name=\"last_run_time\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n<Property Name=\"run_count\" Type=\"Edm.Int32\" Nullable=\"false\" />\n<Property Name=\"migrated_row_count\" Type=\"Edm.Int32\" Nullable=\"true\" />\n<Property Name=\"error_count\" Type=\"Edm.Int32\" Nullable=\"true\" />\n<Property Name=\"is_backing_off\" Type=\"Edm.Boolean\" Nullable=\"false\" />\n<Property Name=\"converged_time\" Type=\"Edm.DateTime\" Nullable=\"true\" />\n\n\n\t\t\t\t\t</EntityType>\n\t\t\t\t\t<EntityContainer Name=\"migrationsService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"migration\" EntityType=\"migrations.migration\" />\n<EntitySet Name=\"migration_lock\" EntityType=\"migrations.migration_lock\" />\n<EntitySet Name=\"migration_status\" EntityType=\"migrations.migration_status\" />\n\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>","{\"vocab\":\"example\",\"abstractSqlModel\":{\"tables\":{\"device\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"device\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"device\",\"modelName\":\"device\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"deviceb\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"deviceb\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"deviceb\",\"modelName\":\"deviceb\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"note\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"rules\":[],\"synonyms\":{}}}":"\n\t\t<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>\n\t\t<edmx:Edmx Version=\"1.0\" xmlns:edmx=\"http://schemas.microsoft.com/ado/2007/06/edmx\">\n\t\t\t<edmx:DataServices xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\" m:DataServiceVersion=\"2.0\">\n\t\t\t\t<Schema Namespace=\"example\"\n\t\t\t\t\txmlns:d=\"http://schemas.microsoft.com/ado/2007/08/dataservices\"\n\t\t\t\t\txmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\"\n\t\t\t\t\txmlns=\"http://schemas.microsoft.com/ado/2008/09/edm\">\n\n\t\t\t\t\n\t\t\t\t\t<EntityType Name=\"device\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"note\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"type\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\n\n\t\t\t\t\t<EntityType Name=\"deviceb\">\n\t\t\t\t\t\t<Key>\n\t\t\t\t\t\t\t<PropertyRef Name=\"id\" />\n\t\t\t\t\t\t</Key>\n\n\t\t\t\t\t\t<Property Name=\"created_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"modified_at\" Type=\"Edm.DateTime\" Nullable=\"false\" />\n<Property Name=\"id\" Type=\"Edm.Int64\" Nullable=\"false\" />\n<Property Name=\"name\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"note\" Type=\"Edm.String\" Nullable=\"true\" />\n<Property Name=\"type\" Type=\"Edm.String\" Nullable=\"false\" />\n\n\n\t\t\t\t\t</EntityType>\n\t\t\t\t\t<EntityContainer Name=\"exampleService\" m:IsDefaultEntityContainer=\"true\">\n\n\t\t\t\t\t<EntitySet Name=\"device\" EntityType=\"example.device\" />\n<EntitySet Name=\"deviceb\" EntityType=\"example.deviceb\" />\n\n\t\t\t\t\t</EntityContainer>\n\t\t\t\t</Schema>\n\t\t\t</edmx:DataServices>\n\t\t</edmx:Edmx>"}},"sqlModel":{"7.22.0+postgres":{"{\"tables\":{\"model\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"is of-vocabulary\",\"required\":true,\"references\":{\"resourceName\":\"vocabulary\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"model type\",\"required\":true,\"references\":{\"resourceName\":\"model type\",\"fieldName\":null}},{\"dataType\":\"JSON\",\"fieldName\":\"model value\",\"required\":true,\"references\":{\"resourceName\":\"model value\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"model\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"model\",\"modelName\":\"model\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model value\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model value\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"vocabulary\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"model\":{\"is of\":{\"vocabulary\":{\"$\":[\"is of-vocabulary\"]}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"has\":{\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}},\"model type\":{\"$\":[\"model type\"]},\"model value\":{\"$\":[\"model value\"]}}},\"rules\":[],\"synonyms\":{}}":{"synonyms":{},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model value":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"vocabulary":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"model":{"is of":{"vocabulary":{"$":["is of-vocabulary"]}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"has":{"model type":{"$":["model type"]},"model value":{"$":["model value"]}},"model type":{"$":["model type"]},"model value":{"$":["model value"]}}},"tables":{"model":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"is of-vocabulary","required":true,"references":{"resourceName":"vocabulary","fieldName":null}},{"dataType":"Short Text","fieldName":"model type","required":true,"references":{"resourceName":"model type","fieldName":null}},{"dataType":"JSON","fieldName":"model value","required":true,"references":{"resourceName":"model value","fieldName":null}}],"primitive":false,"name":"model","indexes":[],"idField":"id","resourceName":"model","modelName":"model","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model value","localFields":{"created_at":true,"modified_at":true,"id":true,"is_of__vocabulary":true,"model_type":true,"model_value":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"model\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"is of-vocabulary\" VARCHAR(255) NOT NULL\n,\t\"model type\" VARCHAR(255) NOT NULL\n,\t\"model value\" TEXT NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'model'\n\tAND \"trigger_name\" = 'model_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"model_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"model\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"model\";","DROP TRIGGER \"model_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]},"{\"tables\":{\"permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"permission\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"permission\",\"modelName\":\"permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":true,\"references\":{\"resourceName\":\"name\",\"fieldName\":null},\"index\":\"UNIQUE\"}],\"primitive\":false,\"name\":\"role\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"role\",\"modelName\":\"role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"name\"},\"role-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"role-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"role\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"role-has-permission\",\"modelName\":\"role has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"actor\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"actor\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"actor\",\"modelName\":\"actor\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"user\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"ConceptType\",\"fieldName\":\"actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Short Text\",\"fieldName\":\"username\",\"required\":true,\"references\":{\"resourceName\":\"username\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Hashed\",\"fieldName\":\"password\",\"required\":true,\"references\":{\"resourceName\":\"password\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"user\",\"modelName\":\"user\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"username\"},\"user-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-role\",\"modelName\":\"user has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"user-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"user\",\"required\":true,\"references\":{\"resourceName\":\"user\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"user-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"user\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"user-has-permission\",\"modelName\":\"user has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"key\",\"required\":true,\"references\":{\"resourceName\":\"key\",\"fieldName\":null},\"index\":\"UNIQUE\"},{\"dataType\":\"Date Time\",\"fieldName\":\"expiry date\",\"required\":false,\"references\":{\"resourceName\":\"expiry date\",\"fieldName\":null}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"is of-actor\",\"required\":true,\"references\":{\"resourceName\":\"actor\",\"fieldName\":\"id\"}},{\"dataType\":\"Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"description\",\"required\":false,\"references\":{\"resourceName\":\"description\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"api key\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"api key\",\"modelName\":\"api key\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"key\"},\"api key-has-role\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"role\",\"required\":true,\"references\":{\"resourceName\":\"role\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-role\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"role\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-role\",\"modelName\":\"api key has role\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]},\"api key-has-permission\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"ForeignKey\",\"fieldName\":\"api key\",\"required\":true,\"references\":{\"resourceName\":\"api key\",\"fieldName\":\"id\"}},{\"dataType\":\"ForeignKey\",\"fieldName\":\"permission\",\"required\":true,\"references\":{\"resourceName\":\"permission\",\"fieldName\":\"id\"}},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"api key-has-permission\",\"indexes\":[{\"type\":\"UNIQUE\",\"fields\":[\"api key\",\"permission\"]}],\"idField\":\"id\",\"resourceName\":\"api key-has-permission\",\"modelName\":\"api key has permission\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}]}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"username\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"password\":{\"Hashed\":{\"$\":[\"Hashed\"]},\"has\":{\"Hashed\":{\"$\":[\"Hashed\"]}}},\"name\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"expiry date\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"description\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"permission\":{\"has\":{\"name\":{\"$\":[\"name\"]}}},\"name\":{\"$\":[\"name\"]},\"is of\":{\"role\":{\"$\":[\"id\",[\"role-has-permission\",\"permission\"]]},\"user\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-permission\",\"permission\"]]}},\"user\":{\"has\":{\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"permission\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}}},\"role\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"permission\":{\"$\":[\"id\",[\"role-has-permission\",\"role\"]]}}},\"name\":{\"$\":[\"name\"]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]}}},\"is of\":{\"user\":{\"$\":[\"id\",[\"user-has-role\",\"role\"]]},\"api key\":{\"$\":[\"id\",[\"api key-has-role\",\"role\"]]}}},\"role-has-permission\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}}},\"actor\":{\"is of\":{\"user\":{\"$\":[\"id\",[\"user\",\"actor\"]]}},\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]},\"has\":{\"api key\":{\"$\":[\"id\",[\"api key\",\"is of-actor\"]]}}},\"user\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"has\":{\"actor\":{\"$\":[\"actor\",[\"actor\",\"id\"]]},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"user\":{\"has\":{\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}},\"user\":{\"has\":{\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]},\"role\":{\"$\":[\"id\",[\"user-has-role\",\"user\"]]},\"permission\":{\"$\":[\"id\",[\"user-has-permission\",\"user\"]]}}},\"username\":{\"$\":[\"username\"]},\"password\":{\"$\":[\"password\"]}},\"user-has-role\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"role\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"user-has-permission\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]],\"has\":{\"permission\":{\"has\":{\"expiry date\":{\"$\":[\"expiry date\"]}}}}},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"expiry date\":{\"$\":[\"expiry date\"]}},\"is of\":{\"user\":{\"$\":[\"user\",[\"user\",\"id\"]]}},\"expiry date\":{\"$\":[\"expiry date\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key\":{\"has\":{\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"role\":{\"$\":[\"id\",[\"api key-has-role\",\"api key\"]]},\"permission\":{\"$\":[\"id\",[\"api key-has-permission\",\"api key\"]]},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"is of\":{\"actor\":{\"$\":[\"id\",[\"api key-is of-actor\",\"api key\"]]}}},\"key\":{\"$\":[\"key\"]},\"expiry date\":{\"$\":[\"expiry date\"]},\"is of\":{\"actor\":{\"$\":[\"is of-actor\",[\"actor\",\"id\"]]}},\"name\":{\"$\":[\"name\"]},\"description\":{\"$\":[\"description\"]}},\"api key-has-role\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]},\"has\":{\"role\":{\"$\":[\"role\",[\"role\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}},\"api key-has-permission\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]},\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]},\"has\":{\"permission\":{\"$\":[\"permission\",[\"permission\",\"id\"]]}},\"is of\":{\"api key\":{\"$\":[\"api key\",[\"api key\",\"id\"]]}}}},\"rules\":[],\"synonyms\":{\"user role\":\"user-has-role\",\"user permission\":\"user-has-permission\"}}":{"synonyms":{"user role":"user-has-role","user permission":"user-has-permission"},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"username":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"password":{"Hashed":{"$":["Hashed"]},"has":{"Hashed":{"$":["Hashed"]}}},"name":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"expiry date":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"description":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"permission":{"has":{"name":{"$":["name"]},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"permission":{"has":{"name":{"$":["name"]}}},"name":{"$":["name"]},"is of":{"role":{"$":["id",["role-has-permission","permission"]]},"user":{"$":["id",["user-has-permission","permission"]]},"api key":{"$":["id",["api key-has-permission","permission"]]}},"user":{"has":{"permission":{"$":["id",["user-has-permission","permission"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}}},"role":{"has":{"name":{"$":["name"]},"permission":{"$":["id",["role-has-permission","role"]]}}},"name":{"$":["name"]},"user":{"has":{"role":{"$":["id",["user-has-role","role"]]}}},"is of":{"user":{"$":["id",["user-has-role","role"]]},"api key":{"$":["id",["api key-has-role","role"]]}}},"role-has-permission":{"role":{"$":["role",["role","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"role":{"$":["role",["role","id"]]}}},"actor":{"is of":{"user":{"$":["id",["user","actor"]]}},"api key":{"$":["id",["api key","is of-actor"]]},"has":{"api key":{"$":["id",["api key","is of-actor"]]}}},"user":{"actor":{"$":["actor",["actor","id"]]},"has":{"actor":{"$":["actor",["actor","id"]]},"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"user":{"has":{"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"permission":{"$":["id",["user-has-permission","user"]]}},"user":{"has":{"username":{"$":["username"]},"password":{"$":["password"]},"role":{"$":["id",["user-has-role","user"]]},"permission":{"$":["id",["user-has-permission","user"]]}}},"username":{"$":["username"]},"password":{"$":["password"]}},"user-has-role":{"user":{"$":["user",["user","id"]],"has":{"role":{"has":{"expiry date":{"$":["expiry date"]}}}}},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"user-has-permission":{"user":{"$":["user",["user","id"]],"has":{"permission":{"has":{"expiry date":{"$":["expiry date"]}}}}},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]},"expiry date":{"$":["expiry date"]}},"is of":{"user":{"$":["user",["user","id"]]}},"expiry date":{"$":["expiry date"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"api key":{"has":{"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"role":{"$":["id",["api key-has-role","api key"]]},"permission":{"$":["id",["api key-has-permission","api key"]]},"name":{"$":["name"]},"description":{"$":["description"]}},"is of":{"actor":{"$":["id",["api key-is of-actor","api key"]]}}},"key":{"$":["key"]},"expiry date":{"$":["expiry date"]},"is of":{"actor":{"$":["is of-actor",["actor","id"]]}},"name":{"$":["name"]},"description":{"$":["description"]}},"api key-has-role":{"api key":{"$":["api key",["api key","id"]]},"role":{"$":["role",["role","id"]]},"has":{"role":{"$":["role",["role","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}},"api key-has-permission":{"api key":{"$":["api key",["api key","id"]]},"permission":{"$":["permission",["permission","id"]]},"has":{"permission":{"$":["permission",["permission","id"]]}},"is of":{"api key":{"$":["api key",["api key","id"]]}}}},"tables":{"permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"permission","indexes":[],"idField":"id","resourceName":"permission","modelName":"permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true},"fetchProcessingFields":{}},"role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Text","fieldName":"name","required":true,"references":{"resourceName":"name","fieldName":null},"index":"UNIQUE"}],"primitive":false,"name":"role","indexes":[],"idField":"id","resourceName":"role","modelName":"role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"name","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true},"fetchProcessingFields":{}},"role-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"role-has-permission","indexes":[{"type":"UNIQUE","fields":["role","permission"]}],"idField":"id","resourceName":"role-has-permission","modelName":"role has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}},"actor":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"actor","indexes":[],"idField":"id","resourceName":"actor","modelName":"actor","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id","localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}},"user":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"ConceptType","fieldName":"actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Short Text","fieldName":"username","required":true,"references":{"resourceName":"username","fieldName":null},"index":"UNIQUE"},{"dataType":"Hashed","fieldName":"password","required":true,"references":{"resourceName":"password","fieldName":null}}],"primitive":false,"name":"user","indexes":[],"idField":"id","resourceName":"user","modelName":"user","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"username","localFields":{"created_at":true,"modified_at":true,"id":true,"actor":true,"username":true,"password":true},"fetchProcessingFields":{}},"user-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-role","indexes":[{"type":"UNIQUE","fields":["user","role"]}],"idField":"id","resourceName":"user-has-role","modelName":"user has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true,"expiry_date":true},"fetchProcessingFields":{}},"user-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"user","required":true,"references":{"resourceName":"user","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}}],"primitive":false,"name":"user-has-permission","indexes":[{"type":"UNIQUE","fields":["user","permission"]}],"idField":"id","resourceName":"user-has-permission","modelName":"user has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true,"expiry_date":true},"fetchProcessingFields":{}},"api key":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"key","required":true,"references":{"resourceName":"key","fieldName":null},"index":"UNIQUE"},{"dataType":"Date Time","fieldName":"expiry date","required":false,"references":{"resourceName":"expiry date","fieldName":null}},{"dataType":"ForeignKey","fieldName":"is of-actor","required":true,"references":{"resourceName":"actor","fieldName":"id"}},{"dataType":"Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"description","required":false,"references":{"resourceName":"description","fieldName":null}}],"primitive":false,"name":"api key","indexes":[],"idField":"id","resourceName":"api key","modelName":"api key","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"key","localFields":{"created_at":true,"modified_at":true,"id":true,"key":true,"expiry_date":true,"name":true,"description":true},"fetchProcessingFields":{}},"api key-has-role":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"role","required":true,"references":{"resourceName":"role","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-role","indexes":[{"type":"UNIQUE","fields":["api key","role"]}],"idField":"id","resourceName":"api key-has-role","modelName":"api key has role","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}},"api key-has-permission":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"ForeignKey","fieldName":"api key","required":true,"references":{"resourceName":"api key","fieldName":"id"}},{"dataType":"ForeignKey","fieldName":"permission","required":true,"references":{"resourceName":"permission","fieldName":"id"}},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"}],"primitive":false,"name":"api key-has-permission","indexes":[{"type":"UNIQUE","fields":["api key","permission"]}],"idField":"id","resourceName":"api key-has-permission","modelName":"api key has permission","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"localFields":{"created_at":true,"modified_at":true,"id":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" TEXT NOT NULL UNIQUE\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'permission'\n\tAND \"trigger_name\" = 'permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"role\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" TEXT NOT NULL UNIQUE\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'role'\n\tAND \"trigger_name\" = 'role_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"role_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"role\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"role-has-permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"role\" INTEGER NOT NULL\n,\t\"permission\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\tFOREIGN KEY (\"role\") REFERENCES \"role\" (\"id\")\n,\tFOREIGN KEY (\"permission\") REFERENCES \"permission\" (\"id\")\n,\tUNIQUE(\"role\", \"permission\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'role-has-permission'\n\tAND \"trigger_name\" = 'role-has-permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"role-has-permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"role-has-permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"actor\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'actor'\n\tAND \"trigger_name\" = 'actor_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"actor_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"actor\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"user\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"actor\" INTEGER NOT NULL\n,\t\"username\" VARCHAR(255) NOT NULL UNIQUE\n,\t\"password\" CHAR(60) NOT NULL\n,\tFOREIGN KEY (\"actor\") REFERENCES \"actor\" (\"id\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'user'\n\tAND \"trigger_name\" = 'user_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"user_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"user\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"user-has-role\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"user\" INTEGER NOT NULL\n,\t\"role\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"expiry date\" TIMESTAMP NULL\n,\tFOREIGN KEY (\"user\") REFERENCES \"user\" (\"id\")\n,\tFOREIGN KEY (\"role\") REFERENCES \"role\" (\"id\")\n,\tUNIQUE(\"user\", \"role\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'user-has-role'\n\tAND \"trigger_name\" = 'user-has-role_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"user-has-role_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"user-has-role\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"user-has-permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"user\" INTEGER NOT NULL\n,\t\"permission\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"expiry date\" TIMESTAMP NULL\n,\tFOREIGN KEY (\"user\") REFERENCES \"user\" (\"id\")\n,\tFOREIGN KEY (\"permission\") REFERENCES \"permission\" (\"id\")\n,\tUNIQUE(\"user\", \"permission\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'user-has-permission'\n\tAND \"trigger_name\" = 'user-has-permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"user-has-permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"user-has-permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"api key\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"key\" VARCHAR(255) NOT NULL UNIQUE\n,\t\"expiry date\" TIMESTAMP NULL\n,\t\"is of-actor\" INTEGER NOT NULL\n,\t\"name\" TEXT NULL\n,\t\"description\" TEXT NULL\n,\tFOREIGN KEY (\"is of-actor\") REFERENCES \"actor\" (\"id\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'api key'\n\tAND \"trigger_name\" = 'api key_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"api key_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"api key\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"api key-has-role\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"api key\" INTEGER NOT NULL\n,\t\"role\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\tFOREIGN KEY (\"api key\") REFERENCES \"api key\" (\"id\")\n,\tFOREIGN KEY (\"role\") REFERENCES \"role\" (\"id\")\n,\tUNIQUE(\"api key\", \"role\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'api key-has-role'\n\tAND \"trigger_name\" = 'api key-has-role_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"api key-has-role_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"api key-has-role\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"api key-has-permission\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"api key\" INTEGER NOT NULL\n,\t\"permission\" INTEGER NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\tFOREIGN KEY (\"api key\") REFERENCES \"api key\" (\"id\")\n,\tFOREIGN KEY (\"permission\") REFERENCES \"permission\" (\"id\")\n,\tUNIQUE(\"api key\", \"permission\")\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'api key-has-permission'\n\tAND \"trigger_name\" = 'api key-has-permission_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"api key-has-permission_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"api key-has-permission\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"api key-has-permission\";","DROP TRIGGER \"api key-has-permission_trigger_update_modified_at\";","DROP TABLE \"api key-has-role\";","DROP TRIGGER \"api key-has-role_trigger_update_modified_at\";","DROP TABLE \"api key\";","DROP TRIGGER \"api key_trigger_update_modified_at\";","DROP TABLE \"user-has-permission\";","DROP TRIGGER \"user-has-permission_trigger_update_modified_at\";","DROP TABLE \"user-has-role\";","DROP TRIGGER \"user-has-role_trigger_update_modified_at\";","DROP TABLE \"user\";","DROP TRIGGER \"user_trigger_update_modified_at\";","DROP TABLE \"actor\";","DROP TRIGGER \"actor_trigger_update_modified_at\";","DROP TABLE \"role-has-permission\";","DROP TRIGGER \"role-has-permission_trigger_update_modified_at\";","DROP TABLE \"role\";","DROP TRIGGER \"role_trigger_update_modified_at\";","DROP TABLE \"permission\";","DROP TRIGGER \"permission_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]},"{\"tables\":{\"migration\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"JSON\",\"fieldName\":\"executed migrations\",\"required\":true,\"references\":{\"resourceName\":\"executed migrations\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration\",\"modelName\":\"migration\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration lock\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"model name\",\"required\":true,\"references\":{\"resourceName\":\"model name\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"}],\"primitive\":false,\"name\":\"migration lock\",\"indexes\":[],\"idField\":\"model name\",\"resourceName\":\"migration lock\",\"modelName\":\"migration lock\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"model name\"},\"migration status\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Short Text\",\"fieldName\":\"migration key\",\"required\":true,\"references\":{\"resourceName\":\"migration key\",\"fieldName\":null},\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Date Time\",\"fieldName\":\"start time\",\"required\":false,\"references\":{\"resourceName\":\"start time\",\"fieldName\":null}},{\"dataType\":\"Date Time\",\"fieldName\":\"last run time\",\"required\":false,\"references\":{\"resourceName\":\"last run time\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"run count\",\"required\":true,\"references\":{\"resourceName\":\"run count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"migrated row count\",\"required\":false,\"references\":{\"resourceName\":\"migrated row count\",\"fieldName\":null}},{\"dataType\":\"Integer\",\"fieldName\":\"error count\",\"required\":false,\"references\":{\"resourceName\":\"error count\",\"fieldName\":null}},{\"dataType\":\"Boolean\",\"fieldName\":\"is backing off\",\"required\":true},{\"dataType\":\"Date Time\",\"fieldName\":\"converged time\",\"required\":false,\"references\":{\"resourceName\":\"converged time\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"migration status\",\"indexes\":[],\"idField\":\"migration key\",\"resourceName\":\"migration status\",\"modelName\":\"migration status\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"migration key\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"model name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"executed migrations\":{\"JSON\":{\"$\":[\"JSON\"]},\"has\":{\"JSON\":{\"$\":[\"JSON\"]}}},\"lock time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration\":{\"has\":{\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}}},\"model name\":{\"$\":[\"model name\"]},\"executed migrations\":{\"$\":[\"executed migrations\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}},\"migration lock\":{\"has\":{\"model name\":{\"$\":[\"model name\"]}}},\"model name\":{\"$\":[\"model name\"]}},\"migration key\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"start time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"last run time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"run count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"migrated row count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"error count\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"converged time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}},\"migration status\":{\"has\":{\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"migration key\":{\"$\":[\"migration key\"]},\"start time\":{\"$\":[\"start time\"]},\"last run time\":{\"$\":[\"last run time\"]},\"run count\":{\"$\":[\"run count\"]},\"migrated row count\":{\"$\":[\"migrated row count\"]},\"error count\":{\"$\":[\"error count\"]},\"is backing off\":{\"$\":[\"is backing off\"]},\"converged time\":{\"$\":[\"converged time\"]}}},\"rules\":[],\"synonyms\":{}}":{"synonyms":{},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"model name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"executed migrations":{"JSON":{"$":["JSON"]},"has":{"JSON":{"$":["JSON"]}}},"lock time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration":{"has":{"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}}},"model name":{"$":["model name"]},"executed migrations":{"$":["executed migrations"]}},"migration lock":{"has":{"model name":{"$":["model name"]}},"migration lock":{"has":{"model name":{"$":["model name"]}}},"model name":{"$":["model name"]}},"migration key":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"start time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"last run time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"run count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"migrated row count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"error count":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"converged time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}},"migration status":{"has":{"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"converged time":{"$":["converged time"]}}},"migration key":{"$":["migration key"]},"start time":{"$":["start time"]},"last run time":{"$":["last run time"]},"run count":{"$":["run count"]},"migrated row count":{"$":["migrated row count"]},"error count":{"$":["error count"]},"is backing off":{"$":["is backing off"]},"converged time":{"$":["converged time"]}}},"tables":{"migration":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"JSON","fieldName":"executed migrations","required":true,"references":{"resourceName":"executed migrations","fieldName":null}}],"primitive":false,"name":"migration","indexes":[],"idField":"model name","resourceName":"migration","modelName":"migration","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name","localFields":{"created_at":true,"modified_at":true,"model_name":true,"executed_migrations":true},"fetchProcessingFields":{}},"migration lock":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"model name","required":true,"references":{"resourceName":"model name","fieldName":null},"index":"PRIMARY KEY"}],"primitive":false,"name":"migration lock","indexes":[],"idField":"model name","resourceName":"migration lock","modelName":"migration lock","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"model name","localFields":{"created_at":true,"modified_at":true,"model_name":true},"fetchProcessingFields":{}},"migration status":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Short Text","fieldName":"migration key","required":true,"references":{"resourceName":"migration key","fieldName":null},"index":"PRIMARY KEY"},{"dataType":"Date Time","fieldName":"start time","required":false,"references":{"resourceName":"start time","fieldName":null}},{"dataType":"Date Time","fieldName":"last run time","required":false,"references":{"resourceName":"last run time","fieldName":null}},{"dataType":"Integer","fieldName":"run count","required":true,"references":{"resourceName":"run count","fieldName":null}},{"dataType":"Integer","fieldName":"migrated row count","required":false,"references":{"resourceName":"migrated row count","fieldName":null}},{"dataType":"Integer","fieldName":"error count","required":false,"references":{"resourceName":"error count","fieldName":null}},{"dataType":"Boolean","fieldName":"is backing off","required":true},{"dataType":"Date Time","fieldName":"converged time","required":false,"references":{"resourceName":"converged time","fieldName":null}}],"primitive":false,"name":"migration status","indexes":[],"idField":"migration key","resourceName":"migration status","modelName":"migration status","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"migration key","localFields":{"created_at":true,"modified_at":true,"migration_key":true,"start_time":true,"last_run_time":true,"run_count":true,"migrated_row_count":true,"error_count":true,"is_backing_off":true,"converged_time":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"migration\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"model name\" VARCHAR(255) NOT NULL PRIMARY KEY\n,\t\"executed migrations\" TEXT NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'migration'\n\tAND \"trigger_name\" = 'migration_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"migration_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"migration\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"migration lock\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"model name\" VARCHAR(255) NOT NULL PRIMARY KEY\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'migration lock'\n\tAND \"trigger_name\" = 'migration lock_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"migration lock_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"migration lock\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"migration status\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"migration key\" VARCHAR(255) NOT NULL PRIMARY KEY\n,\t\"start time\" TIMESTAMP NULL\n,\t\"last run time\" TIMESTAMP NULL\n,\t\"run count\" INTEGER NOT NULL\n,\t\"migrated row count\" INTEGER NULL\n,\t\"error count\" INTEGER NULL\n,\t\"is backing off\" INTEGER DEFAULT 0 NOT NULL\n,\t\"converged time\" TIMESTAMP NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'migration status'\n\tAND \"trigger_name\" = 'migration status_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"migration status_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"migration status\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"migration status\";","DROP TRIGGER \"migration status_trigger_update_modified_at\";","DROP TABLE \"migration lock\";","DROP TRIGGER \"migration lock_trigger_update_modified_at\";","DROP TABLE \"migration\";","DROP TRIGGER \"migration_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]},"{\"tables\":{\"device\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"device\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"device\",\"modelName\":\"device\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"},\"deviceb\":{\"fields\":[{\"dataType\":\"Date Time\",\"fieldName\":\"created at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Date Time\",\"fieldName\":\"modified at\",\"required\":true,\"defaultValue\":\"CURRENT_TIMESTAMP\"},{\"dataType\":\"Serial\",\"fieldName\":\"id\",\"required\":true,\"index\":\"PRIMARY KEY\"},{\"dataType\":\"Short Text\",\"fieldName\":\"name\",\"required\":false,\"references\":{\"resourceName\":\"name\",\"fieldName\":null}},{\"dataType\":\"Text\",\"fieldName\":\"note\",\"required\":false,\"references\":{\"resourceName\":\"note\",\"fieldName\":null}},{\"dataType\":\"Short Text\",\"fieldName\":\"type\",\"required\":true,\"references\":{\"resourceName\":\"type\",\"fieldName\":null}}],\"primitive\":false,\"name\":\"deviceb\",\"indexes\":[],\"idField\":\"id\",\"resourceName\":\"deviceb\",\"modelName\":\"deviceb\",\"triggers\":[{\"when\":\"BEFORE\",\"operation\":\"UPDATE\",\"level\":\"ROW\",\"fnName\":\"trigger_update_modified_at\"}],\"referenceScheme\":\"id\"}},\"functions\":{\"trigger_update_modified_at\":{\"type\":\"trigger\",\"body\":\"NEW.\\\"modified at\\\" = NOW();\\nRETURN NEW;\",\"language\":\"plpgsql\"}},\"relationships\":{\"Big Integer\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Serial\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Case Insensitive Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"JSON\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Hashed\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"SHA\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Length\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Current Time\":{\"Date Time\":{\"$\":[\"Date Time\"]},\"has\":{\"Date Time\":{\"$\":[\"Date Time\"]}}},\"Short Text\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"Red Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Green Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Blue Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Alpha Component\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"Color\":{\"Integer\":{\"$\":[\"Integer\"]},\"has\":{\"Integer\":{\"$\":[\"Integer\"]}}},\"name\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"note\":{\"Text\":{\"$\":[\"Text\"]},\"has\":{\"Text\":{\"$\":[\"Text\"]}}},\"type\":{\"Short Text\":{\"$\":[\"Short Text\"]},\"has\":{\"Short Text\":{\"$\":[\"Short Text\"]}}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"device\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}},\"deviceb\":{\"has\":{\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"name\":{\"$\":[\"name\"]},\"note\":{\"$\":[\"note\"]},\"type\":{\"$\":[\"type\"]}}},\"rules\":[],\"synonyms\":{}}":{"synonyms":{},"relationships":{"Big Integer":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Serial":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Case Insensitive Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"JSON":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Hashed":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"SHA":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Length":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Current Time":{"Date Time":{"$":["Date Time"]},"has":{"Date Time":{"$":["Date Time"]}}},"Short Text":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"Red Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Green Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Blue Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Alpha Component":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"Color":{"Integer":{"$":["Integer"]},"has":{"Integer":{"$":["Integer"]}}},"name":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"note":{"Text":{"$":["Text"]},"has":{"Text":{"$":["Text"]}}},"type":{"Short Text":{"$":["Short Text"]},"has":{"Short Text":{"$":["Short Text"]}}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"device":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}},"deviceb":{"has":{"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"name":{"$":["name"]},"note":{"$":["note"]},"type":{"$":["type"]}}},"tables":{"device":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"device","indexes":[],"idField":"id","resourceName":"device","modelName":"device","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true,"note":true,"type":true},"fetchProcessingFields":{}},"deviceb":{"fields":[{"dataType":"Date Time","fieldName":"created at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Date Time","fieldName":"modified at","required":true,"defaultValue":"CURRENT_TIMESTAMP"},{"dataType":"Serial","fieldName":"id","required":true,"index":"PRIMARY KEY"},{"dataType":"Short Text","fieldName":"name","required":false,"references":{"resourceName":"name","fieldName":null}},{"dataType":"Text","fieldName":"note","required":false,"references":{"resourceName":"note","fieldName":null}},{"dataType":"Short Text","fieldName":"type","required":true,"references":{"resourceName":"type","fieldName":null}}],"primitive":false,"name":"deviceb","indexes":[],"idField":"id","resourceName":"deviceb","modelName":"deviceb","triggers":[{"when":"BEFORE","operation":"UPDATE","level":"ROW","fnName":"trigger_update_modified_at"}],"referenceScheme":"id","localFields":{"created_at":true,"modified_at":true,"id":true,"name":true,"note":true,"type":true},"fetchProcessingFields":{}}},"createSchema":["DO $$\nBEGIN\n\tPERFORM '\"trigger_update_modified_at\"()'::regprocedure;\nEXCEPTION WHEN undefined_function THEN\n\tCREATE FUNCTION \"trigger_update_modified_at\"()\n\tRETURNS TRIGGER AS $fn$\n\tBEGIN\n\t\tNEW.\"modified at\" = NOW();\nRETURN NEW;\n\tEND;\n\t$fn$ LANGUAGE plpgsql;\nEND;\n$$;","CREATE TABLE IF NOT EXISTS \"device\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" VARCHAR(255) NULL\n,\t\"note\" TEXT NULL\n,\t\"type\" VARCHAR(255) NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'device'\n\tAND \"trigger_name\" = 'device_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"device_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"device\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$","CREATE TABLE IF NOT EXISTS \"deviceb\" (\n\t\"created at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"modified at\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL\n,\t\"id\" SERIAL NOT NULL PRIMARY KEY\n,\t\"name\" VARCHAR(255) NULL\n,\t\"note\" TEXT NULL\n,\t\"type\" VARCHAR(255) NOT NULL\n);","DO\n$$\nBEGIN\nIF NOT EXISTS(\n\tSELECT 1\n\tFROM \"information_schema\".\"triggers\"\n\tWHERE \"event_object_table\" = 'deviceb'\n\tAND \"trigger_name\" = 'deviceb_trigger_update_modified_at'\n) THEN\n\tCREATE TRIGGER \"deviceb_trigger_update_modified_at\"\n\tBEFORE UPDATE ON \"deviceb\"\n\tFOR EACH ROW\n\tEXECUTE PROCEDURE \"trigger_update_modified_at\"();\nEND IF;\nEND;\n$$"],"dropSchema":["DROP TABLE \"deviceb\";","DROP TRIGGER \"deviceb_trigger_update_modified_at\";","DROP TABLE \"device\";","DROP TRIGGER \"device_trigger_update_modified_at\";","DROP FUNCTION \"trigger_update_modified_at\"();"],"rules":[]}}}}