module Drasil.GlassBR.Concepts where --whole file is used

import Language.Drasil
import Language.Drasil.Chunk.Concept.NamedCombinators

import Data.Drasil.Concepts.Documentation (assumption, goalStmt, likelyChg,
  notApp, physSyst, response, requirement, refBy, refName, srs, type_, typUnc, 
  unlikelyChg)
import Data.Drasil.TheoryConcepts (dataDefn, inModel, thModel)

{--}
idglass :: IdeaDict
idglass :: IdeaDict
idglass      = String -> NP -> Maybe String -> IdeaDict
mkIdea  String
"glass"          (String -> NP
cn' String
"Glass")                 Maybe String
forall a. Maybe a
Nothing

{--}
con :: [CI]
con :: [CI]
con = [CI
annealed, CI
aR, CI
fullyT, CI
glassTypeFac, CI
heatS, CI
loadDurFactor, CI
iGlass, CI
lGlass, 
  CI
lResistance, CI
lShareFac, CI
glassBR, CI
stdOffDist, CI
nFL]

con' :: [IdeaDict]
con' :: [IdeaDict]
con' = [IdeaDict
beam, IdeaDict
blastRisk, IdeaDict
cantilever, IdeaDict
edge, IdeaDict
glaPlane, IdeaDict
glaSlab, IdeaDict
plane,
  IdeaDict
glass, IdeaDict
ptOfExplsn, IdeaDict
responseTy]

{-Acronyms-}
acronyms :: [CI]
acronyms :: [CI]
acronyms = [CI
assumption, CI
annealed, CI
aR, CI
dataDefn, CI
fullyT, CI
goalStmt, 
  CI
glassTypeFac, CI
heatS, CI
iGlass, CI
inModel, CI
likelyChg, CI
loadDurFactor, 
  CI
lGlass, CI
lResistance, CI
lShareFac, CI
notApp, CI
nFL, CI
physSyst, CI
requirement, 
  CI
refBy, CI
refName, CI
stdOffDist, CI
srs, CI
thModel, CI
typUnc, CI
unlikelyChg]

annealed, aR, fullyT, glassTypeFac, heatS, loadDurFactor, iGlass, lGlass, 
  lResistance, lShareFac, glassBR, stdOffDist, nFL :: CI

--FIXME: Add compound nounphrases

annealed :: CI
annealed      = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"annealed"      (String -> NP
nounPhraseSP String
"annealed")                String
"AN"       [IdeaDict
idglass]
aR :: CI
aR            = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"aR"            (String -> NP
nounPhraseSP String
"aspect ratio")            String
"AR"       [IdeaDict
idglass]
fullyT :: CI
fullyT        = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"fullyT"        (String -> NP
nounPhraseSP String
"fully tempered")          String
"FT"       [IdeaDict
idglass]
glassTypeFac :: CI
glassTypeFac  = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"glassTypeFac"  (String -> NP
nounPhraseSP String
"glass type factor")       String
"GTF"      [IdeaDict
idglass]
heatS :: CI
heatS         = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"heatS"         (String -> NP
nounPhraseSP String
"heat strengthened")       String
"HS"       [IdeaDict
idglass]
iGlass :: CI
iGlass        = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"iGlass"        (String -> NP
nounPhraseSP String
"insulating glass")        String
"IG"       [IdeaDict
idglass]
lGlass :: CI
lGlass        = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"lGlass"        (String -> NP
nounPhraseSP String
"laminated glass")         String
"LG"       [IdeaDict
idglass]
lResistance :: CI
lResistance   = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"lResistance"   (String -> NP
nounPhraseSP String
"load resistance")         String
"LR"       [IdeaDict
idglass]
lShareFac :: CI
lShareFac     = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"lShareFac"     (String -> NP
nounPhraseSP String
"load share factor")       String
"LSF"      [IdeaDict
idglass]
glassBR :: CI
glassBR       = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"glassBR"       (String -> NP
pn String
"GlassBR")                           String
"GlassBR"  [IdeaDict
idglass]
stdOffDist :: CI
stdOffDist    = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"stdOffDist"    (String -> NP
nounPhraseSP String
"stand off distance")      String
"SD"       [IdeaDict
idglass]
loadDurFactor :: CI
loadDurFactor = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"loadDurFactor" (String -> NP
nounPhraseSP String
"load duration factor")    String
"LDF"      [IdeaDict
idglass]
nFL :: CI
nFL           = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"nFL"           (String -> NP
nounPhraseSP String
"non-factored load")       String
"NFL"      [IdeaDict
idglass]

{-Terminology-}
-- TODO: See if we can make some of these terms less specific and/or parameterized.
 
beam, blastRisk, cantilever, edge, glaPlane, glaSlab, plane,
  glass, ptOfExplsn, responseTy :: IdeaDict
beam :: IdeaDict
beam         = String -> NP -> IdeaDict
nc String
"beam"       (String -> NP
cn' String
"beam")
blastRisk :: IdeaDict
blastRisk    = String -> NP -> IdeaDict
nc String
"blastRisk"  (String -> NP
nounPhraseSP String
"blast risk")
cantilever :: IdeaDict
cantilever   = String -> NP -> IdeaDict
nc String
"cantilever" (String -> NP
nounPhraseSP String
"cantilever")
edge :: IdeaDict
edge         = String -> NP -> IdeaDict
nc String
"edge"       (String -> NP
cn'          String
"edge")
glass :: IdeaDict
glass        = String -> NP -> IdeaDict
nc String
"glass"      (String -> NP
nounPhraseSP String
"glass")
glaSlab :: IdeaDict
glaSlab      = String -> NP -> IdeaDict
nc String
"glaSlab"    (String -> NP
cn' String
"glass slab")
plane :: IdeaDict
plane        = String -> NP -> IdeaDict
nc String
"plane"      (String -> NP
cn' String
"plane")

ptOfExplsn :: IdeaDict
ptOfExplsn   = String -> NP -> IdeaDict
nc String
"ptOfExplsn" (String -> NP
cn' String
"point of explosion")

glaPlane :: IdeaDict
glaPlane     = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
glass IdeaDict
plane
responseTy :: IdeaDict
responseTy   = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
response IdeaDict
type_