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:
- a report on application services and associated servers, databases and networks (from the IT department)
- a maintenance contracts database (from the finance department)
- a registry indicating which business processes use which IT services (from the business planning group)
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.
Embedded comments, Comments might be helpful when integrating diverse sources
- Syn5: slotted arguments are a good fit for RDF/OWL properties
Limited number of dialects the value of RIF in this use case (reusability of the rules across the enterprise) is only realised if there is a good chance that the dialect Vlad uses is supported widely by the tools other users might have access to
RDF data, Sources can be mapped into RDF