module Drasil.Generator.CommonKnowledge (
withCommonKnowledge
) where
import Drasil.Database (empty, insertAll, ChunkDB, insertAllOutOfOrder13)
import Language.Drasil (IdeaDict, Citation, ConceptChunk, ConceptInstance,
DefinedQuantityDict, UnitDefn, CI)
import Language.Drasil.Document (LabelledContent, Reference)
import Data.Drasil.Citations (cartesianWiki, lineSource, pointSource,
smithEtAl2007, smithLai2005, smithKoothoor2016, koothoor2013)
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, mathcon')
import Data.Drasil.Concepts.Physics (physicCon')
import Data.Drasil.SI_Units (siUnits)
import qualified Drasil.SRS.Concepts as SRS
import Theory.Drasil (DataDefinition, InstanceModel, TheoryModel, GenDefn)
import Language.Drasil.Code (codeDQDs)
import Drasil.Metadata.Domains (compScience, softEng, mathematics, progLanguage, civilEng,
materialEng, documentc, knowledgemng)
withCommonKnowledge :: [Reference] -> [DefinedQuantityDict] -> [IdeaDict] -> [CI] ->
[ConceptChunk] -> [UnitDefn] -> [DataDefinition] -> [InstanceModel] ->
[GenDefn] -> [TheoryModel] -> [ConceptInstance] -> [Citation] ->
[LabelledContent] -> ChunkDB
withCommonKnowledge :: [Reference]
-> [DefinedQuantityDict]
-> [IdeaDict]
-> [CI]
-> [ConceptChunk]
-> [UnitDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [GenDefn]
-> [TheoryModel]
-> [ConceptInstance]
-> [Citation]
-> [LabelledContent]
-> ChunkDB
withCommonKnowledge = ChunkDB
-> [Reference]
-> [DefinedQuantityDict]
-> [IdeaDict]
-> [CI]
-> [ConceptChunk]
-> [UnitDefn]
-> [DataDefinition]
-> [InstanceModel]
-> [GenDefn]
-> [TheoryModel]
-> [ConceptInstance]
-> [Citation]
-> [LabelledContent]
-> ChunkDB
forall a b c d e f g h i j k l m.
(TypeableChunk a, TypeableChunk b, TypeableChunk c,
TypeableChunk d, TypeableChunk e, TypeableChunk f, TypeableChunk g,
TypeableChunk h, TypeableChunk i, TypeableChunk j, TypeableChunk k,
TypeableChunk l, TypeableChunk m) =>
ChunkDB
-> [a]
-> [b]
-> [c]
-> [d]
-> [e]
-> [f]
-> [g]
-> [h]
-> [i]
-> [j]
-> [k]
-> [l]
-> [m]
-> ChunkDB
insertAllOutOfOrder13 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
$ [CI] -> ChunkDB -> ChunkDB
forall a. TypeableChunk a => [a] -> ChunkDB -> ChunkDB
insertAll [CI]
basisCIs
(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]
++ [IdeaDict
compScience, IdeaDict
softEng, IdeaDict
mathematics, IdeaDict
progLanguage, IdeaDict
civilEng, IdeaDict
materialEng, IdeaDict
documentc, IdeaDict
knowledgemng]
basisCIs :: [CI]
basisCIs :: [CI]
basisCIs =
[[CI]] -> [CI]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [[CI]
doccon', [CI]
mathcon', [CI]
physicCon']
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,
Citation
smithEtAl2007, Citation
smithLai2005, Citation
smithKoothoor2016, Citation
koothoor2013]