This paper is concerned with the evaluation of Hyperlog. We first define the semantics of Hyperlog programs in terms of a bottom-up `naive' evaluation strategy. We then show the semi-naive evaluation algorithm developed for relational languages can be adapted for the more efficient evaluation of Hyperlog programs. Since we only have one graph predicate, this is achieved by syntactically partitioning the templates of rules into those templates which cannot be affected by any updates to the database during the evaluation of the program and those templates which may be affected by updates to the database. The former templates are the analogue of EDB predicates and the latter of IDB predicates in relational rules.