Safe Haskell | None |
---|
- data A_Context
- data P_Context = PCtx {
- ctx_nm :: String
- ctx_pos :: [Origin]
- ctx_lang :: Maybe Lang
- ctx_markup :: Maybe PandocFormat
- ctx_thms :: [String]
- ctx_pats :: [P_Pattern]
- ctx_PPrcs :: [P_Process]
- ctx_rs :: [P_Rule TermPrim]
- ctx_ds :: [P_Declaration]
- ctx_cs :: [ConceptDef]
- ctx_ks :: [P_IdentDef]
- ctx_vs :: [P_ViewDef]
- ctx_gs :: [P_Gen]
- ctx_ifcs :: [P_Interface]
- ctx_ps :: [PPurpose]
- ctx_pops :: [P_Population]
- ctx_sql :: [P_ObjectDef]
- ctx_php :: [P_ObjectDef]
- ctx_metas :: [Meta]
- data P_Population
- data PairView a = PairView {
- ppv_segs :: [PairViewSegment a]
- data PairViewSegment a
- data SrcOrTgt
- data P_Rule a = P_Ru {}
- data Term a
- = Prim a
- | Pequ Origin (Term a) (Term a)
- | Pimp Origin (Term a) (Term a)
- | PIsc Origin (Term a) (Term a)
- | PUni Origin (Term a) (Term a)
- | PDif Origin (Term a) (Term a)
- | PLrs Origin (Term a) (Term a)
- | PRrs Origin (Term a) (Term a)
- | PDia Origin (Term a) (Term a)
- | PCps Origin (Term a) (Term a)
- | PRad Origin (Term a) (Term a)
- | PPrd Origin (Term a) (Term a)
- | PKl0 Origin (Term a)
- | PKl1 Origin (Term a)
- | PFlp Origin (Term a)
- | PCpl Origin (Term a)
- | PBrk Origin (Term a)
- data TermPrim
- data P_Sign = P_Sign {}
- data P_Concept
- = PCpt { }
- | P_Singleton
- data P_Declaration = P_Sgn {}
- data P_Pattern = P_Pat {}
- data P_Gen
- data P_Markup = P_Markup {}
- data PRef2Obj
- data PPurpose = PRef2 {}
- newtype PMeaning = PMeaning P_Markup
- data Meta = Meta {}
- data MetaObj = ContextMeta
- data A_Concept
- = PlainConcept { }
- | ONE
- data A_Gen
- data Sign = Sign A_Concept A_Concept
- data ConceptDef = Cd {}
- class ConceptStructure a where
- concs :: a -> [A_Concept]
- relsUsedIn :: a -> [Declaration]
- relsMentionedIn :: a -> [Declaration]
- primsMentionedIn :: a -> [Expression]
- expressionsIn :: a -> [Expression]
- mp1Exprs :: a -> [Expression]
- mp1Pops :: a -> [Population]
- data Activity = Act {}
- data AMeaning = AMeaning {}
- data Quad = Quad {
- qDcl :: Declaration
- qClauses :: Clauses
- data RuleClause = RC {
- rc_int :: Int
- rc_rulename :: String
- rc_conjunct :: Expression
- rc_dnfClauses :: [DnfClause]
- data Fswitchboard = Fswtch {}
- data ECArule = ECA {}
- data Event = On {
- eSrt :: InsDel
- eDcl :: Declaration
- data InsDel
- data Pattern = A_Pat {}
- data Declaration
- data IdentityDef = Id {
- idPos :: Origin
- idLbl :: String
- idCpt :: A_Concept
- identityAts :: [IdentitySegment]
- data ViewDef = Vd {}
- data IdentitySegment = IdentityExp ObjectDef
- data ViewSegment
- data Expression
- = EEqu (Expression, Expression)
- | EImp (Expression, Expression)
- | EIsc (Expression, Expression)
- | EUni (Expression, Expression)
- | EDif (Expression, Expression)
- | ELrs (Expression, Expression)
- | ERrs (Expression, Expression)
- | EDia (Expression, Expression)
- | ECps (Expression, Expression)
- | ERad (Expression, Expression)
- | EPrd (Expression, Expression)
- | EKl0 Expression
- | EKl1 Expression
- | EFlp Expression
- | ECpl Expression
- | EBrk Expression
- | EDcD Declaration
- | EDcI A_Concept
- | EEps A_Concept Sign
- | EDcV Sign
- | EMp1 String A_Concept
- data Population
- data Fspc = Fspc {
- fsName :: String
- fspos :: [Origin]
- themes :: [String]
- pattsInScope :: [Pattern]
- procsInScope :: [Process]
- rulesInScope :: [Rule]
- declsInScope :: [Declaration]
- concsInScope :: [A_Concept]
- cDefsInScope :: [ConceptDef]
- gensInScope :: [A_Gen]
- fsLang :: Lang
- vprocesses :: [FProcess]
- vplugInfos :: [PlugInfo]
- plugInfos :: [PlugInfo]
- interfaceS :: [Interface]
- interfaceG :: [Interface]
- fSwitchboard :: Fswitchboard
- fActivities :: [Activity]
- fRoleRels :: [(String, Declaration)]
- fRoleRuls :: [(String, Rule)]
- fRoles :: [String]
- vrules :: [Rule]
- grules :: [Rule]
- invars :: [Rule]
- allRules :: [Rule]
- allUsedDecls :: [Declaration]
- allDecls :: [Declaration]
- vrels :: [Declaration]
- allConcepts :: [A_Concept]
- kernels :: [[A_Concept]]
- vIndices :: [IdentityDef]
- vviews :: [ViewDef]
- vgens :: [A_Gen]
- vconjs :: [RuleClause]
- vquads :: [Quad]
- vEcas :: [ECArule]
- fsisa :: [(A_Concept, A_Concept)]
- vpatterns :: [Pattern]
- conceptDefs :: [ConceptDef]
- fSexpls :: [Purpose]
- metas :: [Meta]
- initialPops :: [Population]
- allViolations :: [(Rule, [Paire])]
- concDefs :: Fspc -> A_Concept -> [ConceptDef]
- data PlugSQL
- data SqlField = Fld {}
- data SqlType
- data PlugInfo
- data PAclause
- = CHC {
- paCls :: [PAclause]
- paMotiv :: [(Expression, [Rule])]
- | GCH {
- paGCls :: [(InsDel, Expression, PAclause)]
- paMotiv :: [(Expression, [Rule])]
- | ALL {
- paCls :: [PAclause]
- paMotiv :: [(Expression, [Rule])]
- | Do {
- paSrt :: InsDel
- paTo :: Declaration
- paDelta :: Expression
- paMotiv :: [(Expression, [Rule])]
- | New { }
- | Rmv { }
- | Nop {
- paMotiv :: [(Expression, [Rule])]
- | Blk {
- paMotiv :: [(Expression, [Rule])]
- | Let { }
- | Ref { }
- = CHC {
- data Rule = Ru {}
- data Process = Proc {}
- data FProcess = FProc {
- fpProc :: Process
- fpActivities :: [Activity]
- data Prop
- data RuleOrigin
- = UserDefined
- | Multiplicity
- | Identity
- data Lang
- data SqlFieldUsage
- data DnfClause = Dnf [Expression] [Expression]
- data Clauses = Clauses {
- cl_conjNF :: [RuleClause]
- cl_rule :: Rule
- data Options = Options {
- showVersion :: Bool
- preVersion :: String
- postVersion :: String
- showHelp :: Bool
- verboseP :: Bool
- development :: Bool
- validateSQL :: Bool
- genPrototype :: Bool
- dirPrototype :: String
- allInterfaces :: Bool
- dbName :: String
- genAtlas :: Bool
- namespace :: String
- autoRefresh :: Maybe Int
- testRule :: Maybe String
- customCssFile :: Maybe FilePath
- importfile :: FilePath
- fileformat :: FileFormat
- theme :: DocTheme
- genXML :: Bool
- genFspec :: Bool
- diag :: Bool
- fspecFormat :: FspecFormat
- genGraphics :: Bool
- genEcaDoc :: Bool
- proofs :: Bool
- haskell :: Bool
- dirOutput :: String
- outputfile :: String
- crowfoot :: Bool
- blackWhite :: Bool
- doubleEdges :: Bool
- showPredExpr :: Bool
- noDiagnosis :: Bool
- diagnosisOnly :: Bool
- genLegalRefs :: Bool
- genUML :: Bool
- genFPAExcel :: Bool
- genStaticFiles :: Bool
- genBericht :: Bool
- genMeat :: Bool
- language :: Maybe Lang
- dirExec :: String
- ampersandDataDir :: FilePath
- progrName :: String
- fileName :: FilePath
- baseName :: String
- logName :: FilePath
- genTime :: LocalTime
- export2adl :: Bool
- test :: Bool
- includeRap :: Bool
- pangoFont :: String
- sqlHost :: String
- sqlLogin :: String
- sqlPwd :: String
- parserVersion :: ParserVersion
- data DocTheme
- data Picture = Pict {}
- writePicture :: Options -> Picture -> IO ()
- data PictureReq
- makePicture :: Options -> Fspc -> PictureReq -> Picture
- data FilePos = FilePos (String, Pos, String)
- data Origin
- data Pos = Pos !Line !Column
- data FPA = FPA {
- fpType :: FPtype
- complexity :: FPcompl
- data FPcompl
- mkPair :: String -> String -> Paire
- class Association rel where
- flp :: Flippable a => a -> a
- class Collection a where
- class Identified a where
- class ProcessStructure a where
- processes :: a -> [Process]
- roles :: a -> [String]
- interfaces :: a -> [Interface]
- objDefs :: a -> [ObjectDef]
- processRules :: a -> [Rule]
- maintains :: a -> [(String, Rule)]
- mayEdit :: a -> [(String, Declaration)]
- workFromProcessRules :: [A_Gen] -> [Population] -> a -> [(Rule, Paire)]
- data ObjectDef = Obj {}
- class Association r => Relational r where
- multiplicities :: r -> [Prop]
- isProp :: r -> Bool
- isImin :: r -> Bool
- isTrue :: r -> Bool
- isFalse :: r -> Bool
- isFunction :: r -> Bool
- isTot :: r -> Bool
- isUni :: r -> Bool
- isSur :: r -> Bool
- isInj :: r -> Bool
- isRfx :: r -> Bool
- isIrf :: r -> Bool
- isTrn :: r -> Bool
- isSym :: r -> Bool
- isAsy :: r -> Bool
- isIdent :: r -> Bool
- isEpsilon :: r -> Bool
- data Interface = Ifc {}
- data SubInterface
- = Box A_Concept [ObjectDef]
- | InterfaceRef String
- class Object a where
- concept :: a -> A_Concept
- attributes :: a -> [ObjectDef]
- contextOf :: a -> Expression
- class (Identified p, Eq p, Show p) => Plugable p where
- class Identified a => Motivated a where
- purposeOf :: Fspc -> Lang -> a -> Maybe [Purpose]
- explForObj :: a -> ExplObj -> Bool
- explanations :: a -> [Purpose]
- purposesDefinedIn :: Fspc -> Lang -> a -> [Purpose]
- class Traced a where
- class Language a where
- objectdef :: a -> ObjectDef
- relsDefdIn :: a -> [Declaration]
- udefrules :: a -> [Rule]
- invariants :: a -> [Rule]
- multrules :: a -> [Rule]
- identityRules :: a -> [Rule]
- identities :: a -> [IdentityDef]
- viewDefs :: a -> [ViewDef]
- gens :: a -> [A_Gen]
- patterns :: a -> [Pattern]
- class FPAble a where
- class ShowHS a where
- class ShowHSName a where
- showHSName :: a -> String
- haskellIdentifier :: String -> String
- (<==>) :: Poset a => a -> a -> Bool
- meet :: Sortable a => a -> a -> a
- join :: Sortable a => a -> a -> a
- sortWith :: (Show b, Poset b) => (b -> [[b]], [b]) -> (a -> b) -> [a] -> [a]
- atomsOf :: [A_Gen] -> [Population] -> A_Concept -> [String]
- smallerConcepts :: [A_Gen] -> A_Concept -> [A_Concept]
- largerConcepts :: [A_Gen] -> A_Concept -> [A_Concept]
- rootConcepts :: [A_Gen] -> [A_Concept] -> [A_Concept]
- conjNF :: Expression -> Expression
- disjNF :: Expression -> Expression
- simplify :: Expression -> Expression
- cfProof :: (Expression -> String) -> Expression -> Proof Expression
- dfProof :: (Expression -> String) -> Expression -> Proof Expression
- nfProof :: (Expression -> String) -> Expression -> Proof Expression
- normPA :: PAclause -> PAclause
- lookupCpt :: Fspc -> A_Concept -> [(PlugSQL, SqlField)]
- showPrf :: (expr -> String) -> Proof expr -> [String]
- notCpl :: Expression -> Expression
- isCpl :: Expression -> Bool
- isPos :: Expression -> Bool
- isNeg :: Expression -> Bool
- foldrMapExpression :: (r -> a -> a) -> (Declaration -> r) -> a -> Expression -> a
- (.==.) :: Expression -> Expression -> Expression
- (.|-.) :: Expression -> Expression -> Expression
- (./\.) :: Expression -> Expression -> Expression
- (.\/.) :: Expression -> Expression -> Expression
- (.-.) :: Expression -> Expression -> Expression
- (./.) :: Expression -> Expression -> Expression
- (.\.) :: Expression -> Expression -> Expression
- (.<>.) :: Expression -> Expression -> Expression
- (.:.) :: Expression -> Expression -> Expression
- (.!.) :: Expression -> Expression -> Expression
- (.*.) :: Expression -> Expression -> Expression
- deMorganERad :: Expression -> Expression
- deMorganECps :: Expression -> Expression
- deMorganEUni :: Expression -> Expression
- deMorganEIsc :: Expression -> Expression
- exprUni2list :: Expression -> [Expression]
- exprIsc2list :: Expression -> [Expression]
- exprCps2list :: Expression -> [Expression]
- exprRad2list :: Expression -> [Expression]
- exprPrd2list :: Expression -> [Expression]
- plugFields :: PlugSQL -> [SqlField]
- tblcontents :: [A_Gen] -> [Population] -> PlugSQL -> [TblRecord]
- plugpath :: PlugSQL -> SqlField -> SqlField -> Maybe Expression
- fldauto :: SqlField -> Bool
- requires :: PlugSQL -> (SqlField, SqlField) -> Bool
- requiredFields :: PlugSQL -> SqlField -> [SqlField]
- isPlugIndex :: PlugSQL -> SqlField -> Bool
- parseADL1pExpr :: String -> String -> Either String (Term TermPrim)
- data CtxError
- createFspec :: Options -> IO (Guarded Fspc)
- getGeneralizations :: Fspc -> A_Concept -> [A_Concept]
- getSpecializations :: Fspc -> A_Concept -> [A_Concept]
- data Guarded a
- pCtx2aCtx :: P_Context -> Guarded A_Context
- makeFspec :: Options -> A_Context -> Fspc
- generateAmpersandOutput :: Options -> Fspc -> IO ()
- class ShowADL a where
- showSQL :: SqlType -> String
- showSign :: Association a => a -> String
- getOptions :: IO Options
- verboseLn :: Options -> String -> IO ()
- verbose :: Options -> String -> IO ()
- data FileFormat
- helpNVersionTexts :: String -> Options -> [String]
- eqCl :: Eq b => (a -> b) -> [a] -> [[a]]
- showErr :: CtxError -> String
- unCap :: String -> String
- upCap :: String -> String
- escapeNonAlphaNum :: String -> String
- fatalMsg :: String -> Int -> String -> a
- ampersandVersionStr :: String
- ampersandVersionWithoutBuildTimeStr :: String
- putStr :: String -> IO ()
- hGetContents :: Handle -> IO String
- hPutStr :: Handle -> String -> IO ()
- hPutStrLn :: Handle -> String -> IO ()
- readFile :: FilePath -> IO String
- writeFile :: FilePath -> String -> IO ()
- data A_Markup = A_Markup {}
- blocks2String :: PandocFormat -> Bool -> [Block] -> String
- aMarkup2String :: A_Markup -> String
- data PandocFormat
- class Meaning a where
- rulefromProp :: Prop -> Declaration -> Rule
- fullContents :: [A_Gen] -> [Population] -> Expression -> Pairs
- type Paire = (String, String)
- srcPaire :: Paire -> String
- trgPaire :: Paire -> String
- data Purpose = Expl {
- explPos :: Origin
- explObj :: ExplObj
- explMarkup :: A_Markup
- explUserdefd :: Bool
- explRefIds :: [String]
- data ExplObj
Documentation
PCtx | |
|
PairView | |
|
data PairViewSegment a Source
P_Ru | |
|
Prim a | |
Pequ Origin (Term a) (Term a) | equivalence = |
Pimp Origin (Term a) (Term a) | implication |- |
PIsc Origin (Term a) (Term a) | intersection / |
PUni Origin (Term a) (Term a) | union / |
PDif Origin (Term a) (Term a) | difference - |
PLrs Origin (Term a) (Term a) | left residual / |
PRrs Origin (Term a) (Term a) | right residual |
PDia Origin (Term a) (Term a) | |
PCps Origin (Term a) (Term a) | composition ; |
PRad Origin (Term a) (Term a) | relative addition ! |
PPrd Origin (Term a) (Term a) | cartesian product * |
PKl0 Origin (Term a) | Rfx.Trn closure * (Kleene star) |
PKl1 Origin (Term a) | Transitive closure + (Kleene plus) |
PFlp Origin (Term a) | conversion (flip, wok) ~ |
PCpl Origin (Term a) | Complement |
PBrk Origin (Term a) | bracketed expression ( ... ) |
PI Origin | identity element without a type At parse time, there may be zero or one element in the list of concepts. Reason: when making eqClasses, the least element of that class is used as a witness of that class to know whether an eqClass represents a concept, we only look at its witness By making Pid the first in the data decleration, it becomes the least element for deriving Ord. |
Pid Origin P_Concept | identity element restricted to a type |
Patm Origin String (Maybe P_Concept) | an atom, possibly with a type |
PVee Origin | the complete relation, of which the type is yet to be derived by the type checker. |
Pfull Origin P_Concept P_Concept | the complete relation, restricted to a type. At parse time, there may be zero, one or two elements in the list of concepts. |
Prel Origin String | we expect expressions in flip-normal form |
PTrel Origin String P_Sign | type cast expression |
PCpt | The name of this Concept |
P_Singleton |
data P_Declaration Source
P_Sgn | |
|
P_Pat | |
|
PlainConcept | PlainConcept nm represents the set of instances cs by name nm. |
ONE | The universal Singleton: |
data structure A_Gen contains the CLASSIFY statements from an Ampersand script CLASSIFY Employee ISA Person translates to Isa (C Person) (C Employee) CLASSIFY Workingstudent IS Employee/Student translates to IsE orig (C Workingstudent) [C Employee,C Student]
data ConceptDef Source
Cd | |
|
class ConceptStructure a whereSource
:: a | |
-> [A_Concept] | the set of all concepts used in data structure a |
:: a | |
-> [Declaration] | the set of all declaratons used within data structure a. `used within` means that there is a relation that refers to that declaration. |
:: a | |
-> [Declaration] | the set of all declaratons used within data structure a. `used within` means that there is a relation that refers to that declaration. |
primsMentionedIn :: a -> [Expression]Source
:: a | |
-> [Expression] | The set of all expressions within data structure a |
:: a | |
-> [Expression] | the set of all EMp1 expressions within data structure a (needed to get the atoms of these relations into the populationtable) |
mp1Pops :: a -> [Population]Source
mp1Pops draws the population from singleton expressions.
Eq Activity | |
Identified Activity | |
ConceptStructure Activity | A Quad is used in the switchboard of rules. It represents a proto-rule with the following meaning: whenever qRel is affected (i.e. tuples in qRel are inserted or deleted), qRule may have to be restored using functionality from qClauses. The rule is taken along for traceability. |
ShowHS Activity | |
Motivated Activity |
Quad | |
|
data RuleClause Source
RC | |
|
data Fswitchboard Source
A list of ECA rules, which is used for automated functionality.
On | |
|
A_Pat | |
|
data Declaration Source
Sgn | |
| |
Isn | |
Vs | |
data IdentityDef Source
Id | |
|
Vd | |
|
data IdentitySegment Source
data ViewSegment Source
data Expression Source
EEqu (Expression, Expression) | equivalence = |
EImp (Expression, Expression) | implication |- |
EIsc (Expression, Expression) | intersection /\ |
EUni (Expression, Expression) | union / |
EDif (Expression, Expression) | difference - |
ELrs (Expression, Expression) | left residual / |
ERrs (Expression, Expression) | right residual \ |
EDia (Expression, Expression) | |
ECps (Expression, Expression) | composition ; |
ERad (Expression, Expression) | relative addition ! |
EPrd (Expression, Expression) | cartesian product * |
EKl0 Expression | Rfx.Trn closure * (Kleene star) |
EKl1 Expression | Transitive closure + (Kleene plus) |
EFlp Expression | conversion (flip, wok) ~ |
ECpl Expression | Complement |
EBrk Expression | bracketed expression ( ... ) |
EDcD Declaration | simple declaration |
EDcI A_Concept | Identity relation |
EEps A_Concept Sign | Epsilon relation (introduced by the system to ensure we compare concepts by equality only. |
EDcV Sign | Cartesian product relation |
EMp1 String A_Concept | constant (string between single quotes) |
data Population Source
Fspc | |
|
concDefs :: Fspc -> A_Concept -> [ConceptDef]Source
TblSQL | stores a related collection of relations: a kernel of concepts and attribute relations of this kernel i.e. a list of SqlField given some A -> [target r | r::A*B,isUni r,isTot r, isInj r] ++ [target r | r::A*B,isUni r, not(isTot r), not(isSur r)] kernel = A closure of concepts A,B for which there exists a r::A->B[INJ] (r=fldexpr of kernel field holding instances of B, in practice r is I or a makeRelation(flipped declaration)) attribute relations = All concepts B, A in kernel for which there exists a r::A*B[UNI] and r not TOT and SUR (r=fldexpr of attMor field, in practice r is a makeRelation(declaration)) |
| |
BinSQL | stores one relation r in two ordered columns i.e. a tuple of SqlField -> (source r,target r) with (fldexpr=I/r;r~, fldexpr=r) (note: if r TOT then (I/r;r~ = I). Thus, the concept (source r) is stored in this plug too) with tblcontents = [[Just x,Just y] |(x,y)<-contents r]. Typical for BinSQL is that it has exactly two columns that are not unique and may not contain NULL values |
ScalarSQL | stores one concept c in one column i.e. a SqlField -> c with tblcontents = [[Just x] |(x,_)<-contents c]. Typical for ScalarSQL is that it has exactly one column that is unique and may not contain NULL values i.e. fldexpr=I[c] |
Eq PlugSQL | |
Ord PlugSQL | |
Show PlugSQL | |
Identified PlugSQL | |
Object PlugSQL | |
ConceptStructure PlugSQL | |
FPAble PlugSQL | |
Plugable PlugSQL | |
ShowHS PlugSQL | |
ShowHSName PlugSQL | The following is used to showHS flags for signs: (Concept, Concept) instance (ShowHS a , ShowHS b) => ShowHS (a,b) where showHS flags indent (a,b) = (++showHS flags (indent++ ) a++,++showHS flags (indent++ ) b++) |
Fld | |
|
CHC | |
| |
GCH | |
| |
ALL | |
| |
Do | |
| |
New | |
Rmv | |
Nop | |
| |
Blk | |
| |
Let | |
Ref | |
Ru | |
|
Proc | |
|
FProc | |
|
data SqlFieldUsage Source
Dnf [Expression] [Expression] |
Clauses | |
|
This data constructor is able to hold all kind of information that is useful to express what the user would like Ampersand to do.
Pict | |
|
writePicture :: Options -> Picture -> IO ()Source
data PictureReq Source
makePicture :: Options -> Fspc -> PictureReq -> PictureSource
Classes:
class Association rel whereSource
class Collection a whereSource
eleM :: Eq b => b -> a b -> BoolSource
uni, isc :: Eq b => a b -> a b -> a bSource
Collection [] |
class Identified a whereSource
class ProcessStructure a whereSource
:: a | |
-> [Process] | all roles that are used in this ProcessStructure |
:: a | |
-> [String] | all roles that are used in this ProcessStructure |
:: a | |
-> [Interface] | all interfaces that are used in this ProcessStructure |
objDefs :: a -> [ObjectDef]Source
:: a | |
-> [Rule] | all process rules that are visible within this viewpoint ^ all relations used in rules must have a valid declaration in the same viewpoint. |
:: a | |
-> [(String, Declaration)] | the string represents a Role |
workFromProcessRules :: [A_Gen] -> [Population] -> a -> [(Rule, Paire)]Source
Obj | |
|
class Association r => Relational r whereSource
multiplicities :: r -> [Prop]Source
isFunction :: r -> BoolSource
data SubInterface Source
concept :: a -> A_ConceptSource
attributes :: a -> [ObjectDef]Source
contextOf :: a -> ExpressionSource
class (Identified p, Eq p, Show p) => Plugable p whereSource
class Identified a => Motivated a whereSource
:: Fspc | |
-> Lang | |
-> a | |
-> Maybe [Purpose] | explains the purpose of a, i.e. the reason why a exists. The purpose could be either given by the user, or generated by Ampersand. Multiple purposes are allowed for the following reasons: * Different purposes from different sources make me want to document them all. * Combining two overlapping scripts from (i.e. from different authors) may cause multiple purposes. |
:: a | |
-> ExplObj | |
-> Bool | Given an Explainable object and an ExplObj, return TRUE if they concern the identical object. |
:: a | |
-> [Purpose] | The explanations that are defined inside a (including that of a itself) |
:: a | |
-> ObjectDef | The objectdef that characterizes this viewpoint |
:: a | |
-> [Declaration] | all relations that are declared in the scope of this viewpoint. These are user defined relations and all generated relarations, i.e. one relation for each GEN and one for each signal rule. Don't confuse relsDefdIn with relsUsedIn, which gives the relations that are used in a.) |
:: a | |
-> [Rule] | all user defined rules that are maintained within this viewpoint, which are not multiplicity- and not identity rules. |
:: a | |
-> [Rule] | all rules that are not maintained by users will be maintained by the computer. That includes multiplicity rules and identity rules, but excludes rules that are assigned to a role. ^ all relations used in rules must have a valid declaration in the same viewpoint. |
:: a | |
-> [Rule] | all multiplicityrules that are maintained within this viewpoint. |
identityRules :: a -> [Rule]Source
:: a | |
-> [IdentityDef] | all keys that are defined in a |
:: a | |
-> [ViewDef] | all views that are defined in a |
:: a | |
-> [A_Gen] | all generalizations that are valid within this viewpoint |
:: a | |
-> [Pattern] | all patterns that are used in this viewpoint |
class ShowHSName a whereSource
showHSName :: a -> StringSource
ShowHSName Char | |
ShowHSName Origin | |
ShowHSName Prop | |
ShowHSName A_Concept | |
ShowHSName ObjectDef | |
ShowHSName Interface | |
ShowHSName ViewDef | |
ShowHSName IdentityDef | |
ShowHSName Declaration | |
ShowHSName Rule | |
ShowHSName Pattern | |
ShowHSName Process | |
ShowHSName SqlField | |
ShowHSName PlugSQL | The following is used to showHS flags for signs: (Concept, Concept) instance (ShowHS a , ShowHS b) => ShowHS (a,b) where showHS flags indent (a,b) = (++showHS flags (indent++ ) a++,++showHS flags (indent++ ) b++) |
ShowHSName PlugInfo | |
ShowHSName RuleClause | |
ShowHSName ECArule | |
ShowHSName Quad | |
ShowHSName FProcess | |
ShowHSName Fspc | |
ShowHSName a => ShowHSName [a] | |
ShowHSName a => ShowHSName (Maybe a) | |
(ShowHSName a, ShowHSName b) => ShowHSName (a, b) |
Functions on concepts
atomsOf :: [A_Gen] -> [Population] -> A_Concept -> [String]Source
This function returns the atoms of a concept (like fullContents does for relation-like things.)
smallerConcepts :: [A_Gen] -> A_Concept -> [A_Concept]Source
this function takes all generalisation relations from the context and a concept and delivers a list of all concepts that are more specific than the given concept. If there are no cycles in the generalization graph, cpt cannot be an element of smallerConcepts gens cpt.
largerConcepts :: [A_Gen] -> A_Concept -> [A_Concept]Source
this function takes all generalisation relations from the context and a concept and delivers a list of all concepts that are more generic than the given concept.
rootConcepts :: [A_Gen] -> [A_Concept] -> [A_Concept]Source
this function returns the most generic concepts in the class of a given concept
Functions on relations
Functions on rules
Functions on expressions:
conjNF :: Expression -> ExpressionSource
disjNF :: Expression -> ExpressionSource
cfProof :: (Expression -> String) -> Expression -> Proof ExpressionSource
dfProof :: (Expression -> String) -> Expression -> Proof ExpressionSource
nfProof :: (Expression -> String) -> Expression -> Proof ExpressionSource
lookupCpt :: Fspc -> A_Concept -> [(PlugSQL, SqlField)]Source
This returns all columntable pairs that serve as a concept table for cpt. When addingremoving atoms, all of these columns need to be updated
notCpl :: Expression -> ExpressionSource
isCpl :: Expression -> BoolSource
isPos :: Expression -> BoolSource
isNeg :: Expression -> BoolSource
foldrMapExpression :: (r -> a -> a) -> (Declaration -> r) -> a -> Expression -> aSource
(.==.) :: Expression -> Expression -> ExpressionSource
(.|-.) :: Expression -> Expression -> ExpressionSource
(./\.) :: Expression -> Expression -> ExpressionSource
(.\/.) :: Expression -> Expression -> ExpressionSource
(.-.) :: Expression -> Expression -> ExpressionSource
(./.) :: Expression -> Expression -> ExpressionSource
(.\.) :: Expression -> Expression -> ExpressionSource
(.<>.) :: Expression -> Expression -> ExpressionSource
(.:.) :: Expression -> Expression -> ExpressionSource
(.!.) :: Expression -> Expression -> ExpressionSource
(.*.) :: Expression -> Expression -> ExpressionSource
deMorganERad :: Expression -> ExpressionSource
The rule of De Morgan requires care with respect to the complement. The following function provides a function to manipulate with De Morgan correctly.
exprUni2list :: Expression -> [Expression]Source
exprIsc2list :: Expression -> [Expression]Source
exprCps2list :: Expression -> [Expression]Source
exprRad2list :: Expression -> [Expression]Source
exprPrd2list :: Expression -> [Expression]Source
Functions with plugs:
plugFields :: PlugSQL -> [SqlField]Source
tblcontents :: [A_Gen] -> [Population] -> PlugSQL -> [TblRecord]Source
requiredFields :: PlugSQL -> SqlField -> [SqlField]Source
isPlugIndex :: PlugSQL -> SqlField -> BoolSource
Parser related stuff
parseADL1pExpr :: String -> String -> Either String (Term TermPrim)Source
Parse isolated ADL1 expression strings
create an Fspec, based on the user defined flags.
getGeneralizations :: Fspc -> A_Concept -> [A_Concept]Source
getSpecializations :: Fspc -> A_Concept -> [A_Concept]Source
Type checking and calculus
Generators of output
generateAmpersandOutput :: Options -> Fspc -> IO ()Source
Prettyprinters
showSign :: Association a => a -> StringSource
Functions with Options
helpNVersionTexts :: String -> Options -> [String]Source
Other functions
eqCl :: Eq b => (a -> b) -> [a] -> [[a]]Source
eqCl is a very useful function for gathering things that are equal wrt some criterion f. For instance, if you want to have persons with the same name: 'eqCl name persons' produces a list,in which each element is a list of persons with the same name.
fatalMsg :: String -> Int -> String -> aSource
a function to create error message in a structured way, containing the version of Ampersand. It throws an error, showing a (module)name and a number. This makes debugging pretty easy.
ampersandVersionStr :: StringSource
String, containing the Ampersand version, including the build timestamp.
ampersandVersionWithoutBuildTimeStr :: StringSource
String, containing the Ampersand version
hGetContents :: Handle -> IO StringSource
Stuff that should probably not be in the prototype
blocks2String :: PandocFormat -> Bool -> [Block] -> StringSource
write [Block] as String in a certain format using defaultWriterOptions
data PandocFormat Source
rulefromProp :: Prop -> Declaration -> RuleSource
fullContents :: [A_Gen] -> [Population] -> Expression -> PairsSource
Explanation is the intended constructor. It explains the purpose of the object it references. The enrichment process of the parser must map the names (from PPurpose) to the actual objects
Expl | |
|