-- | Defines concepts used to describe physical properties.
module Data.Drasil.Concepts.PhysicalProperties where

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

import Data.Drasil.Concepts.Documentation (material_, property)
import Data.Drasil.Concepts.Math (centre)

-- | Collects all physical property-related concepts.
physicalcon :: [ConceptChunk]
physicalcon :: [ConceptChunk]
physicalcon = [ConceptChunk
gaseous, ConceptChunk
liquid, ConceptChunk
solid, ConceptChunk
ctrOfMass, ConceptChunk
density, ConceptChunk
specWeight, ConceptChunk
mass,
  ConceptChunk
len, ConceptChunk
dimension, ConceptChunk
vol, ConceptChunk
flexure]

-- * Physical Properties

gaseous, liquid, solid, ctrOfMass, density, specWeight, mass, len, dimension,
  vol, flexure :: ConceptChunk

gaseous :: ConceptChunk
gaseous    = String -> NP -> String -> ConceptChunk
dcc String
"gaseous"    (String -> NP
cn''' String
"gas"          ) String
"gaseous state"
liquid :: ConceptChunk
liquid     = String -> NP -> String -> ConceptChunk
dcc String
"liquid"     (String -> NP
cn' String
"liquid"         ) String
"liquid state"
solid :: ConceptChunk
solid      = String -> NP -> String -> ConceptChunk
dcc String
"solid"      (String -> NP
cn' String
"solid"          ) String
"solid state"
ctrOfMass :: ConceptChunk
ctrOfMass  = String -> NP -> String -> ConceptChunk
dcc String
"ctrOfMass"  (ConceptChunk
centre forall c d. (NamedIdea c, NamedIdea d) => c -> d -> NP
`of_PS` ConceptChunk
mass  ) String
"the mean location of the distribution of mass of the object"
dimension :: ConceptChunk
dimension  = String -> NP -> String -> ConceptChunk
dcc String
"dimension"  (String -> NP
cn' String
"dimension"      ) String
"any of a set of basic kinds of quantity, as mass, length, and time"
density :: ConceptChunk
density    = String -> NP -> String -> ConceptChunk
dcc String
"density"    (String -> NP
cnIES String
"density"      ) String
"the mass per unit volume"
specWeight :: ConceptChunk
specWeight = String -> NP -> String -> ConceptChunk
dcc String
"specWeight" (String -> NP
cn' String
"specific weight") String
"the weight per unit volume"
flexure :: ConceptChunk
flexure    = String -> NP -> String -> ConceptChunk
dcc String
"flexure"    (String -> NP
cn' String
"flexure"        ) String
"a bent or curved part"
len :: ConceptChunk
len        = String -> NP -> String -> ConceptChunk
dcc String
"length"     (String -> NP
cn' String
"length"         ) (String
"the straight-line distance between two points along an object, " forall a. [a] -> [a] -> [a]
++
                                                       String
"typically used to represent the size of an object from one end to the other")
mass :: ConceptChunk
mass       = String -> NP -> String -> ConceptChunk
dcc String
"mass"       (String -> NP
cn''' String
"mass"         ) String
"the quantity of matter in a body"
vol :: ConceptChunk
vol        = String -> NP -> String -> ConceptChunk
dcc String
"volume"     (String -> NP
cn' String
"volume"         ) String
"the amount of space that a substance or object occupies"

materialProprty :: IdeaDict
materialProprty :: IdeaDict
materialProprty = forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
material_ IdeaDict
property