module Drasil.Generator.CommonKnowledge (
withCommonKnowledge
) where
import Drasil.Database (empty, insertAll, ChunkDB, insertAllOutOfOrder12)
import Language.Drasil (IdeaDict, nw, Citation, ConceptChunk, ConceptInstance,
DefinedQuantityDict, UnitDefn, LabelledContent, Reference)
import Data.Drasil.Citations (cartesianWiki, lineSource, pointSource)
import Data.Drasil.Concepts.Documentation (doccon, doccon', srsDomains)
import Data.Drasil.Software.Products (prodtcon)
import Data.Drasil.Concepts.Education (educon)
import Data.Drasil.Concepts.Computation (compcon, algorithm)
import Data.Drasil.Concepts.Software (errMsg, program)
import Data.Drasil.Concepts.Math (mathcon)
import Data.Drasil.SI_Units (siUnits)
import qualified Drasil.DocLang.SRS as SRS
import Theory.Drasil (DataDefinition, InstanceModel, TheoryModel, GenDefn)
import Language.Drasil.Code (codeDQDs)
withCommonKnowledge :: [Reference] -> [DefinedQuantityDict] -> [IdeaDict] ->
[ConceptChunk] -> [UnitDefn] -> [DataDefinition] -> [InstanceModel] ->
[GenDefn] -> [TheoryModel] -> [ConceptInstance] -> [Citation] ->
[LabelledContent] -> ChunkDB
withCommonKnowledge :: [Reference]
-> [DefinedQuantityDict]
-> [IdeaDict]
-> [ConceptChunk]
-> [UnitDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [GenDefn]
-> [TheoryModel]
-> [ConceptInstance]
-> [Citation]
-> [LabelledContent]
-> ChunkDB
withCommonKnowledge = ChunkDB
-> [Reference]
-> [DefinedQuantityDict]
-> [IdeaDict]
-> [ConceptChunk]
-> [UnitDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [GenDefn]
-> [TheoryModel]
-> [ConceptInstance]
-> [Citation]
-> [LabelledContent]
-> ChunkDB
forall a b c d e f g h i j k l.
(TypeableChunk a, TypeableChunk b, TypeableChunk c,
TypeableChunk d, TypeableChunk e, TypeableChunk f, TypeableChunk g,
TypeableChunk h, TypeableChunk i, TypeableChunk j, TypeableChunk k,
TypeableChunk l) =>
ChunkDB
-> [a]
-> [b]
-> [c]
-> [d]
-> [e]
-> [f]
-> [g]
-> [h]
-> [i]
-> [j]
-> [k]
-> [l]
-> ChunkDB
insertAllOutOfOrder12 ChunkDB
basisCDB
basisCDB :: ChunkDB
basisCDB :: ChunkDB
basisCDB =
[Reference] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [Reference]
basisReferences
(ChunkDB -> ChunkDB) -> ChunkDB -> ChunkDB
forall a b. (a -> b) -> a -> b
$ [UnitDefn] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [UnitDefn]
siUnits
(ChunkDB -> ChunkDB) -> ChunkDB -> ChunkDB
forall a b. (a -> b) -> a -> b
$ [ConceptChunk] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [ConceptChunk]
basisConceptChunks
(ChunkDB -> ChunkDB) -> ChunkDB -> ChunkDB
forall a b. (a -> b) -> a -> b
$ [DefinedQuantityDict] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [DefinedQuantityDict]
basisSymbols
(ChunkDB -> ChunkDB) -> ChunkDB -> ChunkDB
forall a b. (a -> b) -> a -> b
$ [IdeaDict] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [IdeaDict]
basisIdeaDicts
(ChunkDB -> ChunkDB) -> ChunkDB -> ChunkDB
forall a b. (a -> b) -> a -> b
$ [Citation] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [Citation]
basisCitations
ChunkDB
empty
basisReferences :: [Reference]
basisReferences :: [Reference]
basisReferences = [Reference]
SRS.sectionReferences
basisSymbols :: [DefinedQuantityDict]
basisSymbols :: [DefinedQuantityDict]
basisSymbols =
[DefinedQuantityDict]
codeDQDs
basisIdeaDicts :: [IdeaDict]
basisIdeaDicts :: [IdeaDict]
basisIdeaDicts =
[IdeaDict]
doccon [IdeaDict] -> [IdeaDict] -> [IdeaDict]
forall a. [a] -> [a] -> [a]
++ [IdeaDict]
prodtcon [IdeaDict] -> [IdeaDict] -> [IdeaDict]
forall a. [a] -> [a] -> [a]
++ [IdeaDict]
educon [IdeaDict] -> [IdeaDict] -> [IdeaDict]
forall a. [a] -> [a] -> [a]
++ [IdeaDict]
compcon [IdeaDict] -> [IdeaDict] -> [IdeaDict]
forall a. [a] -> [a] -> [a]
++
(CI -> IdeaDict) -> [CI] -> [IdeaDict]
forall a b. (a -> b) -> [a] -> [b]
map CI -> IdeaDict
forall c. Idea c => c -> IdeaDict
nw [CI]
doccon'
basisConceptChunks :: [ConceptChunk]
basisConceptChunks :: [ConceptChunk]
basisConceptChunks =
[ConceptChunk
algorithm, ConceptChunk
errMsg, ConceptChunk
program] [ConceptChunk] -> [ConceptChunk] -> [ConceptChunk]
forall a. [a] -> [a] -> [a]
++ [ConceptChunk]
srsDomains [ConceptChunk] -> [ConceptChunk] -> [ConceptChunk]
forall a. [a] -> [a] -> [a]
++ [ConceptChunk]
mathcon
basisCitations :: [Citation]
basisCitations :: [Citation]
basisCitations = [Citation
cartesianWiki, Citation
lineSource, Citation
pointSource]