The ToolMatch service was developed with the intent to provide data users with the means to match their data collections with a comprehensive list of useful, appropriate tools, and to provide data tool developers with data collections that will work with their tools. As such ToolMatch had an initial scope of two use cases, the first of which was the semantic matching of data collections with tools. This would allow data users to find and choose among a list of otherwise separate and potentially hard to find tools that could work with their data collections. The second (and more difficult) of these use cases was the converse: given a tool, semantically find what data collections that the tool can use. If the first use case is analogous to having nails and looking for a hammer, then the second use case can be compared to having a hammer and looking for nails. It is much more difficult to find data collections that may work with a given tool, since a tool user might not necessarily know what to look for. Using the ToolMatch service, a tool user could easily find a data collection to use with their tool. In both of these use cases, wasted time and effort searching for the correct tool or data collection can be reduced or avoided completely. The focus of this thesis will be on the implementation of these two use cases, as well as an extension of the first use case, where a data user with certain semantics for a given data collection (such as a domain model) can find tools that can be used with the content of that data. This is an important issue due to the fact that a certain data collection content may not be appropriate for a tool within a certain domain model. For example, rainfall or topographic data content that is part of a larger Hydrological model can be matched to tools that the model as a whole might not be able to match. This expands the scope of the initial use case in that data collection content requires stricter matching than just the characteristics of data collection. The requirements of this use case involve modification and expansion to the ToolMatch conceptual model and ontology to allow for semantic matching between data content and tools. These changes will also be reflected in the ToolMatch web service, which allows users to make add, update, or delete instances of the ToolMatch ontology without having to have a full understanding of ontologies.