An abstract noun is something that doesn't really have a concrete shape or form - it is usually a feeling, such as love, or hatred, or something abstract as knowledge. Having this in mind, the correct answer is D. Logic is easily understood. A and B are quite concrete as you can touch a vase and a dish towel, whereas you cannot do this with logic. In C, smile could also be considered to be an abstract noun, but if you only have to choose one option, I'd go with D.