Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make sure "specialized" definitions reference their "primitive" concepts #3706

Open
samm82 opened this issue Apr 1, 2024 · 4 comments
Open
Labels
newcomers Good first issue to work on!

Comments

@samm82
Copy link
Collaborator

samm82 commented Apr 1, 2024

I noticed during #3702 that the definition of "position vector" doesn't reference "position" at all! Regardless of whether this definition is meant to convey something different (i.e., if the fix is renaming it vs. redefining it), an investigation of how we "build up" concepts should probably be done as part of the work from that meeting. Thoughts?

position = dcc "position" (cn' "position")
"an object's location relative to a reference point"
positionVec = dccWDS "positionVec" (cn' "position vector")
(S "a vector from the origin" `S.ofThe` phrase cartesian +:+ S "defined"
`S.toThe` phrase point +:+ S "where the" +:+ phrase force +:+ S "is applied")

@samm82 samm82 added the newcomers Good first issue to work on! label Apr 1, 2024
@smiths
Copy link
Collaborator

smiths commented Apr 5, 2024

Thank you for creating this issue @samm82. Yes, we need to go through all of our examples and strengthen the concepts.

@Xinlu-Y
Copy link
Collaborator

Xinlu-Y commented Sep 19, 2024

It seems that position is being used in the key model definitions and equations. Could this be a result of inconsistent naming, or should positionVec replace position in this context? Additionally, how should I correctly build up positionVec to reference position?

posVecGD :: GenDefn
posVecGD = gdNoRefs (equationalModel' posVecQD) (getUnit position)
(Just posVecDeriv) "posVec" [{-Notes-}]
posVecQD :: ModelQDef
posVecQD = mkQuantDef' position (nounPhraseSent $ foldlSent_
[atStart position, S "vector as a function" `S.of_` phrase time `S.for`
getAcc twoD, S "motion under", phrase QP.constAccel])
E.posVecExpr
posVecDeriv :: Derivation
posVecDeriv = mkDerivName (phrase positionVec) [posVecDerivSent, eS' posVecQD]
posVecDerivSent :: Sentence
posVecDerivSent =
vecDeriv [(position, E.positionXY), (velocity, E.velocityXY), (acceleration, E.accelerationXY)] rectPosGD

Image

@JacquesCarette
Copy link
Owner

You are correct that there seems to be a confusion in this example between position and positionVec. Your instincts are correct that position should not be used at all, and positionVec should be instead. Is that clear enough?

@JacquesCarette
Copy link
Owner

It does make sense to define the 'concept' of position; positionVec should, in theory, refer to that. But our current arrangement of Chunks may not really support that at the moment. It's part of the big project of re-arranging chunks more 'semantically'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
newcomers Good first issue to work on!
Projects
Status: To do
Development

No branches or pull requests

4 participants