This is an archive of an inactive wiki and cannot be modified.

This use case concerns the integration of information from multiple data sources. The Semantic Web provides a common data representation and query language, which greatly simplifies access to diverse sources but does not directly address the problem that independent data sources may have rather divergent information models.

Rules are an effective way to express mappings between such information models. However, rules locked within local proprietary systems cannot be reused. With a common rule representation, such mappings can be published across the Semantic Web, enabling an enterprise or community to progressively build up a rich network of mappings unifying the information models.

Information mapping and integration problems like this arise in many diverse domains including health care, travel planning, IT management and customer information management. The following scenario comes from the world of IT systems management.

Vlad has been given the job of analyzing how exposed his division's business processes are to changes in their IT maintenance contracts. He has three sources of information to combine:

Each of these sources is in a different form but can be mapped into RDF to simplify access. However, they all have different information models. The IT report is too fine-grained: it talks about routers and interface cards whereas Vlad only needs to identify servers and pick out some generic dependency relations. On the other hand, the finance database models the world in terms of physical assets such as racks, which is too coarse-grained.

First, Vlad creates simple mapping rules to create a uniform, simplified view of the data in terms of a small number of concepts -- Server, BusinessProcess and Dependency. This involves rules such as:

If x is a ComputeNode in Rack r
   and Rack r is in Cage c
   and mc is a MaintenanceContract for Cage c
      then x is a Server with MaintenanceContract mc

If x is a ComputeNode with a NetworkInterface with Port p
   and app is an Application running on Port p
      then x is a Server that hosts app

If bp is a BusinessProcess that uses Application app
      then bp has a Dependency on app

He then creates rules that combine the data across his now simplified data sources, e.g.

If bp is a BusinessProcess that has a Dependency on Application app
   and x is a Server with MaintenanceContract mc that hosts Application app
      then bp has a Dependency on mc

This gives him a uniform view that links from business processes through to the IT and finance data. Vlad publishes these rules so that other people across the company can reuse them to construct similar views.