I would like to create a community maintained open glossary on all the terminology surrounding both TBT and HTM, as well as some of the related neuroscience. Before we start creating such a glossary, does anyone know if such a glossary already exists which could be taken as an initial version? I think in such an open glossary, the items that are created, should be lockable by the authors, like in a Wiki, but others could post proposed enhancements or alternatives. Such a glossary would, in my opinion, enrich and facilitate the dialogs and conversations that are taking place. It could also be referenced with links.
Thatâs a great idea! Weâve started a glossary in our docs and youâre welcome to add terms to it through our normal documentation editing process.
You can click on the âMake a contributionâ button at the bottom to create a Pull Request.
Note: it would be a good idea to add one glossary item per Pull Request as theyâre more likely to be accepted individually than a whole bunch at once.
Further reading on how to make contributions to our documentation here: Documentation
Iâd suggest that the Glossary only include terms in their singular form, for consistency (e.g., Feature, Dendrite).
Iâm not qualified to create definitions for most Monty-specific terms, but I can tell when I encounter a term that seems (a) potentially unfamiliar and/or (b) project-specific. So, hereâs a list of current and suggested Glossary entries for the short run:
- Abstract Representation, Active Dendrite, Auditory, Axon
- Common Neural Algorithm, Compositional Representation Cortex, Cortical Column, Cortical Level, Cortical Messaging Protocol (CMP)
- Dendrite, Displacement
- Effector, Efference Copy, Environment
- Feature
- Graph, Grid Cells
- Inductive Bias, Inference
- Kinesthetic
- Learning Module, Location
- Model, Motor System
- Neocortex
- Observation
- Path Integration, Policy, Pose
- Reference Frame, Rigid Body Transformation
- Sensor, Sensor Module, Sensorimotor/Embodied, Sequence Memory, Software Development Kit (SDK), Sparse Distributed Representation (SDR), Sparsity, Synapse
- Tactile, Thousand Brains Theory, Transformation
- Visual, Voting
Longer term (as the project moves into a multi-module implementation), terms such as Actor Model, Attention, Concurrency, Distribution, Failsoft, Message, Pattern Matching, Soft Real Time, and Synchronization will need definitions.
Finally, Iâd suggest the addition of a lot more links in the doc pages. I generally use Wikipedia for these, by preference, because the descriptions tend to be neutral, have citations, etc. When a term is not defined well (or at all) in Wikipedia, I link to project documentation or other sites.
Thank you very much for your prompt and informative response. I am glad to see that a Glossary already exists in its early stages. This is exactly what I was looking for. I find it a great idea that to add a new item, we use a Pull Request. I only have one question. Sometimes in our natural language, and this may also apply to certain neuroscientific terms, a word can have multiple meanings. This is why the process of disambiguation can be quite challenging in NLU (Natural Language Understanding). I think it would be a better practice to enter the same term with a numeral as a suffix (i.e. Pose [1], Pose [2]) for each individual meaning the term can have. This way someone using the second meaning of the term, could reference that item in the glossary. If this policy of having only one definition per entry in the glossary would be established, this would greatly facilitate our disambiguation of how we are using a term in a particular contribution. Some notorious examples of terms with multiple meanings are: Cortical Columns, (mini CC from HTM or TBT CC). Or terms like âConsciousnessâ, âMindâ, âUnderstandingâ, âBiasâ. Many conversations end in unnecessary disagreements due to the unprecise assignment of meaning to the terms being used.
Hi @ExtropianMind
thatâs an interesting point you raise. In our internal research discussions, we are usually very careful with the kind of terminology we use and do everything to avoid terms that may be interpreted in different ways. For instance, when we talk about minicolomns, we always explicitly use the term âminicolumnâ and not âcortical columnâ. Although those terms may be used ambiguously in the literature, we try to be consistent within our discussions and also our documentation. So, hopefully, one definition in the glossary that explicitly spells out how we use the term should be enough.
There are a few exceptions with terminology that is still fresh and where we are having active research discussions to figure out the exact meaning and relevance in the theory. Examples of those are âstateâ and âbehaviorâ. However, since those are not concrete enough to be in our code or documentation, it should hopefully not be too big of an issue yet, and in research meetings (recordings on YouTube) we try to be explicit in what we mean when we use the terms in the current context (for example talking about âobject behaviorsâ instead of âbehaviors of the agentâ). If you come across any terms that we use ambiguously in the documentation, please let us know
Hi @vclay
Thank you for your response and explanation of how you in this community strive to maintain clearness in the terminology. It is very commendable that certain compound scientific terms be assigned one single interpretation and that those who misuse the term, simply be excluded or corrected. But natural human language is not controllable by any entity or community, as many linguists could certainly corroborate. I must share with you, that I am not the originator of this concept of listing words with multiple suffixes for each semantic variant. Prof. Dr. David Brock from MIT, with whom I corresponded and collaborated often back in 2009 - 2012, had worked with many of his post-doctoral students on NLU and disambiguation of natural language. He created something he called the M-Language which was basically a dictionary that assigned one single meaning to each word. A word like âCellâ comes with multiple meanings. And this is an inevitable fact of natural languages. In his M-Language dictionary, Cell[1] was a biolotical cell with a membrane and protoplasma etc. then Cell[2] was a closed area, like a jail cell or a car cell, which was physically inhabitable but closed off from the outer world. Then Cell[3] was the area covered by radio signal coverage of an antena or repeater. This gives rise to the term Cell Phone etc. Then Cell[4] was a group of associated agents working together, sometimes undercover, like a terrorist cell or a sleeper cell, etc. And the list went on. It is a fact that cell can have many widely accepted meanings. This also applies to many scientific terms. In Prof. Dr. David Brockâs workgroups, one unresolved issue was how to code the semantic representations of each word in the M-Language. He had competing teams with competing concepts and to some extent, he was a pre-cursor of the Thousand Brains Project, because he devised an algorithm that allowed multiple competing algorithms to compete by âvotingâ for which of the entries in the M-Language, the next parsed word was intended to mean. The different NLU algorithms would raise a hypothesis of the intended meaning, and the umbrella algorithm supervising all the 40+ NLU sub-algorithms would handle the voting process. In this way, his team made great progress with the disambiguation of natural language.
Borrowing from this experience with the M-Language, I have come to realize that many of our disagreements in some scientific forums or direct exchanges are basically rooted in the unprecise nature of our human natural language. We after all use natural language for scientific publications, even though the scientific language conventions strive to eliminate ambiguity and enforce consistency. They are, nevertheless, human natural language publications and definitely not logically consistent, machine-readable mathematically processable languages like Assembly Language or higher functional programming languages. So the issue of inherent ambiguity in the terms is non-trivial. That is the reason I was proposing to incorporate this âgood practiceâ into our glossary from the very early stages we are in right now.
To get folks used to looking things up in the Glossary, it would be useful for forum posts and documentation text to link to it from time to time.
Be sure to use full links (e.g., Environment). A fast way to get the needed URL is to click on the item in the âTable of Contentsâ sidebar. This will load the full URL into the browser where it can be copied easily.
Side note to the maintenance crew:
⌠environmentsâ state ⌠â ⌠environmentâs state âŚ
I agree with you and @ExtropianMindâs statements.
Also, I agree on the weird ambiguity of that specific glossary term. It is techincally, grammatically correct, providing the author intends for there to be plurality in both âenviromentâ and âagentâ. That said, it is structured weird. In my opinion, a better phrasing would be:
âDepending on the state of the environment and the actions and sensors of the agents, the environment returns an observation for each sensor.â
Thanks a lot for the instruction on how to obtain links to the glossary elements. I fully agree that the first important step is to get folks used to referencing the glossary and its definitions. This is my first use: Glossary
In the link above, I actually copied the URL for the entry âenvironmentâ. When I insert it, it is displayed as âGlossaryâ. I do not know how to change the inserted URL label to the actual entry âenvironmentâ. Perhaps I am doing something wrong. I am using Chrome as a browser.
I am now inserting the URL for the item âGraphâ in the glossary: Glossary
In order to display Graph, I had to edit the HTML using the Inspect instruction. This is not very practical. Could this be done in a different more straight-forward way? I also just confirmed that it reverts to display âglossaryâ.
Without the Markdown source code for your posting, I canât analyze your issue. However, I can show you the Markdown for my sample (Environment) link:
[Environment](https://thousandbrainsproject.readme.io/docs/glossary?p=123#environment)
-r
Good points. I think we want to strike a good balance between making it effortless to communicate with each other (not slowing communication down by requiring lookups of glossary items and linking which specific definition we refer to) and avoiding ambiguity (in most cases achieved by the context of the sentence/paragraph). Linking to the glossary more often is a good idea.
@ExtropianMind I think what you need to do is click on the little anchor symbol next to the header of the glossary item. This will give you a URL specifically for that item. let me know if that works!
- Viviane
Thank you both so much for your kind support and tips, @vclay & @Rich_Morin!
I can now see the little anchor, thanks for that. If I click on the anchor my page scrolls to the entry and the URL is displayed in the browser address field. I can also right-click on the anchor and then copy the URL address. When I then insert that address in my text (like below), I get the entire URL displayed in the text, instead of just the term I am referencing, like Rich_Morin has done in his text. Is my mistake the way I insert the address into my text?
By the way, sorry for the delay in my responses. I live and work in Germany (in Braunschweig and Wolfsburg) and have a big time difference with you.
Funny, now, after saving my text above, I see the term Glossary displayed, where I inserted my stored URL. When I click on the Mark-Up word Glossary it then takes me to the term I had selected, in this case âModelâ.
This is the URL I copied:
An inline Markdown link has two sections. The first [bracketed] section contains the display text; The second (parenthesized) section contains the target URL. So, after pasting in the link, make sure that these pieces are in the right places, e.g. [display text](http://...)
.
Thanks again, @Rich_Morin
This is a test:
I used this pop-up while inserting this time.
And this is what I see when I inspect the HTML in Chrome:
Please do not worry about my lack of inserting skills. I will figure that out. I need to practice with my Chrome browser. Perhaps Firefox is easier for me. That is a technicality which I will figure out. My question is whether this is practical and usable for most participants?
@vclay,
Coming back to your first comment, thanks for sharing your views. I fully agree that for any forum with lively exchanges of ideas, striking the right balance and making it effortless to emphasize the fact that one is using a particular term in a specific sense, is important, but should not be over-used. What I found to be the case in our HTM Forum over the years (my username there is BrainConstellation) is that when a point gets debated with some degree of disagreement, the participants texting end up writing out their definitions of some terms they are using in the text, sometimes as long as an essay. That is not exactly practical, but does help resolve the differences in the points of view.
But I do not want to overstate the importance of this lexical suggestion I was making. I think I provided you with some âfood for thoughtâ and you can decide as the forum evolves, whether this idea of creating a unique lexical reference for each established meaning of a term, would be of benefit. It is not that important right now. Thanks for your responses.
Sounds to me like the PopUp is malfunctioning. The HTML defines two links (Glossary & Model). Both of these go to the same URL, but the display text differs. So, a possible oops.
Unless and until you get a resolution on the suspected bug, youâll want to have a reasonably painless workaround. Iâd suggest the following:
- Set up most of the link, e.g.:
[Foo]()
. - In another tab, follow an TOC link to a Glossary section.
- Copy the browserâs notion of the current URL.
- Paste the URL into the link body.