Sem-PubMed: a Semantic Medical Digital Library that Integrates Ontology Learning and Query Reformulation