Removing comments. Updating the comments below.

5. **Who is the director of Heat?** concat(/movies/movie[title="Heat"]/director/first_name/text(), /movies/movie[title="Heat"]/director/last_name/text())
---> There should be a space in the middle
---> concat(/movies/movie[title='Heat']/director/first_name/text(), ' ', /movies/movie[title='Heat']/director/last_name/text())

7. **Which movies have a summary?** /movies/movie[summary]
---> If you just use summary, empty summary nodes will also be returned
---> /movies/movie[summary and string-length(summary/text()) != 0]/title/text()

8. **Which movies do not have a summary?** /movies/movie[not(summary)]/title/text()
---> Same comment as number 8. /movies/movie[not(summary) or (string-length(summary/text()) = 0)]/title/text()

9. **Titles of movies published more than 5 years ago** /movies/movie[year<2009]/title/text()
---> Make search string relative as opposed to fixed
---> /movies/movie[year <= 'year-from-date(current-date())-5']/title/text()

14. **Get the movies whose cast consist of exactly three actors** /movies/movie[count(actor) = 3]
---> Return the text value of the movie
---> /movies/movie[count(actor) = 3]/title/text()