CONTEXT Generics IN ENGLISH LATEX PURPOSE CONTEXT Generics {+This context specifies the administration that currrently is, and in future will have been, the contents of GENERICS.PHP-} CONCEPT MySQLQuery "" TYPE "Text" RELATION versionInfo[Context*AmpersandVersion] [UNI,TOT] -- e.g. 'Ampersand v3.0.3[master:029ea02], build time: 05-Feb-15 08:46:36 W. Europe Standard Time' RELATION contextName[Context*ContextName] [UNI,TOT] -- e.g. 'GRCengine'; RELATION dbName[Context*DatabaseName] [UNI,TOT] -- e.g. 'GRCengine'; -- HJO20150206 @Rieks: Willen we hier nog iets met signalTableName, isDev, autoRefreshInterval? --! To be done !-- --RELATION allSpecializations[CONTEXT*...] = // transitive, so including specializations of specializations -- array -- (); --[Relations]-- --IDENT Relations: Relation(name,srcConcept,tgtConcept,allRelations~) -- the name of the relation must be unique; it is therefor not the same as a RAP:Declaration. RELATION allRelations[Context*Relation] [SUR,INJ] -- generics.php:$allRelations MEANING "Every relation belongs to a Context" -- For now, we assume there is one Context. RELATION name[Relation*RelationName] [UNI,TOT] MEANING "Every relation has a name by which it can be referenced within its Context(s)." RELATION srcConcept[Relation*Concept] [UNI,TOT] MEANING "Every relation has one source Concept" RELATION tgtConcept[Relation*Concept] [UNI,TOT] MEANING "Every relation has one target Concept" RELATION table[Relation*DBTable] [UNI,TOT] MEANING "The population of a relation is stored in one database-table." RELATION srcCol[Relation*DBTableColumn] [UNI,TOT] MEANING "The source atoms of the population of a relation are stored in a database column" RELATION tgtCol[Relation*DBTableColumn] [UNI,TOT] MEANING "The target atoms of the population of a relation are stored in a database column" RELATION affectedInvConjunctIds[Relation*ConjunctID] MEANING "When a pair in a relation is edited (created, updated or deleted), an (invariant) conjunct may be affected" RELATION affectedSigConjunctIds[Relation*ConjunctID] MEANING "When a pair in a relation is edited (created, updated or deleted), a (signal) conjunct may be affected" --[Concepts]-- RELATION allConcepts[Context*Concept] [SUR,INJ] -- Aanname: De smerige id van een Concept is gelijk aan de naam van dat Concept. RELATION name[Concept*ConceptName][TOT,UNI] RELATION affectedInvConjunctIds[Concept*ConjunctID] MEANING "When an atom in a concept is edited (created, updated or deleted), a (invariant) conjunct may be affected" RELATION affectedSigConjunctIds[Concept*ConjunctID] MEANING "When an atom in a concept is edited (created, updated or deleted), a (signal) conjunct may be affected" RELATION conceptTableFields[Concept*TableColumn] [TOT] -- alleen 'ONE' overtreedt de TOTaliteit hier, maar ONE gaat er toch uit. MEANING "the database-table column of the concept" --[ConceptTables]-- --MEANING "A ConceptTable is associated with a database-table" -- cols[ConceptTable*DBTableColumn] [TOT] --MEANING "A ConceptTable is associated with at least one database-table column" --[TableColumnInfo]-- -- HJO: Ik heb hier bewust moeten afwijken van huidige Generics.php, omdat er een concept tussen zit RELATION tableInfo[Context*DBTable] [SUR,INJ] RELATION columninfo[DBTable*TableColumn] [SUR,INJ] RELATION concept[TableColumn*Concept] [UNI,TOT] -- name of concept in a column of a (broad) table RELATION unique[TableColumn*BOOLEAN] [UNI,TOT] -- is this column unique? ('true' or 'false') RELATION null[TableColumn*BOOLEAN] [UNI,TOT] -- can this column be 'NULL'? ('true' or 'false') --[Rules]-- --IDENT Rules: Rule(ruleContext,ruleID) RELATION allRules[Context*Rule] [SUR,INJ] -- Rule is part of context RELATION name[Rule*RuleID] [UNI,TOT] -- e.g. 'ASY bfOUprop::BusinessFunction*BusinessFunction' RELATION ruleAdl[Rule*Adl] [UNI,TOT] -- e.g. 'bfOUprop~ /\\ bfOUprop |- I[BusinessFunction]' RELATION origin[Rule*Origin] [TOT] -- e.g. 'line 367:10, file "C:\\\\Ampersand\\\\Workspace\\\\NRM\\\\NRM-BasicProcesses.adl"' RELATION meaning[Rule*Meaning] -- e.g. 'bfOUprop[BusinessFunction] is antisymmetric' RELATION message[Rule*Message] -- e.g. 'bfOUprop[BusinessFunction] is not antisymmetric' RELATION srcConcept[Rule*Concept][UNI,TOT] -- e.g. 'BusinessFunction' RELATION tgtConcept[Rule*Concept][UNI,TOT] -- e.g. 'BusinessFunction' RELATION conjunctIds[Rule*ConjunctID] -- e.g. 'conj_159' RELATION pairView[Rule*PairView] -- e.g. -- array -- ( array ( 'segmentType' => 'Text', 'Text' => '{EX} DelPair;rliAcceptableRiskLevel;RLI;') -- , array ( 'segmentType' => 'Exp' -- , 'srcOrTgt' => 'Src' -- , 'expTgt' => 'RLI' -- , 'expSQL' => -- '/* I[RLI] */ -- SELECT `RLI` AS `src`, `RLI` AS `tgt` -- FROM `RLI` -- WHERE `RLI` IS NOT NULL' -- ) -- , array ( 'segmentType' => 'Text', 'Text' => ';Risk;') -- , array ( 'segmentType' => 'Exp' -- , 'srcOrTgt' => 'Tgt' -- , 'expTgt' => 'Risk' -- , 'expSQL' => -- '/* I[Risk] */ -- SELECT `Risk` AS `src`, `Risk` AS `tgt` -- FROM `Risk` -- WHERE `Risk` IS NOT NULL' -- ) -- ) -- ) RELATION segment[PairView*PairViewSegment] [SUR,INJ] RELATION sequenceNr[PairViewSegment*Int] [UNI,TOT] RELATION segmentType[PairViewSegment*PairViewSegmentType] [UNI,TOT] -- 'Text' or 'Exp' RELATION text[PairViewSegment*String] [UNI] -- IFF segmentType == 'Text' RELATION srcOrTgt[PairViewSegment*SourceOrTarget] [UNI] -- 'Src' or 'Tgt'. -- IFF SegmentType == 'Exp' RELATION expTgt[PairViewSegment*Concept] [UNI] -- IFF SegmentType == 'Exp' RELATION expSQL[PairViewSegment*MySQLQuery] [UNI] -- IFF SegmentType == 'Exp' --[Conjuncts]-- RELATION allConjuncts[Context*Conjunct] [SUR,INJ] RELATION signalRuleNames[Conjunct*Rule] -- e.g. 'Activation of Managed BFControls' -- this is a signal rule RELATION invariantRuleNames[Conjunct*Rule] -- similar, for invariant rules. RELATION violationsSQL[Conjunct*MySQLQuery] -- e.g. '/* case: (EIsc lst\\\'@(_:_:_)) -- nhIsDashboard /\\\\ -I[NormHierarchy] ([NormHierarchy*NormHierarchy]) */ -- SELECT DISTINCT isect0.`NormHierarchy` AS `src`, isect0.`tgt_nhIsDashboard` AS `tgt` -- FROM ( SELECT `NormHierarchy`, `tgt_nhIsDashboard` -- FROM `NormHierarchy` WHERE `NormHierarchy` IS NOT NULL AND `tgt_nhIsDashboard` IS NOT NULL) AS isect0 -- WHERE isect0.NormHierarchy <> isect0.`tgt_nhIsDashboard` AND isect0.NormHierarchy IS NOT NULL AND isect0.`tgt_nhIsDashboard` IS NOT NULL' --[Roles]-- RELATION allRoles[Context*Role] [SUR,INJ] RELATION name[Role*RoleName] [UNI,TOT] RELATION maintains[Role*Rule] -- e.g. ("ExecEngine", "Activeren van rollen") (was "ruleNames") --[ --//RELATION generics_allViews is sorted from spec to gen such that the first match for a concept will be the most specific (e.g. see DatabaseUtils.getView()). --RELATION generics_allViews = -- array -- ( array ( 'label' => 'OrgUnits' -- , 'concept' => 'OrgUnit' -- , 'segments' => -- array -- ( array ( 'segmentType' => 'Exp' -- , 'label' => '1' // view exp: ouID -- , 'expSQL' => -- 'SELECT DISTINCT `OrgUnit` AS `src`, `tgt_ouID` AS `tgt` -- FROM `OrgUnit` -- WHERE `OrgUnit` IS NOT NULL AND `tgt_ouID` IS NOT NULL' -- ) -- ) -- ) -- , array ( 'label' => 'Person' -- , 'concept' => 'Person' -- , 'segments' => -- array -- ( array ( 'segmentType' => 'Exp' -- , 'label' => '1' // view exp: personFirstName -- , 'expSQL' => -- 'SELECT DISTINCT `Person` AS `src`, `tgt_personFirstName` AS `tgt` -- FROM `Person` -- WHERE `Person` IS NOT NULL AND `tgt_personFirstName` IS NOT NULL' -- ) -- , array ( 'segmentType' => 'Text', 'Text' => ' ') -- , array ( 'segmentType' => 'Exp' -- , 'label' => '3' // view exp: personLastName -- , 'expSQL' => -- 'SELECT DISTINCT `Person` AS `src`, `tgt_personLastName` AS `tgt` -- FROM `Person` -- WHERE `Person` IS NOT NULL AND `tgt_personLastName` IS NOT NULL' -- ) -- ) -- ) --[InterfaceObjects]-- --RELATION generics_allInterfaceObjects = -- array -- ( // Top-level interface RLI for all roles: -- 'RLI' => -- array ( 'name' => 'RLI' -- // Normalized interface expression (== expressionSQL): I[RLI] -- , 'interfaceRoles' => array () -- , 'invConjunctIds' => array () -- , 'sigConjunctIds' => array () -- , 'relation' => '' // this interface expression does not represent a declared relation -- , 'relationIsFlipped' => '' -- , 'srcConcept' => 'RLI' -- , 'tgtConcept' => 'RLI' -- , 'expressionSQL' => '/* I[RLI] */ -- SELECT `RLI` AS `src`, `RLI` AS `tgt` -- FROM `RLI` -- WHERE `RLI` IS NOT NULL' -- // Box -- , 'boxSubInterfaces' => -- array -- ( array ( 'name' => 'Risk' -- // Normalized interface expression (== expressionSQL): rliRisk -- , 'relation' => 'rel_rliRisk_RLI_Risk' // this interface represents a declared relation -- , 'relationIsEditable' => false -- , 'relationIsFlipped' => False -- , 'min' => 'Zero' -- , 'max' => 'One' -- , 'srcConcept' => 'RLI' -- , 'tgtConcept' => 'Risk' -- , 'expressionSQL' => 'SELECT DISTINCT `RLI` AS `src`, `tgt_rliRisk` AS `tgt` -- FROM `RLI` -- WHERE `RLI` IS NOT NULL AND `tgt_rliRisk` IS NOT NULL' -- // No subinterfaces -- ) -- , array ( 'name' => 'Kans' -- // Normalized interface expression (== expressionSQL): rliLikelihood -- , 'relation' => 'rel_rliLikelihood_RLI_Likelihood' // this interface represents a declared relation -- , 'relationIsEditable' => false -- , 'relationIsFlipped' => False -- , 'min' => 'Zero' -- , 'max' => 'One' -- , 'srcConcept' => 'RLI' -- , 'tgtConcept' => 'Likelihood' -- , 'expressionSQL' => 'SELECT DISTINCT `RLI` AS `src`, `tgt_rliLikelihood` AS `tgt` -- FROM `RLI` -- WHERE `RLI` IS NOT NULL AND `tgt_rliLikelihood` IS NOT NULL' -- // No subinterfaces -- ) -- , array ( 'name' => 'Impact' -- // Normalized interface expression (== expressionSQL): rliImpact -- , 'relation' => 'rel_rliImpact_RLI_Impact' // this interface represents a declared relation -- , 'relationIsEditable' => false -- , 'relationIsFlipped' => False -- , 'min' => 'Zero' -- , 'max' => 'One' -- , 'srcConcept' => 'RLI' -- , 'tgtConcept' => 'Impact' -- , 'expressionSQL' => 'SELECT DISTINCT `RLI` AS `src`, `tgt_rliImpact` AS `tgt` -- FROM `RLI` -- WHERE `RLI` IS NOT NULL AND `tgt_rliImpact` IS NOT NULL' -- // No subinterfaces -- ) -- , array ( 'name' => 'A-lvl' -- // Normalized interface expression (== expressionSQL): rliAcceptableRiskLevel -- , 'relation' => 'rel_rliAcceptableRiskLevel_RLI_Risk' // this interface represents a declared relation -- , 'relationIsEditable' => false -- , 'relationIsFlipped' => False -- , 'min' => 'Zero' -- , 'max' => 'One' -- , 'srcConcept' => 'RLI' -- , 'tgtConcept' => 'Risk' -- , 'expressionSQL' => 'SELECT DISTINCT `RLI` AS `src`, `tgt_rliAcceptableRiskLevel` AS `tgt` -- FROM `RLI` -- WHERE `RLI` IS NOT NULL AND `tgt_rliAcceptableRiskLevel` IS NOT NULL' -- // No subinterfaces -- ) -- ) -- ) ENDCONTEXT