Semantic reflection combines reflection in programming languages with semantic technologies for knowledge representation. It enables a program to represent and query its own runtime state as a knowledge graph. The knowledge graphs reflecting program states can be combined with domain knowledge which allows queries about a program to be made in terms of a given domain vocabulary, as well as with external graph data. Both extensions of the knowledge graph reflecting the run-time state are useful for digital twins. In this paper, we discuss the basic concepts of semantic reflection, its applications for digital twins, and its connections to formal methods.