\chapter{Contribution}
\comment{ \emph{Work that I did}. 

Much of this work was done maintaining CWM over four years. Cwm was originally written by Tim Berners-Lee in 2000. The Notation3 parser was written by Dan Connolly. The basic reasoning engine was written by Tim. Various builtins were written by others, including Sean B. Palmer. 

I maintained CWM, fixing a large number of bugs. In the process, I rewrote many parts of the reasoning engine, including the unifier and the rule scheduling. I also implemented the SPARQL compiler. 

With the AIR reasoner, much of the design was done in conference with Chris Hanson. The TMS was translated by me, almost line for line, from scheme code by him. The actual reasoner was built using CWM as a library, with the RETE written by me. The TREAT reasoner was also written by me. 

}
%%%%%%%% Let's try this again
The work done in this thesis was done over the course of maintaining Cwm as a program used by people worldwide. Cwm was originally written by Tim Berners-Lee in 2000. While doing this, I was working to ensure people could use it as a tool for real-world problems they had encountered. This work has advanced much the use and understanding of rules and proof checking on the Semantic Web. 

In this work, I spent a large amount of time on rules engines. Implementing rules engines and seeing how they worked on the data that existed was an important line of work. In the process, I rewrote many parts of the reasoning engine, including the unifier and the rule scheduling.

Much of this work was done maintaining CWM over four years. Cwm was originally written by Tim Berners-Lee in 2000. The Notation3 parser was written by Dan Connolly. The basic reasoning engine was written by Tim. Various builtins were written by others, including Sean B. Palmer. 

The TMS used in the AIR reasoner was translated by me, almost line for line, from scheme code by Chris Hanson. The purpose was to see what it could be used for in an RDF setting.

The AIR reasoner was written through much consultation with Chris Hanson. The design was based on an AMORD implementation he had written. The RETE engine was based on the PhD paper referenced. Modifications to support goals, builtins, and possible efficiency improvements were made. 

The proof generator, and checker in Cwm were written by Tim. The checker as written by Tim was incomplete, and did not do the steps necessary to finish checking. I worked to get the proof checker both correct and performing in a satisfactory manner. 

With the development of SPARQL, it was becoming obvious that a RDF engine should be able to output SPARQL. The SPARQL to Notation3 compiler I developed for this is unique. Mostly it demonstrates that the mapping between the two languages is not straightforward. 

The parser this SPARQL compiler used was based on a LL(0) parser written by Tim. The grammar was processed from the standard by a program written by Eric Prud'hommeax and further hand modified by me. 

By combining these different technologies into one tool, I allowed for them to be used in engineering domains that have not been explored much before. The conclusions of this thesis result from the experiences in using these tools. In particular, these experiences were resulted from running rules created by other people, and seeing if and how they could be used. 

%%%%%% What I contributed to the world

