Supporting artifact-mediated discourses through a recursive annotation tool