Images move to different components after element created
Summary
If you need to constantly move components around, please review Templates. If an element uses a template, changing a position of a component moves the component in all elements that use the template. You should hardly ever need to move components in templates beyond the "adjustment phase" when you make sure the template puts all components around optimally. If you need to change the position of components in a single element, Impose and Detach the template first.
Problem
Approximately 10-20% of the time, after I create an element and revisit it in the learn process, the images I placed in the element have been moved to different components or swapped components.
For example, here is an element I encountered today: http://imgur.com/F2efibP
And here is how it looks after I corrected it: http://imgur.com/5MNU5sv
The image on the top appears at all times so I have some reference of what I'm studying. The image on the right only appears during the answer phase.
Sometimes the two images have swapped places, so the image that is supposed to be in the answer image component on the right instead appears in the top image, and the discrete math header image appears in the right and is scaled way up and distorted. Which is odd because when I create the element I resize the answer image 99% of the time to normal size.
It is extremely annoying and tedious to have to make these adjustments constantly. Like I said it happens maybe 10-20% of the time but when it happens it seems it affects several in a row, so I may have to stop and fix 5-10 elements in a very short period. This significantly slows down my review process.
I am using SuperMemo 16.
Answer
This looks like a template problem. See Summary above if this is a correct diagnosis. It is easily to go into "infinite template adjustment loop" if you happen to think of a template as Template A in one context and Template B in another context. Depending on the context then, you will move your components to fit purpose A or B ad infinitum. In such cases, you need to define two templates, or use elements without templates. By default, when you paste images, you detach the template unless you are prompted to apply a default picture template.
Asker's Response
This issue is not about moving components around at all. The comment made below by someone else is correct - this issue is a bug in how images are stored in SuperMemo. What I'm saying is that I can paste an image into the correct component, and I can see that it is pasted into the correct component, but when I view the element later during the learn process there is a chance that the image was switched to another component by SuperMemo.
This is definitely a bug and not caused by me, because I can promise you that I am not accidentally pasting the image into the wrong component nor am I moving these components. When I create the example element I verified it looked like this (http://imgur.com/5MNU5sv) but when I viewed the element in learn the first time it looked like this (http://imgur.com/F2efibP) because SuperMemo moved the image AFTER I created the element.
Comment
The picture seems to suggest that the image is pasted to a wrong component: the one you use for labels.
There should be a question asked if you want the image pasted to a new component or to an existing components. If you choose "new", the label component would not be reused.
Data request
Your description seems to indicate this is a glaring bug. However, this has never been reported, and does not seem to show up in a daily practice of learning. This means that there must be a special step/factor in the way you do things. If this bug is to be fixed, we would probably need a way to reproduce it. Do you think you could prepare an example with step-by-step? These are the two most important things:
- definition of the template (does it include picture objects?)
- steps that lead to producing elements subject to reshuffle
Is this interpretation of the picture correct: After pasting, you see the correct element like on the right. When you return to the element, you see it as on the left, and then you correct it again back to the original form?
Response
Yes, your interpretation of the picture is exactly correct. That is exactly what happens.
Regarding replication, I don't know exactly how to replicate it because it occurs randomly. Most of the time the elements are fine when viewed during learn. Sometimes (not always) elements in this particular template are affected by this issue.
The definition of the template does include a picture object, the small one at the upper left. I use a "header" image to denote all elements with this template as "Discrete Math" elements. This is an example of a newly-created blank element from this template, with no content yet added. You can see the header image in its correct location at the top: http://imgur.com/a/54rQN
The reason I want the header is to provide context for the question. Often terms are reused between fields/disciplines with very different definitions, so if I have a question asking me to define term X but I don't know the context I may give the answer for the same term from another field. For example, if the element question is "define altitude" then the answer will vary depending on the context. In geometry it is defined as a perpendicular line segment from the vertex of a triangle to its base. In physics it is defined as the elevation of an object above some surface. In leadership studies it may be loosely defined as the level of leadership you reach in an organization. Etc. Since this is a lifelong learning tool I can't predict what terms will be used in the future or even what fields I will learn, so I use the header to provide context and scope for the terms used in the questions and answers. I see from the SuperMemo website that colors may be used to do this, but if a question may be asked months or even years later then a color alone may not be sufficient to give the correct context.
Several templates I have follow this pattern. I chose to use an image because I was unable to have a template retain html content, only image content. If there is a way to have a text or html component hold a title/header/banner that can provide context for the template I am more than willing to try that. But in my testing I could not get the template to show the html content in the new element once the template was applied, the component was instead always blank in the newly-created element. Using an image standardizes the header and ensures I don't have to waste time retyping it each time I create an element.
Here's an example showing that html component contents are not saved in templates. I created a new collection and created a template containing an html component as the header, and its contents are not retained when applying the template to a new element. Color was chosen arbitrarily to clearly show there are three html components in the template.
1. Create element containing template title "Geometry": http://imgur.com/a/8PLux
2. Save element as template (with objects) named "Geometry": http://imgur.com/a/IFaBl (you can see the html title "Geometry" is displayed in the template in the registry)
3. Press ALT+A to create new empty element: http://imgur.com/a/47Iht
4. Press CTRL+SHIFT+M and apply the "Geometry" template: http://imgur.com/a/pisC5 (you can see the html title "Geometry" did NOT copy over when the template was applied)
Because of the above behavior I chose to use an image component containing the title. The need for a title for context is the underlying requirement. If there is a way to solve this requirement I'm willing to eliminate the header image, which will likely eliminate the buggy behavior.
Thank you.
idea
before this is resolved, consider using templates with different colors. This works well as a mnemonic. If you stay within 10-20 templates, color is a good mnemonic. Save with objects had more issues in the past because it is rarely used, so there is less reporting and less debugging. Some objects issue might be the cause. Alternatively, you could experiment with text objects. If you reproduce something similar, we will know it is a systemic issue.
Response
I do use templates with different colors, one for each major area. Currently I have three major areas in my collection: math, computer science, and social science. Each major area has a different color, and there are 2-4 templates in each area. But I do not believe color will be sufficient because subject areas are broad and definitions may change slightly even within those broad areas. For example, the specific details of a data type in one programming language may be substantially different from another type of the same name in another language. Simply using one color to cover them all will not suffice. It could be argued that I should use a different color for each "subtopic" but we start to run out of clearly distinguishable colors quickly.
One workaround I have used is to simply write text at the beginning of the question to further clarify what is being asked. For example, in the math elements I may write "combinatorics" at the top before asking the question, or "graph theory" if the question is specific to graphs. If I had to write "discrete math" or "calculus" or "computer science" or "psychology" or whatever in each element each time that would be extremely tedious. For example, in one branch alone I have 1800 children already.
It seems there should be a better way to distinguish topics than simply picking an arbitrary color. If saving with objects is error prone why is it available as an option? Your documentation explicitly says to use it to save templates with text, images, and audio/video.
Example: "If you want particular texts, sounds or pictures to be associated with the template, use Template : Save with objects." https://www.supermemo.com/help/templates.htm
Example: https://www.supermemo.com/help/faq/templates.htm#5753-6179
Also, using a text component as a header label for the element causes every element with that template to have the same name in the Contents window, see here:
Element 1: http://imgur.com/a/XrCiB
Element 2: http://imgur.com/a/dmX7P
Using this approach, every element in the Contents window will effectively have the same name (e.g. "Discrete Math", "Calculus", etc) and that will render the Contents window effectively useless for navigating elements.
I'm really not trying to be difficult, just pointing out that your statements contradict your official guidance, and in any event the proposed solution of using text components creates its own problems.
Thanks.
more ideas
- colors might be ok for 5-10 subject areas
- pictures are good for material derived from the same article
- using Ancestor window might be good for a quick peek at the context
- ultimate context tool is the references: http://help.supermemo.org/wiki/References
Response
"colors might be ok for 5-10 subject areas" does not sound like a confident answer. What research supports this? This is supposed to be a research-backed learning tool but answers often seem to reduce to heuristic assumptions like this. I'm not saying it is wrong but I would like to know what this assumption is based on. Especially given the other question posted here that shows the SM17 algorithm suddenly deciding that elements will be delayed 30 years with no explanation. I highly doubt any reasonable person can be expected to know what a color means after a 30 year gap!
All of these suggestions seem based on the idea of using SuperMemo for incremental reading. That's not what I'm doing -- I'm creating elements based on learning material from external resources (textbooks, lecture videos, etc) not incrementally reading web pages. Virtually none of what I do currently involves incremental reading so these suggestions do not seem to help at all. I also suspect many people are using SuperMemo primarily for general flashcard and cloze element creation instead of fully embracing incremental reading. That suspicion is based on reading every single online article or blog or forum post on SuperMemo (the very few that exist) and watching every video on it I could find, and also on SuperMemo's own website which constantly pushes incremental reading as "revolutionary" which implies it is not yet widely embraced.
Including pictures for math elements is useful but it often requires using at least two separate image components, one containing an image related to the question (example question: "explain why there is no Eulerian path or cycle in the graph shown" along with an image of the graph to analyze) followed by an image related to the answer (example answer: "the graph has more than two nodes of odd degree" along with an image of the same graph highlighting the odd-degree nodes). But if the underlying problem described on this page is caused by having two image components in the same element then this returns us back to square one, risking having images switch between components automatically.
Also, using the ancestor window actually undermines the learning process when cloze deletions are used. In this image I opened the ancestor window on the current element I happened to have open while typing this message, and you can clearly see the answer in the parent. (the child question was reformulated to be more clear in isolation)
hint
ref: "colors might be ok for 5-10 subject areas" does not sound like a confident answer. What research supports this? This is supposed to be a research-backed learning tool but answers often seem to reduce to heuristic assumptions like this.
You bet we have no research data on "the number of colors that can be used to differentiate templates". It is all based on own experience, internal communications, user reports, common sense, and the like. If you worry that SuperMemopedia is a "gossip vehicle", you are right! At least, false claims might be fixed in the future. Some users would prefer a user forum, which would be a gossip machine on steroids. You could write to management and ask for template color research, but the budget is too tight even for the most essential software upgrades, which dooms most but top-priority projects. All we can do is to provide "best guess" advice.