This is an in-depth introduction to the concepts and technology which have been developed to support the emerging 'semantic web', where machines will automatically derive new knowledge and services from resources already on the Internet. The student is exposed to the contrasting notions of syntax vs. semantics, embodiment vs. mimetics and model theoretic semantics vs. propositional logic. Students review technology to support knowledge representation and reasoning, such as XML, RDF, RDF Schema, DAML+OIL, OWL and RuleML, and discuss theoretical aspects of reasoning such as complexity and decidability in the context of SAT and theorem proving. There is hands-on experimentation and programming with the enabling tools of the semantic web.