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

Custom Names for Chunks Built from QDefinitions #1829

Open
samm82 opened this issue Aug 14, 2019 · 3 comments
Open

Custom Names for Chunks Built from QDefinitions #1829

samm82 opened this issue Aug 14, 2019 · 3 comments
Assignees
Labels
design Related to the current design of Drasil (not artifacts).

Comments

@samm82
Copy link
Collaborator

samm82 commented Aug 14, 2019

Sometimes, it is desired to have the label of a theory chunk be different than the quantity it outputs. An example of this comes from #1815, where the calculated result is the "velocity at point B", but it uses "Chasles' theorem", which is the desired name for the chunk.

In the TM version of this chunk (again from #1815), it was easy to set the custom name, since TMs are built from RelationConcepts, which take a name for the RC (and by extension the theory chunk) as the parameter rTerm, which was used to set the name of the TM as follows:

-- | Create a RelationConcept from a given id, term, defn, and relation.
makeRC :: String -> NP -> Sentence -> Relation -> RelationConcept
makeRC rID rTerm rDefn = RC (dccWDS rID rTerm rDefn)

chaslesThm :: RelationConcept
chaslesThm = makeRC "chaslesThm" (nounPhraseSP "Chasles' theorem")
chaslesThmDesc chaslesThmRel

So the question really boils down to "Should we add this same functionality to QDefinitions, and if so, how would that best be accomplished?" This discussion originated from this comment thread, which is on the code where my proposed solution of added the functionality can be found.

@samm82 samm82 added question design Related to the current design of Drasil (not artifacts). labels Aug 14, 2019
@JacquesCarette
Copy link
Owner

I think @smiths should 'listen in' to this one too. But I think everyone on the team gets these notifies, i.e. all who watch the repo.

I think what's going on here is that, conceptually, there is a 'refinement', or at least a 'use' step going on, which isn't really reflected in the code. What I mean is that we have a theorem (Chasles' Theorem) in our knowledge base, and we want to use it to compute something (a velocity at point B in this case). We're kind of falling into the use-mention distinction trap (https://en.wikipedia.org/wiki/Use%E2%80%93mention_distinction).

In other words, there are two very distinct concepts involved here: Chasles's Theorem, which ought to exist 'independently', and its use, to create a particular new definition.

The question in the comment thread asked if the new construction was 'too hacky': and the answer seems to be 'yes'. Not because what it does is wrong, as it's not! Operationally, it does the right thing. What is wrong is the name, and thus its conceptualization: we need a name that indicates that we are making use of a particular concept to refine it into something entirely new, to be used in a new context.

@smiths
Copy link
Collaborator

smiths commented Aug 14, 2019

This discussion reminds me of our refinement discussion from the beginning of the summer. For instance, Theoretical Models are refined to General Definitions through the use of assumptions. Chasles' theorem is refined from a general theorem for any vector to specific vector. We also have an example in the notion of generic mathematical vector operations applied to specific vectors, as discussed in #1814. I'll put this down for discussion in tomorrow's (Thursday's) all hands meeting.

@balacij
Copy link
Collaborator

balacij commented Apr 26, 2023

This explains things related to #2937 quite well. I'll return to this one too.

@balacij balacij self-assigned this Apr 26, 2023
@balacij balacij removed the question label Apr 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Related to the current design of Drasil (not artifacts).
Projects
None yet
Development

No branches or pull requests

4 participants