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, srs, type_, typUnc, unlikelyChg)
import Data.Drasil.TheoryConcepts (dataDefn, inModel, thModel)

{--}
idglass :: IdeaDict
idglass :: IdeaDict
idglass      = String -> NP -> Maybe String -> IdeaDict
mkIdea  "glass"          (String -> NP
cn' "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' :: [NamedChunk]
con' :: [NamedChunk]
con' = [NamedChunk
beam, NamedChunk
blastRisk, NamedChunk
cantilever, NamedChunk
edge, NamedChunk
glaPlane, NamedChunk
glaSlab, NamedChunk
plane,
  NamedChunk
glass, NamedChunk
ptOfExplsn, NamedChunk
responseTy]

{-glassBRProg :: CommonConcept
glassBRProg = dcc' "glassBRProg" (nounPhraseSP "GlassBR program")
  "The glass safety analysis program" "GlassBR"-}

{-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
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 "annealed"      (String -> NP
nounPhraseSP "annealed")                "AN"       [IdeaDict
idglass]
aR :: CI
aR            = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "aR"            (String -> NP
nounPhraseSP "aspect ratio")            "AR"       [IdeaDict
idglass]
fullyT :: CI
fullyT        = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "fullyT"        (String -> NP
nounPhraseSP "fully tempered")          "FT"       [IdeaDict
idglass]
glassTypeFac :: CI
glassTypeFac  = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "glassTypeFac"  (String -> NP
nounPhraseSP "glass type factor")       "GTF"      [IdeaDict
idglass]
heatS :: CI
heatS         = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "heatS"         (String -> NP
nounPhraseSP "heat strengthened")       "HS"       [IdeaDict
idglass]
iGlass :: CI
iGlass        = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "iGlass"        (String -> NP
nounPhraseSP "insulating glass")        "IG"       [IdeaDict
idglass]
lGlass :: CI
lGlass        = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "lGlass"        (String -> NP
nounPhraseSP "laminated glass")         "LG"       [IdeaDict
idglass]
lResistance :: CI
lResistance   = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "lResistance"   (String -> NP
nounPhraseSP "load resistance")         "LR"       [IdeaDict
idglass]
lShareFac :: CI
lShareFac     = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "lShareFac"     (String -> NP
nounPhraseSP "load share factor")       "LSF"      [IdeaDict
idglass]
glassBR :: CI
glassBR       = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "glassBR"       (String -> NP
pn "GlassBR")                           "GlassBR"  [IdeaDict
idglass]
stdOffDist :: CI
stdOffDist    = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "stdOffDist"    (String -> NP
nounPhraseSP "stand off distance")      "SD"       [IdeaDict
idglass]
loadDurFactor :: CI
loadDurFactor = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "loadDurFactor" (String -> NP
nounPhraseSP "load duration factor")    "LDF"      [IdeaDict
idglass]
nFL :: CI
nFL           = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict "nFL"           (String -> NP
nounPhraseSP "non-factored load")       "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 :: NamedChunk
beam :: NamedChunk
beam         = String -> NP -> NamedChunk
nc "beam"       (String -> NP
nounPhraseSP "beam")
blastRisk :: NamedChunk
blastRisk    = String -> NP -> NamedChunk
nc "blastRisk"  (String -> NP
nounPhraseSP "blast risk")
cantilever :: NamedChunk
cantilever   = String -> NP -> NamedChunk
nc "cantilever" (String -> NP
nounPhraseSP "cantilever")
edge :: NamedChunk
edge         = String -> NP -> NamedChunk
nc "edge"       (String -> NP
cn'          "edge")
glass :: NamedChunk
glass        = String -> NP -> NamedChunk
nc "glass"      (String -> NP
nounPhraseSP "glass")
glaSlab :: NamedChunk
glaSlab      = String -> NP -> NamedChunk
nc "glaSlab"    (String -> NP
nounPhraseSP "glass slab")
plane :: NamedChunk
plane        = String -> NP -> NamedChunk
nc "plane"      (String -> NP
nounPhraseSP "plane")

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

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