ampersand-3.0.3: AmpersandData/FormalAmpersand/Generics.adl
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