Skip to content
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d3c5451
gather chunk refs from Reference metadata
Xinlu-Y Oct 28, 2025
f930e6b
HasChunkRefs for IdeaDict
Xinlu-Y Oct 28, 2025
32f3c04
HasChunkRefs for Citation
Xinlu-Y Oct 28, 2025
e9e0038
HasChunkRefs for `UnitDefn`
Xinlu-Y Oct 28, 2025
d28cafb
collect chunk references from concept metadata
Xinlu-Y Nov 4, 2025
5719827
seed basis citations and filter duplicates
Xinlu-Y Nov 4, 2025
8875f1f
feat(glassbr): track input references
Xinlu-Y Nov 4, 2025
631eec3
feat(dblpend): surface input properties requirement
Xinlu-Y Nov 4, 2025
fd37057
feat(pdcontroller): capture controller input table
Xinlu-Y Nov 4, 2025
3cd0f38
feat(projectile): capture launch inputs and tidy assumptions
Xinlu-Y Nov 4, 2025
b926a6a
feat(gamephysics): expose section reference citations
Xinlu-Y Nov 4, 2025
fdd1c54
feat(projectile): capture launch inputs and tidy assumptions
Xinlu-Y Nov 4, 2025
517ff62
feat(ssp): treat input table as explicit requirement
Xinlu-Y Nov 4, 2025
97212b7
expose input requirement sentence builder
Xinlu-Y Nov 4, 2025
a56504d
feat(swhs): register input table and clean metadata
Xinlu-Y Nov 4, 2025
f9eda18
feat(swhsnopcm): wire input table into requirement trace
Xinlu-Y Nov 4, 2025
9db8448
feat(sglpend): surface pendulum input requirement
Xinlu-Y Nov 4, 2025
288381d
revert the inlined PCM
Xinlu-Y Nov 11, 2025
5ba7073
add comments about reordering the assumptions
Xinlu-Y Nov 11, 2025
21e5fde
add comments about reordering the units
Xinlu-Y Nov 11, 2025
65cc135
Register `phsChgMtrl` before program name entries to fix dependency o…
Xinlu-Y Nov 11, 2025
d82f5c4
regenerate stable reference sections with shared citations
Xinlu-Y Nov 11, 2025
ea3a593
resequence assumptions and trace artifacts after chunk reorder
Xinlu-Y Nov 11, 2025
2d418fa
Merge remote-tracking branch 'origin/main' into fill-chunk-refs
Xinlu-Y Nov 11, 2025
30a1152
fix chunk ref collection for new `NPStruct`
Xinlu-Y Nov 11, 2025
9840d37
tidy imports
Xinlu-Y Nov 11, 2025
a3891b4
stabilizes
Xinlu-Y Nov 11, 2025
b860ab6
Switch to out-of-order-permitted chunk insertion when creating `Chunk…
balacij Nov 11, 2025
c2ce1aa
Re-order cdb arguments to shorten cdb definition
balacij Nov 11, 2025
b4dea08
insertAllOutOfOrder12: Only need to check that inserted chunks aren't…
balacij Nov 12, 2025
7128107
insertAllOutOfOrder12: Add more comments for clarity.
balacij Nov 12, 2025
2330c83
insertAllOutOfOrder12: Add dependancy checks for LablledContents and …
balacij Nov 12, 2025
f2186c5
insertAllOutOfOrder12: Fix logical bug in hardLookup. invert will not…
balacij Nov 12, 2025
7d410dc
Merge remote-tracking branch 'origin/cdbInsertOutOfOrder12' into fill…
Xinlu-Y Nov 13, 2025
40a86f6
cleaned up the unused citation imports
Xinlu-Y Nov 13, 2025
ec610c9
rewrite fillReqs to skip registered requirements
Xinlu-Y Nov 13, 2025
e70066f
remove unital symbols and add `loadDur` as a defined quantity.
Xinlu-Y Nov 13, 2025
b8a2991
stabilized outputs (trace table reordering due to updated chunk inser…
Xinlu-Y Nov 13, 2025
1b11b06
Merge remote-tracking branch 'origin' into fill-chunk-refs
Xinlu-Y Nov 13, 2025
3028ab6
fix name shadowing in `DefinedQuantity` chunkRefs
Xinlu-Y Nov 13, 2025
e3b3de0
remove redundant import
Xinlu-Y Nov 13, 2025
647c79b
Merge remote-tracking branch 'origin/main' into fill-chunk-refs
Xinlu-Y Nov 18, 2025
84e07b2
remove unused `chunks` from `ChunkDB`
Xinlu-Y Nov 18, 2025
5e39b6b
align examples with `inReqWTab` API
Xinlu-Y Nov 18, 2025
2b0c445
fix trailing whitespace
Xinlu-Y Nov 18, 2025
f59b91a
stabilize
Xinlu-Y Nov 18, 2025
4068616
remove deprecated multilingual field from mdBook config
Xinlu-Y Nov 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions code/drasil-data/lib/Data/Drasil/SI_Units.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ fundamentals :: [UnitDefn]
fundamentals = [metre, kilogram, second, kelvin, mole, ampere, candela]

derived :: [UnitDefn]
derived = [becquerel, calorie, centigrade, coulomb, farad, gray, henry, hertz, joule,
katal, kilopascal, kilowatt, litre, lumen, lux, millimetre, newton, ohm,
pascal, radian, siemens, sievert, steradian, tesla, volt, watt, weber]
derived = [becquerel, centigrade, coulomb, hertz, joule, katal, litre,
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why have these changed order? We should make such changes unless there is a good reason to. Previous were in strict alphabetical order.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this change ensures every derived unit is inserted after the units it depends on.
For example, pascal precedes kilopascal, volt precedes farad/ohm, and weber precedes tesla/henry.

-- | Internal function to insert a chunk into the 'ChunkDB'. This function
-- assumes that the chunk is not already registered in the database, and quietly
-- break table synchronicity if it is.
insert0 :: IsChunk a => ChunkDB -> a -> ChunkDB
checks that all referenced units already exist when a new unit is inserted. The old order triggered missing-dependency errors.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent reason, thank you! You should put in a comment to that effect. I would make sure that the base units are in alphabetical order, and then by dependency (+alphabetical) order after that.

millimetre, newton, pascal, radian, steradian, watt, kilowatt, volt, weber,
tesla, henry, calorie, gray, sievert, kilopascal, lumen, lux, farad, ohm,
siemens]

common :: [UnitDefn]
common = [s_2, m_2, m_3]
Expand Down
4 changes: 2 additions & 2 deletions code/drasil-docLang/lib/Drasil/DocLang.hs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ module Drasil.DocLang (
unitTableRef, tunit, tunit', tunitNone,
-- ** Requirements
-- Drasil.Sections.Requirements
inReq, mkInputPropsTable, mkQRTuple, mkQRTupleRef,
inReq, inReqDesc, mkInputPropsTable, mkQRTuple, mkQRTupleRef,
mkValsSourceTable, reqInputsRef, mkMaintainableNFR, mkPortableNFR,
mkCorrectNFR, mkVerifiableNFR, mkUnderstandableNFR, mkReusableNFR,
mkSecurityNFR,
Expand Down Expand Up @@ -93,7 +93,7 @@ import Drasil.Sections.AuxiliaryConstants (tableOfConstants)
--import Drasil.Sections.GeneralSystDesc
import Drasil.Sections.Introduction (purpDoc)
import Drasil.Sections.ReferenceMaterial (intro, emptySectSentPlu, emptySectSentSing)
import Drasil.Sections.Requirements (inReq, mkInputPropsTable,
import Drasil.Sections.Requirements (inReq, inReqDesc, mkInputPropsTable,
mkQRTuple, mkQRTupleRef, mkValsSourceTable, reqInputsRef, mkMaintainableNFR, mkPortableNFR, mkCorrectNFR,
mkVerifiableNFR, mkUnderstandableNFR, mkReusableNFR, mkSecurityNFR)
import Drasil.Sections.SpecificSystemDescription (auxSpecSent, termDefnF', inDataConstTbl, outDataConstTbl)
Expand Down
2 changes: 1 addition & 1 deletion code/drasil-docLang/lib/Drasil/Sections/Requirements.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Drasil.Sections.Requirements (
-- * Functional Requirements
fReqF,
-- ** Input Requirements
fullReqs, fullTables, inReq,
fullReqs, fullTables, inReq, inReqDesc,
mkInputPropsTable, mkQRTuple, mkQRTupleRef, mkValsSourceTable,
-- * Non-functional Requirements
nfReqF, mkMaintainableNFR, mkPortableNFR, mkCorrectNFR, mkVerifiableNFR,
Expand Down
26 changes: 21 additions & 5 deletions code/drasil-example/dblpend/lib/Drasil/DblPend/Body.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ import Language.Drasil hiding (organization, section)
import Theory.Drasil (TheoryModel, output)
import Drasil.SRSDocument
import Drasil.Generator (cdb)
import qualified Drasil.DocLang.SRS as SRS
import Drasil.DocLang (inReq, inReqDesc, mkInputPropsTable)
import qualified Drasil.DocLang.SRS as SRS (assumpt, inModel, sectionReferences)
import Drasil.System (SystemKind(Specification), mkSystem, systemdb)

import Language.Drasil.Chunk.Concept.NamedCombinators
Expand Down Expand Up @@ -93,7 +94,7 @@ mkSRS = [TableOfContents, -- This creates the Table of Contents
]
],
ReqrmntSec $ ReqsProg
[ FReqsSub EmptyS []
[ FReqsSub inputValuesDescription []
, NonFReqsSub
],
TraceabilitySec $ TraceabilityProg $ traceMatStandard si,
Expand Down Expand Up @@ -154,17 +155,32 @@ conceptChunks =

symbMap :: ChunkDB
symbMap = cdb (map (^. output) iMods ++ symbolsAll) ideaDicts conceptChunks []
dataDefs iMods genDefns tMods concIns labelledContent allRefs citations
dataDefs iMods genDefns tMods concIns labelledContentWithInputs allRefs citations

-- | Holds all references and links used in the document.
allRefs :: [Reference]
allRefs = [externalLinkRef]
allRefs = externalLinkRef : SRS.sectionReferences ++ map ref labelledContentWithInputs

stdFields :: Fields
stdFields = [DefiningEquation, Description Verbose IncludeUnits, Notes, Source, RefBy]

labelledContentWithInputs :: [LabelledContent]
labelledContentWithInputs = inputValuesTable : labelledContent

inputValuesTable :: LabelledContent
inputValuesTable = mkInputPropsTable inputs

inputValuesDescription :: Sentence
inputValuesDescription = S "the initial double pendulum configuration"

inputValuesSentence :: Sentence
inputValuesSentence = inReqDesc inputValuesTable inputValuesDescription

inputValuesRequirement :: ConceptInstance
inputValuesRequirement = inReq inputValuesSentence

concIns :: [ConceptInstance]
concIns = assumpDouble ++ goals ++ funcReqs ++ nonFuncReqs
concIns = inputValuesRequirement : (assumpDouble ++ goals ++ funcReqs ++ nonFuncReqs)
-- ++ likelyChgs ++ unlikelyChgs

------------------------------
Expand Down
6 changes: 3 additions & 3 deletions code/drasil-example/dblpend/lib/Drasil/DblPend/DataDefs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import Language.Drasil
import qualified Language.Drasil.Sentence.Combinators as S
import Theory.Drasil (DataDefinition, ddENoRefs, ddMENoRefs)
import Drasil.DblPend.LabelledContent (figMotion)
import Drasil.DblPend.Unitals (pendDisAngle_1, pendDisAngle_2, lenRod_1, lenRod_2, xPos_1, yPos_1, xPos_2, yPos_2)
import Drasil.DblPend.Unitals (forceVec, pendDisAngle_1, pendDisAngle_2, lenRod_1, lenRod_2, xPos_1, yPos_1, xPos_2, yPos_2)
import Drasil.DblPend.Concepts (horizontalPos, verticalPos)
import Data.Drasil.Quantities.Physics (velocity, position, time, acceleration, force)
import Data.Drasil.Quantities.Physics (velocity, position, time, acceleration)
import Data.Drasil.Quantities.PhysicalProperties (mass)

dataDefs :: [DataDefinition]
Expand Down Expand Up @@ -118,7 +118,7 @@ forceGDD :: DataDefinition
forceGDD = ddENoRefs forceGQD Nothing "forceGDD" []

forceGQD :: SimpleQDef
forceGQD = mkQuantDef force forceGEqn
forceGQD = mkQuantDef forceVec forceGEqn

forceGEqn :: PExpr
forceGEqn = vScale (sy mass) (sy acceleration)
9 changes: 7 additions & 2 deletions code/drasil-example/dblpend/lib/Drasil/DblPend/Unitals.hs
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ unitalChunks = [
lenRod_1, lenRod_2, massObj_1, massObj_2, angularVel_1, angularVel_2,
xVel_1, xVel_2, yVel_1, yVel_2, xPos_1, xPos_2, yPos_1, yPos_2, xAccel_1,
yAccel_1, xAccel_2, yAccel_2, angularAccel_1, angularAccel_2, tension_1,
tension_2, QPP.mass, QP.force, QP.gravitationalAccel, QP.tension, QP.acceleration,
tension_2, QPP.mass, QP.force, forceVec, QP.gravitationalAccel, QP.tension, QP.acceleration,
QP.time, QP.velocity, QP.position]

lenRod_1, lenRod_2, massObj_1, massObj_2, angularVel_1, angularVel_2,
pendDisAngle_1, pendDisAngle_2,
xPos_1, xPos_2, yPos_1, yPos_2, xVel_1, yVel_1, xVel_2, yVel_2, xAccel_1,
yAccel_1, xAccel_2, yAccel_2,
angularAccel_1, angularAccel_2, tension_1, tension_2 :: UnitalChunk
angularAccel_1, angularAccel_2, tension_1, tension_2, forceVec :: UnitalChunk

lenRod_1 = uc' "l_1" (len `ofThe` firstRod)
(phraseNP (len `the_ofThe` firstRod)) -- Fix me, can have more information
Expand Down Expand Up @@ -185,3 +185,8 @@ pendDisAngle = cuc' "pendDisAngle"
"column vector of displacement of rods with its derivatives"
lTheta' radian (Vect Real)
[physRange $ UpFrom (Inc, exactDbl 0)] (exactDbl 0)

forceVec = uc' "forceVec"
(nounPhraseSP "force vector")
(phrase QP.force `S.ofThe` S "system in vector form")
(vec (prime cF)) (Vect Real) newton
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ abbreviationsList =

-- | Holds all references and links used in the document.
allRefs :: [Reference]
allRefs = [externalLinkRef, pymunk] ++ uriReferences ++ offShelfSolRefs
allRefs = [externalLinkRef, pymunk] ++ SRS.sectionReferences ++ uriReferences ++ offShelfSolRefs

--FIXME: The SRS has been partly switched over to the new docLang, so some of
-- the sections below are now redundant. I have not removed them yet, because
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module Drasil.GlassBR.Assumptions (assumpGT, assumpGC, assumpES, assumpSV,

import Language.Drasil hiding (organization)
import qualified Drasil.DocLang.SRS as SRS (valsOfAuxCons)
import Control.Lens (view)
import Language.Drasil.Chunk.Concept.NamedCombinators
import qualified Language.Drasil.NounPhrase.Combinators as NP
import qualified Language.Drasil.Sentence.Combinators as S
Expand Down Expand Up @@ -67,7 +68,7 @@ standardValuesDesc :: UnitalChunk -> Sentence
standardValuesDesc mainIdea = foldlSent [atStartNP' (the value), S "provided in",
refS $ SRS.valsOfAuxCons ([]::[Contents]) ([]::[Section]), S "are assumed for the", phrase mainIdea,
sParen (ch mainIdea) `sC` S "and the", plural materialProprty `S.of_`
foldlList Comma List (map ch (take 3 assumptionConstants))]
foldlList Comma List (map (ch . view defLhs) assumptionConstants)]
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

take 3 was a hack, but I'm concerned that this will actually change stable?


glassLiteDesc :: Sentence
glassLiteDesc = foldlSent [atStart glass, S "under consideration is assumed to be a single",
Expand Down
38 changes: 26 additions & 12 deletions code/drasil-example/glassbr/lib/Drasil/GlassBR/Body.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ import Language.Drasil hiding (organization, section, variable)
import Drasil.Metadata as M (dataDefn, inModel, thModel)
import Drasil.SRSDocument
import Drasil.Generator (cdb)
import Drasil.DocLang (auxSpecSent, termDefnF')
import qualified Drasil.DocLang.SRS as SRS (reference, assumpt, inModel)
import Drasil.DocLang (auxSpecSent, termDefnF', inReq, mkInputPropsTable)
import qualified Drasil.DocLang as DocLang (inReqDesc)
import qualified Drasil.DocLang.SRS as SRS (reference, assumpt, inModel, sectionReferences)
import Language.Drasil.Chunk.Concept.NamedCombinators
import qualified Language.Drasil.Sentence.Combinators as S
import Drasil.System (SystemKind(Specification), mkSystem, systemdb)
Expand Down Expand Up @@ -39,14 +40,14 @@ import Drasil.GlassBR.LabelledContent
import Drasil.GlassBR.Goals (goals)
import Drasil.GlassBR.IMods (iMods, instModIntro)
import Drasil.GlassBR.MetaConcepts (progName)
import Drasil.GlassBR.References (astm2009, astm2012, astm2016, citations)
import Drasil.GlassBR.References (astm2009, astm2012, astm2016, citations, cartesianWiki)
import Drasil.GlassBR.Requirements (funcReqs, inReqDesc, funcReqsTables, nonfuncReqs)
import Drasil.GlassBR.Symbols (symbolsForSymbolTable, thisSymbols)
import Drasil.GlassBR.TMods (tMods)
import Drasil.GlassBR.Unitals (blast, blastTy, bomb, explosion, constants,
constrained, inputs, outputs, specParamVals, glassTy,
glassTypes, glBreakage, lateralLoad, load, loadTypes, pbTol, probBr, stressDistFac, probBreak,
sD, termsWithAccDefn, termsWithDefsOnly, concepts, dataConstraints)
sD, termsWithAccDefn, termsWithDefsOnly, concepts, dataConstraints, unitalSymbols)

srs :: Document
srs = mkDoc mkSRS (S.forGen titleize phrase) fullSI
Expand Down Expand Up @@ -120,17 +121,21 @@ background = foldlSent_ [phrase explosion, S "in downtown areas are dangerous fr

ideaDicts :: [IdeaDict]
ideaDicts =
-- IdeaDicts
[lateralLoad, materialProprty] ++ con' ++
-- CIs
map nw [progName, iGlass, lGlass] ++ map nw mathcon'
filter (\idc -> (idc ^. uid) `notElem` conceptChunkUIDs) baseIdeaDicts
where
baseIdeaDicts =
-- IdeaDicts
[lateralLoad, materialProprty] ++ con' ++
-- CIs
map nw [progName, iGlass, lGlass] ++ map nw mathcon'
conceptChunkUIDs = map (^. uid) conceptChunks

conceptChunks :: [ConceptChunk]
conceptChunks =
-- ConceptChunks
distance : concepts ++ softwarecon ++ physicalcon ++
-- Unital Chunks
map cw mathunitals ++ map cw physicalquants ++
map cw mathunitals ++ map cw physicalquants ++ map cw unitalSymbols ++
-- DefinedQuantityDicts
map cw mathquants

Expand All @@ -145,13 +150,22 @@ symbMap = cdb thisSymbols ideaDicts conceptChunks ([] :: [UnitDefn])

-- | Holds all references and links used in the document.
allRefs :: [Reference]
allRefs = [externalLinkRef]
allRefs = externalLinkRef : SRS.sectionReferences ++ map ref (inputValuesTable : funcReqsTables)

inputValuesTable :: LabelledContent
inputValuesTable = mkInputPropsTable inputs

inputValuesRequirement :: ConceptInstance
inputValuesRequirement = inReq inputValuesSentence

inputValuesSentence :: Sentence
inputValuesSentence = DocLang.inReqDesc inputValuesTable inReqDesc

concIns :: [ConceptInstance]
concIns = assumptions ++ goals ++ likelyChgs ++ unlikelyChgs ++ funcReqs ++ nonfuncReqs
concIns = inputValuesRequirement : (assumptions ++ goals ++ likelyChgs ++ unlikelyChgs ++ funcReqs ++ nonfuncReqs)

labCon :: [LabelledContent]
labCon = funcReqsTables ++ figures
labCon = inputValuesTable : (funcReqsTables ++ figures)

stdFields :: Fields
stdFields = [DefiningEquation, Description Verbose IncludeUnits, Notes, Source, RefBy]
Expand Down
12 changes: 8 additions & 4 deletions code/drasil-example/glassbr/lib/Drasil/GlassBR/References.hs
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
module Drasil.GlassBR.References where
module Drasil.GlassBR.References (
citations,
astm2009, astm2012, astm2016, beasonEtAl1998,
cartesianWiki
) where

import Language.Drasil

import Data.Drasil.Citations (campidelli, koothoor2013, smithEtAl2007,
smithLai2005, smithKoothoor2016, parnasClements1986)
import Data.Drasil.Citations (campidelli, cartesianWiki, koothoor2013,
smithEtAl2007, smithLai2005, smithKoothoor2016, parnasClements1986)
import Data.Drasil.People (jmBracci, tlKohutek, wlBeason)

astm2009, astm2016, astm2012, beasonEtAl1998 :: Citation

citations :: BibRef
citations = [campidelli, koothoor2013, smithEtAl2007, smithLai2005,
smithKoothoor2016, astm2009, astm2016, astm2012, beasonEtAl1998,
parnasClements1986]
parnasClements1986, cartesianWiki]

astm2009 = cMisc [author [mononym "ASTM"],
title "Standard Practice for Determining Load Resistance of Glass in Buildings",
Expand Down
6 changes: 4 additions & 2 deletions code/drasil-example/glassbr/lib/Drasil/GlassBR/Symbols.hs
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
module Drasil.GlassBR.Symbols where

import Language.Drasil (DefinedQuantityDict, dqdWr, cnstrw')
import Language.Drasil (DefinedQuantityDict, dqdWr, cnstrw', defLhs)
import Language.Drasil.Code (Mod(Mod), asVC)

import Drasil.GlassBR.ModuleDefs (allMods, implVars)
import Drasil.GlassBR.Assumptions (assumptionConstants)
import Drasil.GlassBR.Unitals (specParamVals, modElas,
tmSymbols, interps, derivedInputDataConstraints, unitless, probBr,
stressDistFac, nomThick, sdVector, inputsWUnitsUncrtn, inputsWUncrtn,
glassTypeCon, unitalSymbols)

import Data.List ((\\))
import Control.Lens (view)

symbolsForSymbolTable :: [DefinedQuantityDict]
symbolsForSymbolTable = symbolsForTermTable ++ map dqdWr unitalSymbols ++
Expand All @@ -19,7 +21,7 @@ symbolsForSymbolTable = symbolsForTermTable ++ map dqdWr unitalSymbols ++
symbolsForTermTable :: [DefinedQuantityDict]
symbolsForTermTable = map dqdWr inputsWUnitsUncrtn ++ map dqdWr inputsWUncrtn ++
map dqdWr sdVector ++ tmSymbols ++ map dqdWr specParamVals ++
[dqdWr modElas] ++ interps
map (view defLhs) assumptionConstants ++ [dqdWr modElas] ++ interps

-- include all module functions as symbols
thisSymbols :: [DefinedQuantityDict]
Expand Down
8 changes: 6 additions & 2 deletions code/drasil-example/glassbr/lib/Drasil/GlassBR/Unitals.hs
Original file line number Diff line number Diff line change
Expand Up @@ -300,11 +300,11 @@ lFail = label "f"
lTol = label "tol"

concepts :: [ConceptChunk]
concepts = [glBreakage, lite, annealedGl, fTemperedGl, hStrengthGl, lateral,
concepts = [glBreakage, lite, annealedGl, laminatedGl, fTemperedGl, hStrengthGl, lateral,
specDeLoad, longDurLoad, glassWL, shortDurLoad, specA, blastResisGla, blast,
blastTy, glassGeo, safeMessage, notSafe, bomb, explosion]

aspectRatioCon, glBreakage, lite, glassTy, annealedGl, fTemperedGl, hStrengthGl,
aspectRatioCon, glBreakage, lite, glassTy, annealedGl, laminatedGl, fTemperedGl, hStrengthGl,
glTyFac, lateral, load, specDeLoad, loadDurFac, loadResis, longDurLoad, modE, nonFactoredL,
glassWL, shortDurLoad, loadShareFac, probBreak, specA, blastResisGla, eqTNTChar,
sD, blast, blastTy, glassGeo, capacity, demandq, safeMessage, notSafe, bomb,
Expand Down Expand Up @@ -342,6 +342,10 @@ fTemperedGl = cc' fullyT
S "been subjected to a special heat treatment process where the residual",
S "surface compression is not less than 69 MPa (10 000 psi) or the edge",
S "compression not less than 67 MPa (9700 psi), as defined in", refS astm2012])
laminatedGl = cc' lGlass
(foldlSent_ [S "glass composed of two or more plies bonded together with an interlayer",
S "to improve strength and safety characteristics, particularly for blast resistant",
S "applications"])
glassGeo = dccWDS "glassGeo" (cnIES "glass geometry")
(S "the glass geometry based inputs include the dimensions of the" +:+
foldlList Comma List [phrase glaPlane, phrase glassTy, phrase responseTy])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import Language.Drasil
import Drasil.Metadata (dataDefn)
import Drasil.SRSDocument
import Drasil.Generator (cdb)
import qualified Drasil.DocLang.SRS as SRS (inModel)
import Drasil.DocLang (inReq, inReqDesc, mkInputPropsTable)
import qualified Drasil.DocLang.SRS as SRS (inModel, sectionReferences)
import qualified Language.Drasil.Sentence.Combinators as S
import Drasil.System (SystemKind(Specification), mkSystem, systemdb)

import Data.Drasil.Concepts.Documentation (input_, value)
import Data.Drasil.Concepts.Math (mathcon', ode)
import Data.Drasil.ExternalLibraries.ODELibraries
(apacheODESymbols, odeintSymbols, osloSymbols,
Expand Down Expand Up @@ -90,7 +92,7 @@ mkSRS
ShowDerivation,
Constraints EmptyS inputsUC]],

ReqrmntSec $ ReqsProg [FReqsSub EmptyS [], NonFReqsSub], LCsSec,
ReqrmntSec $ ReqsProg [FReqsSub inputValuesDescription [], NonFReqsSub], LCsSec,
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sure this is a good change, but it is going to lead to changes in stable. So it is usually best to do such changes in isolation (even if it means five 1-line change PRs) instead of being bundled in a larger PR.

TraceabilitySec $ TraceabilityProg $ traceMatStandard si, Bibliography]

si :: System
Expand Down Expand Up @@ -146,13 +148,13 @@ symbMap = cdb (map dqdWr physicscon ++ symbolsAll ++ [dqdWr mass, dqdWr posInf,
genDefns
theoreticalModels
conceptInstances
labelledContent
labelledContentWithInputs
allRefs
citations

-- | Holds all references and links used in the document.
allRefs :: [Reference]
allRefs = [externalLinkRef]
allRefs = externalLinkRef : SRS.sectionReferences ++ map ref labelledContentWithInputs
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this change, which is likely also good, will also change stable. We want to review these as separately as possible.


abbreviationsList :: [IdeaDict]
abbreviationsList =
Expand All @@ -161,8 +163,23 @@ abbreviationsList =
-- QuantityDicts
map nw symbolsAll

labelledContentWithInputs :: [LabelledContent]
labelledContentWithInputs = inputValuesTable : labelledContent

inputValuesTable :: LabelledContent
inputValuesTable = mkInputPropsTable inputs

inputValuesDescription :: Sentence
inputValuesDescription = S "the tunable controller parameters"

inputValuesSentence :: Sentence
inputValuesSentence = inReqDesc inputValuesTable inputValuesDescription

inputValuesRequirement :: ConceptInstance
inputValuesRequirement = inReq inputValuesSentence

conceptInstances :: [ConceptInstance]
conceptInstances = assumptions ++ goals ++ funcReqs ++ nonfuncReqs ++ likelyChgs
conceptInstances = inputValuesRequirement : (assumptions ++ goals ++ funcReqs ++ nonfuncReqs ++ likelyChgs)

stdFields :: Fields
stdFields
Expand Down
Loading