packages feed

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