-- | Defines concepts used to describe levels of education.
module Data.Drasil.Concepts.Education where

import Language.Drasil hiding (year)
import Language.Drasil.Chunk.Concept.NamedCombinators

import Data.Drasil.Concepts.Documentation (first, physics, physical,
  second_, year)
import Data.Drasil.Concepts.PhysicalProperties (solid)

-- | Collects all education-related concepts.
educon :: [IdeaDict]
educon :: [IdeaDict]
educon = [IdeaDict
calculus, IdeaDict
civil, IdeaDict
degree_, IdeaDict
engineering, IdeaDict
structural, IdeaDict
mechanics,
  IdeaDict
undergraduate, IdeaDict
highSchool, IdeaDict
chemistry, IdeaDict
undergradDegree,
  IdeaDict
scndYrCalculus, IdeaDict
solidMechanics, IdeaDict
secondYear, IdeaDict
structuralEng,
  IdeaDict
structuralMechanics, IdeaDict
civilEng, IdeaDict
highSchoolCalculus, IdeaDict
highSchoolPhysics,
  IdeaDict
frstYr, IdeaDict
physChem]

-- * Educational Concepts

calculus, civil, degree_, engineering, structural, mechanics,
  undergraduate, highSchool, chemistry :: IdeaDict

calculus :: IdeaDict
calculus      = String -> NP -> IdeaDict
nc String
"calculus"       (String -> NP
cn   String
"calculus"     )
civil :: IdeaDict
civil         = String -> NP -> IdeaDict
nc String
"civil"          (String -> NP
cn'  String
"civil"        )--FIXME: Adjective
degree_ :: IdeaDict
degree_       = String -> NP -> IdeaDict
nc String
"edu_degree"     (String -> NP
cn'  String
"degree"       )
engineering :: IdeaDict
engineering   = String -> NP -> IdeaDict
nc String
"engineering"    (String -> NP
cn'  String
"engineering"  )
mechanics :: IdeaDict
mechanics     = String -> NP -> IdeaDict
nc String
"mechanics"      (String -> NP
cn   String
"mechanics"    )
structural :: IdeaDict
structural    = String -> NP -> IdeaDict
nc String
"structural"     (String -> NP
cn'  String
"structural"   )--FIXME: Adjective
undergraduate :: IdeaDict
undergraduate = String -> NP -> IdeaDict
nc String
"undergraduate"  (String -> NP
cn'  String
"undergraduate")--FIXME: Functions as adjective
highSchool :: IdeaDict
highSchool    = String -> NP -> IdeaDict
nc String
"highSchool"     (String -> NP
cn'  String
"high school"  )--FIXME: Functions as adjective
chemistry :: IdeaDict
chemistry     = String -> NP -> IdeaDict
nc String
"chemistry"      (String -> NP
cn'  String
"chemistry"    )

undergradDegree, scndYrCalculus, solidMechanics, secondYear, structuralEng,
  structuralMechanics, civilEng, highSchoolCalculus, highSchoolPhysics,
  frstYr, physChem :: IdeaDict

civilEng :: IdeaDict
civilEng            = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
civil IdeaDict
engineering
physChem :: IdeaDict
physChem            = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
physical IdeaDict
chemistry
highSchoolCalculus :: IdeaDict
highSchoolCalculus  = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
highSchool IdeaDict
calculus
highSchoolPhysics :: IdeaDict
highSchoolPhysics   = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
highSchool IdeaDict
physics
scndYrCalculus :: IdeaDict
scndYrCalculus      = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
secondYear IdeaDict
calculus
frstYr :: IdeaDict
frstYr              = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
first IdeaDict
year
secondYear :: IdeaDict
secondYear          = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
second_ IdeaDict
year
solidMechanics :: IdeaDict
solidMechanics      = ConceptChunk -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC ConceptChunk
solid IdeaDict
mechanics
structuralEng :: IdeaDict
structuralEng       = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
structural IdeaDict
engineering
structuralMechanics :: IdeaDict
structuralMechanics = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
structural IdeaDict
mechanics
undergradDegree :: IdeaDict
undergradDegree     = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
undergraduate IdeaDict
degree_