A smart entity in ATLAS.ti is always a query. You can create smart entities for codes and groups.
In the Code Manager you can create smart codes using the operator OR. This is useful if you need a combination of two or more codes for data analysis. In the Query Tool, a smart code can be used to store query results. Smart groups can be created in the Group Managers. They are especially useful for document groups when used as variables. They allow you to create combination of variables.
The reason for naming such codes and groups smart is because they change along with your project. If you change any of the codings of a code that is part of a smart code, this will be reflecting in the smart code when retrieving its quotations. If you add or remove documents that are members of the groups that make up a smart group, the smart group retrieves those documents that reflect the current state of your project.
Every time you click on a smart code or smart group, the underlying query is run, and you see the up to date results.
A snapshot entity turns a smart entity into a regular code or code group. You can think of it like a snapshot you take with a camera - it preserves the current moment. Thus, snapshot entities do no longer change automatically.