<process:SimpleProcess rdf:about="#Task00002"/> <process:SimpleProcess rdf:about="#Task00003"/>
Fig. 4. User Interface of task knowledge modeling environment named TEdit
966
T. Naganuma and S. Kurakake
The left side of the user interface provides a specialization view in which the user can define each task node hierarchically. The viewpoint of specialization can be set by selecting the appropriate view such as WHAT, WHERE and HOW on a context menu shown by clicking on a task node. The selected viewpoint is shown as a special node. The right-upper side of the user interface provides an achievement view in which the user can define the achieved relations between task nodes. The role of achieved relations can also be assigned by selecting appropriate sub-task roles such as PLAN, PREPARE, ACTION, and CONFIRM. The control construct of the set of sub tasks such as Exclusive, Sequence, or IF-then-else, and the context information which indicates applicable condition of the task can also be set in the achievement view.
4 Designing Service Retrieval Framework We designed and implemented the service retrieval framework based on task knowledge that consists of server module and client module. The client module can run on commercial mobile handsets as a Java program specially designed for mobile handsets. We show the system architecture and the user interface in detail below. 4.1 System Architecture and Execution Sequence Fig. 5 shows the system architecture of Service Retrieval Framework (SRF) based on task knowledge. The system is composed of several parts: Task Knowledge Base (Task KB) stores description for task nodes and the relationships between task nodes as Semantic Task Descriptions; Service Knowledge Base (Service KB) stores descriptions about the associations between a service (URI, service name and service explanation) with a proper task node in Task KB as Semantic Service Descriptions; Task Selector (TSE) locates the most appropriate task nodes in TKB according to a user request and context information; Service Selector (SSE) locates appropriate services in Service KB associated with task node IDs; Task Navigator (TNA) provides the user interface to let a user input a request and communicates with TSE to obtain the task nodes matched with the user’s request; Web browser, which displays HTML-based Web content and Context Notifier (CNO) notifies TSE of the context information, such as user’s current location and time. A user sends a problem-solving request to TSE via the user interface presented by TNA. At the same time, CNO sends the user’s context information to TSE. TSE analyzes the user’s request and the context information, selects tasks that match the user’s request and context information by searching the Task KB, and sends the results to TNA. The user selects an appropriate task from a list of the tasks displayed on TNA. This task may be very high level and abstract. TNA sends the task ID of the user selected task to TSE. TSE sends back all sub-tasks related via the achieved relation to the task. Here, some of the sub-tasks may be very detailed and concrete enough to be directly associated with concrete services. The user can brows all subtasks on TNA and selects one or more task nodes to execute and sends the IDs of the task nodes to SSE. SSE searches Service KB and retrieves the service associated with the task nodes that the user selected, and creates a summary HTML page listing the services deemed to be appropriate. The user uses the summary page displayed by the web browser to access the services.
Task Knowledge Based Retrieval for Service Relevant to Mobile User’s Activity
User
Task Navigator (TNA)
Task Selector (TSE)
Context Notifier (CNO) Mobile Device
Task KB Semantic Task Description
Web Browser
967
Service
Service Service Selector (SSE) Service Mediator
Service KB Service Semantic Service Description
Fig. 5. The system architecture of Service Retrieval Framework (SRF). SRF consists of two parts; 1) Service Mediator, which provides the server module running as Servlet, and 2) Mobile Device, which provides the client module running on the mobile handset.
4.2 Implementation Fig. 6 shows the user interface of the prototype system. TNA, which runs on a mobile device, was implemented as a Java application running on a mobile device. TSE and SSE were implemented as Servlet running on an application server. The current implementation does not support context-related features such as a Context Notifier.
Input request as text
Select a desired task
Select concrete tasks
Fig. 6. User interface for the execution of task knowledge based service retrieval. Service selection procedure consists of 3 steps; 1) request input, 2) abstract task selection, 3) concrete task selection.
The user enters a problem-solving request in a text box on TNA (left side of Fig. 6). To respond to the user’s problem-solving request, a task node that can solve that request must be selected from the Task KB and presented to the user. This mechanism considers that the input is from a small portable terminal and assumes that the problem-solving request is expressed as a short text message. For this reason, task node selection actually presents not one but a set of task nodes which are associated with achieved relations. For each word in the user’s problem-solving request that is in the thesaurus, the mechanism creates word set W consisting of that word and its
968
T. Naganuma and S. Kurakake
synonyms and compares that set to the task nodes. For task node T, evaluation value val (T) is determined by the following equation, where p (T, w) is a function that returns a constant value when task T and word w successfully match.
val (T ) =
∑
w∈ W
p (T , w)
(1)
After all the words in the user's problem-solving request are checked against all task nodes in the Task KB, the sets of task nodes are listed in order of the average score of the evaluation value on TNA (center of Fig. 6). The user selects one desired task from the list and then selects more detailed and concrete tasks from the tree of the task nodes related via the achieved relations (right side of Fig. 6). The number of services associated with each task node is displayed on the right side of the task nodes.
5 Evaluations We conducted a user test with 9 adult subjects to confirm the effectiveness of the proposed system. The purpose of this user test was to evaluate the process up to finding services for problem-solving purposes in terms of process functionality. Subjects were asked to retrieve appropriate services to given problem by using the proposed system, a keyword-type full-text search system developed by ourselves, and a major commercial directory-type search system [11]. This test was designed based on ISO/IEC 9126 Part4: Quality In Use Metrics. The evaluation items were 1) Effectiveness: the percentage of users who could reach the services appropriate to the given problem, 2) Productivity: the time taken to reach the services appropriate to the given problem. 5.1 Test Set We designed a test set consisting of 4 different problem based on goal type as follows. 1. Service retrieval from a designated Web site: “You are at Tokyo station: Find a site that shows the location of a Karaoke shop near here. ” 2. Service retrieval for obtaining designated multiple information: “You are at Tokyo station: Find all of the following information, (a) a title of movie that is now being shown, (b)movie ranking of the title, (c) the location of a theater that is showing the movie near here, (d) the starting time of the movie. ” 3. Service retrieval for proper information to perform designated activity: “You are at Tokyo station and have a lot of luggage. Find a proper way to send it to your friend.” 4. Service retrieval for proper information to help user to plan and perform activity in the real world to achieve a designated goal: “You are at Tokyo station at midnight. Find a good way to spend the time until tomorrow morning.” 5.2 Test Environment The test environment consisted of 3 different search systems, 1) S1: keyword-type full-text search system, 2) S2: directory-type search system, 3) S3: task knowledge
Task Knowledge Based Retrieval for Service Relevant to Mobile User’s Activity
969
based service retrieval system (proposed system). The target page set to be searched was the same for each system and the number of the page set was about 15,000. Subjects were divided into 3 groups according to their experience of mobile Internet service. 1) U1: subjects using mobile Internet service everyday, 2) U2: subjects using mobile Internet service a few days a week, 3) U3: subjects who have no experience in using mobile Internet service. 5.3 Test Results Figures 7, 8, 9, and 10 show a test result. The horizontal axis shows the time taken (in seconds) to solve a given problem while the vertical axis shows the number of subjects who solved a given problem at the time. The right end of the horizontal axis, labeled 900, shows the number of subjects who could not solve the given problem.
Fig. 7. Test results of all systems (S1: Keyword-type search system, S2: Directory-type search system, S3: Proposed system). The horizontal axis shows the time taken to solve a given problem by the second and the vertical axis shows the number of subjects who solved the problem.
Fig. 8. Test results of Keyword-type search system (S1) for each user type (U1 use mobile Internet everyday, U2 use mobile Internet a few days a week, and U3 has no experience in using mobile Internet). The horizontal axis shows the time taken (in seconds) to solve a given problem while the vertical axis shows the number of subjects who solved a given problem.
970
T. Naganuma and S. Kurakake
Fig. 9. Test results of Directory-type search system (S2) for each user type (U1 use mobile Internet everyday, U2 use mobile Internet a few days a week, and U3 has no experience in using mobile Internet). The horizontal axis shows the time taken to solve a given problem by the second and the vertical axis shows the number of subjects who solved a given problem.
Fig. 10. Test results of proposed system (S3) for each user type (U1 use mobile Internet service everyday, U2 use mobile Internet service a few days a week, and U3 has no experience in using mobile Internet service). The horizontal axis shows the time taken (in seconds) to solve a given problem while the vertical axis shows the number of subjects who solved a given problem.
The test results show that the proposed system offers superior performance. The rate of users who could reach the appropriate services was about 63%, which was higher than the result of the keyword-type search system (16%) and the result of the directory-type search system (56%). In particular, 50% subjects reached the appropriate services within 300 seconds which is an acceptable value in actual mobile Internet use, which was higher than directory-type search system (33%) and the keyword-type search system (10%). In this test, the number of subjects was not large enough and the test set was not comprehensive, but the test results actually show the effectiveness of our approach in an actual mobile Internet environment. With regard to the test results analyzed by user type, only the proposed system allowed non-expert users grouped as U2 and U1 to achieve the same level of success as experienced users, U1. One observed drawback of the proposed system was that
Task Knowledge Based Retrieval for Service Relevant to Mobile User’s Activity
971
performance of U1 was not enhanced much by our system. We imagine the reason is that users in U1 were accustomed to conventional search systems and did not have enough time to get accustomed to the different search strategy of the proposed system. To resolve the above problem, we will consider the idea of changing the search system automatically according to the user’s response.
6 Related Work Task Computing Environment (TCE) [6] is a DAML-S [5] based service discovery and composition framework for pervasive computing environments. TCE can reduce the cost of performing a task by displaying the tasks that could be performed by executing pervasive services located around the user. However, TCE can not associate a user's task with services on the Internet that are not physically adjacent to the user, and does not support abstract tasks that are not solved directly by using those services, because the support range of TCE is limited to just those tasks that are solved directly by pervasive services. The process-based service retrieval approach [17] is a sophisticated service retrieval method that offers better precision and recall than the conventional service retrieval method. In this research, service models are indexed into a process ontology, such as MIT Process Handbook [14], and the process query language called PQL is introduced. A preliminary evaluation showed that the process-based service retrieval approach offers qualitatively higher retrieval precision than any other existing approach. Other research has considered the use of a knowledge base to infer what the user really wants to do. The GOOSE system [7], for example, employs a large amount of knowledge (common sense knowledge) collected from general Internet users to infer the user’s search goal and to present search results that achieve that goal. This system, though, requires relatively long text input because it applies natural language processing technology to infer the search goal. It would not be easy to apply such a system to an environment where text input is cumbersome as is the case with mobile terminals.
7 Conclusion and Future Work This paper proposed a task knowledge based service retrieval framework for nonexpert mobile users that makes it easy to retrieve services appropriate for tackling the user’s problem in the real world. The system features a task knowledge base that contains knowledge about which services will solve the problems that a user faces in daily life. Details of the prototype system including knowledge modeling framework were described. While the prototype system has only limited coverage, the results of a user test confirmed that it lowers the difficulty of service access. In addition, the system allows the user to recognize ancillary tasks that were not initially thought of by the user since the system shows tasks related to the task of solving the problem directly extracted from the user’s initial request. The next step in our research is to consider and develop a task-ontology-based knowledge modelling environment. Task ontology provides a common vocabulary
972
T. Naganuma and S. Kurakake
and common viewpoint for describing task knowledge, and enables knowledge authors to create reusable knowledge models. Furthermore, we will extend the scope of the knowledge to be able to describe relationships between obstructive events, such as “missing route” or “no vacant spaces”, and the task for preventing and resolving those obstructive events. We also plan on improving the user interface on the mobile handset. The current prototype system provides just one text box interface to input the user’s request. This interface is simple but some users are not certain about what kinds of request can be interpreted. Actually, some users input long sentences into the text box such as “find restaurant now available” or “find hotel near Tokyo station” in our test, but the current prototype system can not interpret conditions that contain time or location information. We will consider more functionality to help the user input his request with minimal load.
Acknowledgement We would like to acknowledge Prof. Riichiro Mizoguchi, Prof. Yoshinobu Kitamura, and Dr. Munehiko Sasajima at Osaka University for their useful discussions and comments on this work.
References 1. NTT DoCoMo web site.: http://www.nttdocomo.com/ 2. Ministry of Public Management, Home Affairs, Posts and Telecommunications, Japan.: Information and communications in Japan, Chapter2, Section5. (2004) 3. Hiramatsu, K., Akahani, J., Satoh, T.: Querying Real World Services Through the Semantic Web. In: Proceedings of The Third International Semantic Web Conference (ISWC 2004) (2004) 741-751 4. Naganuma, T., Kurakake, S.: A task oriented approach to service retrieval in mobile computing environment. In: Proceedings of IASTED International Conference on Artificial Intelligence and Applications (AIA 2005) (2005) 5. The DAML Services Coalition (Anupriya Ankolenkar, et al).: DAML-S: Web Service Description for the Semantic Web. In: Proceedings of The First International Semantic Web Conf. (ISWC), Sardinia, Italy (2002) 348-363 6. Masuoka, R., Parsia, B., Labrou, Y.: Task Computing - the Semantic Web meets Pervasive Computing -. In: Proceedings of The Third International Semantic Web Conference (ISWC 2003) (2003) 865-881. 7. Hugo Liu, Henry Lieberman, and Ted Selker.: GOOSE: A Goal-Oriented Search Engine With Commonsense. In: Proceedings of Adaptive Hypermedia and Adaptive Web-Based Systems Second International Conf., Malaga, Spain (2002) 253-263. 8. Bandula, A.: Self–regulation of motivation and action through internal standards and goal systems, Goal Concepts in Personality and Social Psychology (Hillsdale, NJ: A.P.Lawrence). (1989) 19-85. 9. Web Ontology Language (OWL).: http://www.w3.org/2004/OWL/ 10. OWL-S 1.0 Release.: http://www.daml.org/services/owl-s/1.0/ 11. Yahoo Mobile web site.: http://mobile.yahoo.co.jp/index.html 12. Kitamura, Y., Kashiwase, M., Fuse, M. Mizoguchi, R.: Deployment of an ontological framework of functional design knowledge. Advanced Engineering Informatics, 18(2), (2004) 115-127
Task Knowledge Based Retrieval for Service Relevant to Mobile User’s Activity
973
13. Horváth I, Vergeest JSM, Kuczogi G. Development and Application of Design Concept Ontologies for Contextual Conceptualization. In: Proceedings of 1998 ASME Design Engineering Technical Conferences DETC (1998) 14. Herman, G. A., Malone, T. W.: What is in the process handbook?, Organizing Business Knowledge: The MIT Process Handbook, MIT Press (2003) 221-258 15. Mizoguchi, R., Ikeda, M., Seta, K., and Vanwelkenhuysen, J.: Ontology for Modeling the World from Problem Solving Perspectives, in IJCAI Workshop on Basic Ontological Issues in Knowledge Sharing (1995) 16. Schreiber, G., Akkermans, H., Anjewierden, A., de Hoog, R., Shadbolt, N., Van de Velde, W. and Wielinga, B.: Knowledge Engineering and Management - The Common-KADS Methodology, The MIT Press, Cambridge, MA (2000) 17. Bernstein, A., Klein, M. Towards High-Precision Service Retrieval, In: Proceedings of The First International Semantic Web Conf. (ISWC), Sardinia, Italy (2002)
Supporting Rule System Interoperability on the Semantic Web with SWRL Martin O’Connor1, Holger Knublauch1, Samson Tu1, Benjamin Grosof2, Mike Dean3, William Grosso4, and Mark Musen1 1
Stanford Medical Informatics, Stanford University School of Medicine, Stanford, CA 94305 [email protected] 2 Sloan School of Management, MIT, Cambridge, MA 02142 [email protected] 3 BBN Technologies, Ann Arbor, MI 48103 [email protected] 4 Echopass Corp., San Francisco, CA 95105 [email protected]
Abstract. Rule languages and rule systems are widely used in business applications including computer-aided training, diagnostic fact finding, compliance monitoring, and process control. However, there is little interoperability between current rule-based systems. Interoperation is one of the main goals of the Semantic Web, and developing a language for sharing rules is often seen as a key step in reaching this goal. The Semantic Web Rule Language (SWRL) is an important first step in defining such a rule language. This paper describes the development of a configurable interoperation environment for SWRL built in Protégé-OWL, the most widely-used OWL development platform. This environment supports both a highly-interactive, full-featured editor for SWRL and a plugin mechanism for integrating third party rule engines. We have integrated the popular Jess rule engine into this environment, thus providing one of the first steps on the path to rule integration on the Web.
1 Introduction Many business processes, such as workflow management, computer aided training, compliance monitoring, diagnostic fact finding, and process control, are often best modeled using a declarative approach, leading to a very active commercial interest in rule-based systems. However, interoperability among the multitude of current rulebased systems is limited. Given that interoperability is one of the primary goals of the Semantic Web and that rules are a key part of those goals, there has been significant recent interest in standardization.1 The goal of sharing rule bases and processing them with different rule engines has resulted in RuleML, SWRL, Metalog, and ISO Prolog, and other standardization efforts. One of the key steps to rule interoperation on the Web is SWRL2 which was designed to be the rule language of the Semantic Web. SWRL is based on a combination of the Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 974 – 986, 2005. © Springer-Verlag Berlin Heidelberg 2005
Supporting Rule System Interoperability on the Semantic Web with SWRL
975
OWL DL and OWL Lite sublanguages of the OWL Web Ontology Language3 the Unary/Binary Datalog4 sublanguages of the Rule Markup Language. SWRL allows users to write Horn-like rules expressed in terms of OWL concepts to reason about OWL individuals. The rules can be used to infer new knowledge from existing OWL knowledge bases. The SWRL Specification5 does not impose restrictions on how reasoning should be performed with SWRL rules. Thus, investigators are free to use a variety of rule engines to reason with the SWRL rules stored in an OWL knowledge base. They are also free to implement their own editing facilities to create SWRL rules. In this way, SWRL provides a convenient starting point for integrating rule systems to work with the Semantic Web. To this end, we have developed the Protégé SWRL Editor, a full-featured highly interactive open-source rule editor for SWRL. This editor operates within ProtégéOWL6 and is tightly integrated with it. It adopts the look-and-feel of Protégé-OWL and allows users to seamlessly switch between SWRL rule editing and normal OWL editing of OWL entities. Users can also easily incorporate OWL entities into rules they are authoring. One of the main goals of the SWRL Editor is to permit interoperability between SWRL and existing rule engines. An important component of this interoperability is the editor’s mechanism for supporting tight integration with rule engines. This mechanism is supported by a subsystem called the Protégé SWRL Factory. The SWRL Factory supports a rule engine plugin mechanism that permits API-level interoperation with existing rule engines. It also allows developers to access real estate on the SWRL Editor tab, which allows the interface for the rule engine to coexist with the SWRL Editor. Developers integrating an existing rule engine with the SWRL Editor have full control of the area inside the panel. Of course, a looser form of interoperation can also occur at the OWL knowledge base level. Investigators are free to use the SWRL rules created by the editor and stored in OWL files as input to their rule engines. Researchers in the 7 SweetRules project, for example, have already used rules created by the SWRL Editor 8 to perform inference using a Jena 2-based rule engine. We used the SWRL Factory mechanism to integrate the Jess rule engine with the SWRL Editor. With Jess, users can run SWRL rules interactively to create new OWL concepts and then insert them into an OWL knowledge base. SWRL, coupled with Jess, can provide a rich rule-based reasoning facility for the Semantic Web and can serve as a starting point for further rule integration efforts.
2 Semantic Web Rule Language In common with many other rule languages, SWRL rules are written as antecedentconsequent pairs. In SWRL terminology, the antecedent is referred to as the rule body and the consequent is referred to as the head. The head and body consist of a conjunction of one or more atoms. At present, SWRL does not support more complex logical combinations of atoms. SWRL rules reason about OWL individuals, primarily in terms of OWL classes and properties. For example, a SWRL rule expressing that a person with a male sibling has a brother would require capturing the concepts of ‘person’, ‘male’,
976
M. O’Connor et al.
‘sibling’ and ‘brother’ in OWL. Intuitively, the concept of person and male can be captured using an OWL class called Person with a subclass Man; the sibling and brother relationships can be expressed using OWL properties hasSibling and hasBrother, which are attached to Person. The rule in SWRL would then be: Person (?x1) ^ hasSibling(?x1,?x2) ^ Man(?x2) → hasBrother(?x1,?x2) Executing this rule would have the effect of setting the hasBrother property to x2 in the individual that satisfies the rule, named x1. SWRL rules can also refer explicitly to OWL individuals. For example, the following example is a variant of the above rule, inferring that a particular individual Fred has a brother: Person(Fred) ^ hasSibling(Fred,?x2) ^ Man(?x2) → hasBrother(Fred,?x2) In this case Fred is the name of an OWL individual. SWRL also supports data literals. For example, assuming an individual has a hasAge property, it is possible to ask if Fred has a 40 year-old brother: Person(Fred) ^ hasSibling(Fred,?x2) ^ Man(?x2) ^ hasAge(?x2,40) → has40YearOldBrother(Fred,?x2) String literals — which are enclosed in single quotes — are also supported. SWRL also supports the common same-as and different-from concepts. For example, the SWRL sameAs atom can determine if two OWL individuals Fred and Frederick are the same individual: sameAs(Fred, Frederick) Similarly, the differentFrom atom can be used to express that two OWL individuals are not the same. SWRL also has an atom to determine if an individual, property, or variable is of a particular type. For example, the following example determines if variable x is of type unsigned integer: xsd:unsignedInt(?x) These atoms — which are called data range atoms in SWRL — must be preceded by the ‘xsd:’ namespace qualifier. The type specified must be an XML Schema data type. A second form of a data range atom can be used to express one-of relationships in SWRL. For example, the following SWRL atom indicates that variable x must be one of 3, 4 or 5: [3, 4, 5](?x) SWRL also supports a range of built-in predicates, which greatly expand its expressive power. SWRL built-ins are predicates that accept several arguments. They 9 are described in detail in the SWRL Built-in Specification . The simplest built-ins are comparison operations. For example, the greaterThan built-in determines if an individual has an older brother. hasBrother(?x1,?x2) ^ hasAge(?x1,?age1) ^ hasAge(?x2,?age2) ^ swrlb:greaterThan(?age2,?age1) → hasOlderBrother(?x1,?x2)
Supporting Rule System Interoperability on the Semantic Web with SWRL
977
All built-ins in SWRL must be preceded by the namespace qualifier ‘swrlb:’. Finally, SWRL supports more complex mathematical built-ins. For example, the following rule determines if an individual has a brother who is exactly 10 years older: hasBrother(?x1,?x2) ^ hasAge(?x1,?age1) ^ hasAge(?x2,?age2) ^ swrlb:subtract(10,?age2,?age1) → hasDecadeOlderBrother(?x1,?x2) 10
The SWRL Built-in Ontology describes the range of built-ins supported by SWRL. In addition to mathematical built-ins, there are built-ins for strings, dates, and lists. Additions may be made to this namespace in the future so the range of built-ins supported by SWRL can grow.
3 The Protégé SWRL Editor The Protégé SWRL Editor is an extension to Protégé-OWL that permits interactive editing of SWRL rules. Users can create, edit, and read/write SWRL rules. With the exception of arbitrary OWL expressions (see Section 6), the SWRL Editor supports the full set of language features outlined in the current SWRL Specification. It is tightly integrated with Protégé-OWL and is primarily accessible through a tab within it. When editing rules, users can directly refer to OWL classes, properties, and individuals within an OWL knowledge base. They also have direct access to the full
Fig. 1. The Protégé SWRL Rules tab in Protégé-OWL. The SWRL Rules tab provides a tabular listing of all SWRL rules in an OWL knowledge base. These rules can be edited in place or with a multi-line interactive editor, which can be popped up.
978
M. O’Connor et al.
set of built-ins described in the SWRL Built-in Ontology and to the full range of XML Schema data types. Figure 1 shows a screenshot of the Protégé SWRL Rules 11 tab. The SWRL Editor also supports inference with SWRL rules using the Jess rule engine (see Section 5). Documentation for the editor is available in the Protégé 12 SWRL Editor FAQ . The SWRL Editor is automatically enabled in Protégé-OWL when loading any OWL knowledge base that imports the SWRL Ontology13. It is disabled by default if a loaded knowledge base does not import this ontology. A user can use ProtégéOWL’s configuration menu to enable this tab for a knowledge base that does not import the SWRL Ontology; he will then be given an option to import this ontology so that all future loads of the knowledge base will activate the SWRL Editor.
Fig. 2. Protégé-OWL Properties tab showing all SWRL rules that refer to the hasParent property. In common with the SWRL Editor tab, displayed rules can be edited in place or with a multi-line interactive editor.
There are two ways of interacting with the SWRL Editor in Protégé-OWL: 1.
The primary mechanism is through the SWRL Rules tab (see Figure 1). This tab shows all the SWRL rules in a loaded OWL knowledge base in tabular form.
Supporting Rule System Interoperability on the Semantic Web with SWRL
2.
979
A second mechanism allows users to find rules relating to a selected OWL class, property, or individual in the respective Protégé-OWL tabs for those entities. For example, if a user is examining a class using the OWL Classes tab, he can display a list of SWRL rules referring to that class. The same mechanism applies in the properties and individuals tabs. Figure 2 shows a Protégé-OWL Properties tab displaying all SWRL rules that refer to a selected property, hasParent.
Fig. 3. SWRL Multi-Line Editor Dialog. The icon panel provides selection dialog boxes to select things including OWL classes, properties, and individuals. It also includes shortcuts and selection dialog boxes for various other entities.
There are two editing modes for rules. Users can edit them in place in the table containing them, or they can pop up a multi-line editor (see Figure 3). The difference between the two modes is primarily visual. The same interaction mechanisms apply in both modes, though the multi-line editor has some additional options. The SWRL Editor allows users to enter rules completely as text. However, it also allows users to select OWL entities from a currently loaded knowledge base and insert them into the rule being edited. This task is performed via an icon panel. The icon panel provides access to selection dialog boxes, select OWL classes, properties, and individuals. It also includes selection dialog boxes for SWRL built-ins, XML Schema data types, and shortcuts for various other entities. The SWRL Editor performs syntactic and semantic checking as a rule is being entered. It ensures that each rule is syntactically correct and also ensures that any references to OWL entities are valid. It will also ensure that any variables referred to in a rule consequent are present in the head. If a user makes a mistake while entering a rule, the rule text entry box grays out and a textual explanation of the error is
980
M. O’Connor et al.
presented. A user can continue typing and immediately fix the error or fix it later. The editor does not allow users to save incomplete or erroneous rules. The editor also has convenience features such as auto-completion. Pressing the tab key while editing an OWL entity, built-in, or XML Schema data type name autocompletes a name if it has a unique expansion. If the name is not unique, the software brings up a selection box containing a list of possible completions.
4 The SWRL Editor and Interoperability SWRL rules are stored as OWL individuals with their associated knowledge base when an open OWL project is saved. The classes that describe these individuals are described by the SWRL Ontology. The highest level class in this Ontology is swrl:Imp, which is used to represent a single SWRL rule. It contains an antecedent part, which is referred to as the body, and a consequent part, which is referred to as the head. Both the body and head are instances of the swrl:AtomList class, which represents a list containing rule atoms. The abstract swrl:Atom class is used to represent a rule atom. The various types of atoms described in the SWRL Specification are described by subclasses of this class. The SWRL Ontology also includes a class called swrl:Builtin to describe built-ins and a class called swrl:Variable that can be used to represent variables. The SWRL Editor comes packaged with a Java API called the Protégé SWRL Factory, which allows developers to directly manipulate SWRL rules in an OWL knowledge base. The SWRL Factory provides a mapping from the OWL individuals representing SWRL rules to analogous Java instances. It also provides Java classes representing SWRL classes in the SWRL Ontology and mechanisms to create run-time instances of classes that mirror individuals in an OWL knowledge base. It is used internally by the SWRL Editor. However, it is accessible to all Protégé-OWL developers. SWRL Plugin developers can base their work directly on the classes created by this factory and can, for example, use it to integrate existing rule engines with Protégé-OWL. Indeed, this API could also be used to create new SWRL rule editors. Each class described in the SWRL Ontology has a direct Java equivalent SWRL Factory class to represent it. The factory has utility functions to create Java instances of all these classes. When one Java instance is created, an equivalent OWL individual is also created in the knowledge base. Java instances mirroring existing OWL individuals can also be created. For example, the factory provides methods to create SWRLImp and SWRLAtomList Java classes that can be used to represent instances of the equivalent swrl:imp and swrl:AtomList OWL classes. Documentation 14 of the SWRL Factory API is outlined in the Protégé SWRL Factory FAQ . The SWRL Editor itself has no inference capabilities. It simply allows users to edit SWRL rules and save and load them to and from OWL knowledge bases. However, the SWRL Factory supports a rule engine plugin mechanism that permits API-level interoperation with existing rule engines. It also allows developers to access real estate on the SWRL Editor tab, which allows the interface for the rule engine to coexist with the SWRL Editor. Developers integrating an existing rule engine with the SWRL Editor have full control of the area inside the panel. The SWRL Factory provides this functionality in a class called SWRLRuleEngineAdapter. The primary call provided by this class is
Supporting Rule System Interoperability on the Semantic Web with SWRL
981
getSWRLTabRealEstate, which returns a Java JPanel Swing object representing an area of the screen in the SWRL tab. This class also provides a method called setRuleEngineIcon that allows users to access the rule engine interactively. This icon is displayed on the top right of the rule table in the SWRL tab and can be used to toggle the screen real estate of the associated rule engine. If several rule engines are available, multiple icons are displayed. However, only one rule engine can be active at a time. The SWRL Factory also provides a listening mechanism that allows users to register for rule creation, modification, and deletion events. Thus, when a SWRL rule is modified, a loaded rule engine can maintain an up-to-date image of the SWRL rule base automatically. Rule engine developers also have access to the Protégé event mechanism so that they can be immediately informed of modifications to a loaded OWL knowledge base. Thus, users can configure a rule engine so that it is synchronized with the SWRL rule base and the OWL knowledge base, and so that it performs immediate inference when changes are made to them. This approach has 15 16 been used successfully in the Protégé environment for both the Jess and Algernon rule engines. These characteristics allow the SWRL factory to provide a bridge for third-party rule engines to interact with the SWRL Editor at run time, allowing users of these engines to experience seamless interaction between the SWRL Editor and the rule engine. Of course, developers of rule engines may prefer a less dynamic relationship between the knowledge base and the rule engine. For example, instead of continually updating rule engine state in response to modifications to the associated SWRL rules or the loaded OWL knowledge base, a more user-controlled interaction may be desired. In this regard, users can choose step-by-step control of the inference process. Thus, a user can incrementally control loading of SWRL rules and OWL knowledge into a rule engine, execution of those rules on the knowledge, the review of the results, and storing concluded results back into the OWL knowledge base. This approach may be preferable during early development and testing of a set of rules when the consequences of rules firing may not be obvious. Erroneous rules could easily create hundreds or more incorrect relationships between OWL entities.
5 Integrating the SWRL Editor and the Jess Rule Engine 17
A large number of rule engines work well with Java , and many are available as open 18 source software. Some of the most popular engines include Jess, Algernon and SweetRules. We chose Jess as the first integration candidate for the SWRL Editor because it works seamlessly with Java, has an extensive user base, is well documented, and is very easy to use and configure. Several research teams have also 19,20,21 and between RuleML and demonstrated that mappings between SWRL and Jess 22 Jess are possible. Jess provides both an interactive command line interface and a Java-based API to its rule engine. This engine can be embedded in Java applications and provides a flexible two-way run-time communication between Jess rules and Java. It is not open source but can be downloaded free for a 30-day evaluation period and is available free to academic users. The Jess system consists of a rule base, a fact base, and an execution engine. The execution engine matches facts in the fact base with rules in the rule base. These rules can assert new facts and put them in the fact base or execute Java functions.
982
M. O’Connor et al.
SWRL rules reason about OWL individuals, primarily in terms of OWL classes and properties. When a SWRL rule is fired, it can create new classifications for existing individuals. For example, if a rule consequent asserts that an individual is to be classified as a member of a particular class, that individual must be made a member of that class within OWL when the rule fires. Similarly, if a SWRL rule asserts that two individuals are related via a particular property, then that property must be associated with each individual that satisfies the rule. Thus, four main tasks must be performed to allow Jess to interoperate with the SWRL Editor: (1) represent relevant knowledge about OWL individuals as Jess facts; (2) represent SWRL rules as Jess rules; (3) perform inference using those rules and reflect the results of that inference in an OWL knowledge base; and (4) control this interaction from a graphical interface. 5.1 Representing OWL Concepts as Jess Knowledge Relevant knowledge about OWL individuals must be represented as Jess knowledge. The two primary properties that must be represented are 1) the classes to which an individual belongs and 2) the properties the individual possesses. Same-as and different-from information about these individuals must also be captured. The Jess template facility provides a mechanism for representing an OWL class hierarchy. A Jess template hierarchy can be used to model an OWL class hierarchy using a Jess slot to hold the name of the individual belonging to the hierarchy. Thus, for example, a user must define a Jess template to represent the owl:Thing class: (deftemplate OWLThing (slot name)) A hierarchy representing a class Man that subclasses a direct subclass of owl:Thing called Person could then be represented as follows in Jess: (deftemplate Person extends OWLThing)
1
(deftemplate Man extends Person) Using this template definition, the OWL individual can be asserted as a member of the class Man: (assert (Man (name Fred))) OWL property information can be directly represented as Jess facts. For example, the information that an individual Fred is related to individual Joe through the hasUncle property can be directly asserted using: (assert (hasUncle Fred Joe)) Similarly, OWL’s same-as and different-from relationships between individuals can be directly represented in Jess. For example, the information that Fred and Frederick are the same OWL individual can be expressed: (assert (sameAs Fred Frederick))
1
In practice, a fully qualified namespace would precede each entity name, but we have omitted it here for clarity.
Supporting Rule System Interoperability on the Semantic Web with SWRL
983
XML Schema data types can be represented using the same approach. For example, the information that individual x is an unsigned integer can be written: (assert (xsd:unsignedInt ?x)) Finally, built-ins can be represented using the Jess ‘test’ mechanism. For example, the SWRL built-in greaterThan applied to two integers can be written: (test (> 10 34)) 5.2 Representing SWRL Rules as Jess Rules The representation of SWRL rules in Jess using these facts is relatively straightforward. For example, take the following SWRL rule: Person(?x) ^ Man(?y) ^ hasSibling(?x,?y) ^ hasAge(?x,?age1) ^ hasAge(?y,?age2) ^ swrlb:greaterThan(?age2,?age1) -> hasOlderBrother(?x,?y) This rule can be represented in Jess — using the representation of individuals outlined above — as: (defrule aRule (Person (name ?x))(Man (name ?y)) (hasSibling ?x ?y)(hasAge ?x ?age1) (hasAge ?y ?age2)(test (> ?age2 ?age1)) => (assert (hasOlderBrother ?x ?y)) 5.3 Executing Jess Rules and Updating an OWL Knowledge Base Once the relevant OWL concepts and SWRL rules have been represented in Jess, the Jess execution engine can perform inference. As rules fire, new Jess facts are inserted into the fact base. Those facts are then used in further inference. When the inference process completes, these facts can then be transformed into OWL knowledge, a process that is the inverse of the mapping mechanism outlined in Section 5.1. 5.4 Visual Interface to the Jess Rule Engine Interaction between the SWRL Editor and the Jess rule engine is user-driven. The user controls when OWL knowledge and SWRL rules are transferred to Jess, when inference is performed using those knowledge and rules, and when the resulting Jess facts are transferred back to Protégé-OWL as OWL knowledge. Five tabs in the Jess rule panel control this interaction: (1) a Jess Control tab, which is used to initiate fact and rule transfer and perform inference; (2) a Source Facts tab, which presents Jess facts that have been transferred from an OWL knowledge base (see Figure 4); (3) a Rules tab, which shows the Jess representation of SWRL rules (see Figure 5), (4) an Asserted Facts tab showing facts resulting from Jess inference, and (5) a Configuration tab that can be used to set Jess operating parameters.
984
M. O’Connor et al.
Fig. 4. Jess Loaded Facts Tab in the Protégé SWRL Editor. This tab shows the Jess representation of relevant OWL individuals that will be used by Jess to perform inference.
Fig. 5. Jess Rules Tab in the Protégé SWRL Editor. This tab shows the Jess representation of SWRL rules.
Supporting Rule System Interoperability on the Semantic Web with SWRL
985
6 Discussion With the exception of allowing arbitrary OWL expressions in SWRL rules, the Protégé SWRL Editor supports all language features in the current SWRL Specification. The inability to use arbitrary OWL expressions is easy to work around by creating a named OWL class that models an expression and using it in the rule. One limitation of our inference support is that it is not integrated with an OWL classifier. Conflicts can arise in an OWL knowledge base between new information asserted by Jess and inserted into an OWL knowledge base and existing OWL restrictions. For example, a hasUncle property may be asserted for an individual as a result of firing a SWRL rule, but a class level restriction in OWL may forbid this property from belonging to that individual. As present, these conflicts are not detected automatically, and resolving the conflict—which is essentially between a SWRL rule and an OWL restriction and has nothing to do with Jess—is left to the user. Conflicts can be identified by running an OWL classifier on the knowledge base that has been populated by additional Jess-inferred knowledge. To resolve these conflicts automatically, all OWL restrictions relating to classes and properties operated on by Jess would have to be captured as Jess knowledge. Jess rules would be needed to replicate the functionality of both a classifier and rule integrity checker. An additional issue is that a conflict-free execution of the classifier may also infer new knowledge that may in turn produce information that may benefit from further SWRL inference, a process that may require several iterations before no new knowledge is generated. Clearly, having this classification and inference functionality in a single module would be desirable. The SWRL Editor has been available as part of Protégé-OWL since late 2004. User response has been very positive. Our hope now is that other investigators will use the Protégé SWRL Factory mechanism to integrate other rule engines with the SWRL Editor, eventually providing a range of rule engine choices. Jess, for example, has a very good implementation of a forward chaining rule engine but has weak backward chaining support. Consequently, a rule engine like Algernon may be more appropriate for users needing this support. Developers working within the Jena 2 environment would probably prefer the inference capabilities available in that environment. As more rule engines become available for SWRL, it should rapidly become a conduit for rule integration on the Semantic Web.
Acknowledgements Funding for the Protégé SWRL Editor was provided by the DARPA Agent Markup Language Program. We thank Valerie Natale for her valuable editorial assistance.
References 1. W3C Workshop for Rule Languages for Interoperability: http://www.w3.org/2004/12/ rules-ws/cfp 2. SWRL: http://www.daml.org/rules/proposal/ 3. OWL Web Ontology Language: http://www.w3.org/TR/owl-features/
986
M. O’Connor et al.
4. RuleML: http://www.ruleml.org/ 5. SWRL Specification: http://www.w3.org/Submission/SWRL/ 6. H. Knublauch, R. W. Fergerson, N. F. Noy, M. A. Musen. The Protégé OWL Plugin: An Open Development Environment for Semantic Web Applications. Third International Semantic Web Conference (2004) 7. SweetRules: http://sweetrules.projects.semwebcentral.org/ 8. Jena-2: http://www.hpl.hp.com/semweb/jena.htm 9. SWRL Built-in Specification: http://www.daml.org/rules/proposal/builtins.html 10. SWRL Built-in Ontology: http://www.w3.org/2003/11/swrlb.owl 11. Jess Rule Engine: http://herzberg.ca.sandia.gov/jess/ 12. Protégé SWRL Editor FAQ: http://protege.stanford.edu/plugins/owl/swrl/ 13. SWRL Ontology: http://www.daml.org/rules/proposal/swrl.owl 14. Protégé SWRL Factory FAQ: http://protege.stanford.edu/plugins/owl/swrl/SWRLFactory.html 15. Jess Protégé Tab: http://www.ida.liu.se/~her/JessTab/JessTab.ppt 16. Algernon Protégé Tab: http://algernon-j.sourceforge.net/doc/algernon-protege.html 17. Java-based Rule Engines: http://www.manageability.org/blog/stuff/rule_engines/view 18. Algernon: http://www.cs.utexas.edu/users/qr/algy/ 19. Kuan M. Using SWRL and OWL DL to Develop an Inference System for Course Scheduling. Masters Thesis, Chung Yuan Christian University, Taiwan, R.O.C. (2004) 20. Mei J., Bontas EP. Reasoning Paradigms for SWRL-Enabled Ontologies Protégé With Rules Workshop held at the 8th International Protégé Conference, Madrid Spain (2005) 21. Golbreich, C., Imai, A. Combining SWRL rules and OWL ontologies with Protégé OWL Plugin, Jess, and Racer. 7th International Protégé Conference, Bethesda, MD (2004) 22. Grosof B., Gandhe, M., Finin, T. SweetJess: Translating DamlRuleML to Jess. International Workshop on Rule Markup Languages for Business Rules on the Semantic Web. First International Semantic Web Conference (2002)
Automated Business-to-Business Integration of a Logistics Supply Chain Using Semantic Web Services Technology Chris Preist1, Javier Esplugas-Cuadrado2, Steven A. Battle1, Stephan Grimm3, and Stuart K.Williams1 1
Hewlett-Packard Laboratories, Filton Road, Stoke Gifford, Bristol, BS34 8QZ, UK {chris.preist, steve.battle, skw}@hp.com 2 Hewlett-Packard Espanola SL, Jose Echegaray no8, La Rozas, Spain. 28230 [email protected] 3 Forschungszentrum Informatik(FZI), Haid-und-Neu-Strasse 10-14, 76131 Karlsruhe, Germany [email protected]
Abstract. In this paper, we present a demonstrator system which applies semantic web services technology to business-to-business integration, focussing specifically on a logistics supply chain. The system is able to handle all stages of the service lifecycle – discovery, service selection and service execution. One unique feature of the system is its approach to protocol mediation, allowing a service requestor to dynamically modify the way it communicates with aprovider, based on a description of the provider’s protocol. We present the architecture of the system, together with an overview of the key components (discovery and mediation) and the implementation.
1 Introduction The demonstrator system presented in this paper uses semantic web services technology to tackle the problem of business-to-business integration (B2Bi). It was developed as one of four case studies used in the European Union Semantic Web-enabled Web Services (SWWS) project. Increasingly, when two companies wish to do business with each other, they establish a means of exchanging messages via the internet. This connection can be used for a variety of purposes – placing orders, invoicing, making payments, initiating and tracking shipment of goods and providing customer service information, among many others. The aim of such a connection is to allow automated or semi-automated processing of many of the transactions which take place between the two companies, and thus reduce costs and increase speed. However, to set up such a relationship requires a large initial investment of time and money. A team of developers need to reconcile the business processes of the two organizations and design a set of messages and permissible message sequences that can flow between them. This can be a formidable task. To ease this, standards bodies have developed standard sets of messages and guidelines for how they should be used. Three key standards in the world of B2Bi are EDIFACT, AnsiX12 and RosetY. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 987 – 1001, 2005. © Springer-Verlag Berlin Heidelberg 2005
988
C. Preist et al.
taNet. By agreeing on one such standard, two organizations can ease the integration task. However, these standards have reasonable flexibility in them, both in terms of message content and message sequencing. This means that even having agreed a standard, significant effort is required to agree and implement exactly how it is used. As a result of this, even a standards-based B2Bi connection can take six months to set up. Semantic Web Services technology [1, 2] uses the tools of the semantic web to describe both the purpose of a service and the behaviour of its provider during service execution. This has the potential to significantly speed up this integration process; If one business partner gives a description of how to interact with it, it is possible to use mediation technology [3] to adapt the interaction of the other business partner so as to be compatible. Ideally, this would be fully automated, reducing integration time from months to minutes. Prior to integration, the selection of a business partner can also be time consuming. By providing semantic descriptions of the services a business offers, then discovery techniques [4, 5, 6] can support this process. This is particularly important when selection is needed rapidly, such as the emergency replacement of a link in a supply chain. Our system supports automated discovery and selection of a service provider, and description-driven mediation which allows automated integration. The paper is structured as follows. In section 2, we introduce a motivating example, in the domain of logistics, and show how semantic web technology can be used to support it. In section 3, we present the architecture of the system we have developed, and show how it is used in the logistics domain. In section 4, we present the discovery module, and in section 5 we present the mediation modules. In section 6, we discuss the implementation. In section 7 we discuss limitations of the current implementation, lessons learned and related work. We then present the business value of the system, and conclude.
2 The Logistics Example To motivate this work, we use an example scenario. We consider a manufacturing company in Bristol, UK which needs to distribute its goods internationally. It does not maintain its own transportation capability, but instead outsources this to other companies, which we refer to as Freight Forwarders. These companies provide a service to the manufacturing company – they transport crates on its behalf. However, the manufacturing company still needs to manage relationships with these service providers. One role within this company, which we refer to as the Logistics Coordinator, is responsible for doing this. Specifically, it carries out the following tasks; 1. Commissioning new service providers, and agreeing the nature of the service they will provide. (E.g. locating a new freight forwarder in Poland, and agreeing that it will regularly transport crates from Gdansk to Warsaw.) 2. Communicating with service providers to initiate, monitor and control shipments. (E.g. informing the Polish freight forwarder that a crate is about to arrive at Gdansk; receiving a message from them that it has been delivered in Warsaw, and they want payment.) This is done using one of the messaging standards, EDIFACT.
Automated Business-to-Business Integration of a Logistics Supply Chain
989
3. Coordinating the activity of service providers to ensure that they link seamlessly to provide an end-to-end service. (E.g. making sure the shipping company plans to deliver the crate to Gdansk when the Polish transport company is expecting it. Informing the Polish company when the shipping company is about to drop it off.) 4. Communicating with other roles in the company to coordinate logistics with other corporate functions. (E.g. sales to know what to dispatch; financial to ensure payment of freight forwarders.) In our scenario, we consider a specific logistics supply chain from Bristol, UK to Warsaw, Poland (Fig 1). It consists of three freight forwarders: The first is a trucking company, responsible for transporting crates from the manufacturing plant in Bristol to the port of Portsmouth, UK. The second is a shipping company, responsible for shipping crates from Portsmouth to the Polish port of Gdansk. The third is another trucking company, which transports crates to the distribution warehouse in Warsaw. We assume that the Logistics Provider communicates with the Freight Forwarders using the EDIFACT standard, and is already successfully using this logistics chain.
Supplier
Freight Forwarder 1
UK
Freight Forwarder 2
Freight Forwarder 3
NORTH SEA
Customer Unit
POLAND
Fig. 1. Example Logistics Supply Chain
However, at some point a problem arises; the shipping company is temporarily unavailable and a new freight forwarder must be used for one shipment. At this point the Logistics Coordinator must; 1. Locate a new shipping service provider able to meet its needs. 2. Agree a service definition with it as to what exactly it should do. (When the crate will be transported, to where, how much it will cost, etc.) 3. Perform B2B integration with the provider, to ensure messages can flow between them. We assume the new provider communicates using RosettaNet. 4. Initiate and monitor the shipment via the logistics supply chain. 5. Coordinate the three freight forwarders to ensure a seamless end-to-end service, resulting in the crate being shipped from Bristol to Warsaw. Semantic Web Services technology can be deployed throughout this lifecycle to automate or semi-automate what currently takes significant time and effort. 1. Service Discovery can be used to locate potential service providers, based on them advertising descriptions of their service capabilities.
990
C. Preist et al.
2. Service Definition allows the refining of a service description to specify exactly what the provider and requestor agree the service should do. 3. Message and Protocol Mediation allow a new provider to be integrated and communicated with, even though it uses a different messaging standard. We now describe how our scenario can be automated using semantic web services. A software agent acting on behalf of the company has detailed information about the transportation task which must be carried out. It contacts a discovery agent which has access to descriptions of services various organisations can provide, and asks for providers able to ship between Portsmouth and Gdansk. The discovery agent responds with a list of possible freight forwarders likely to be able to meet these requirements. The software agent then selects one or more of the possible freight forwarders, and sends a more detailed description of the task it requires to be performed, including the date the shipment will arrive at Portsmouth, and the date it must reach Gdansk. The freight forwarders respond with lists of services they can offer which meet these requirements. For example, one forwarder may say that it has a ship leaving Portsmouth on the required day which will arrive in Gdansk the day before the deadline. It will also give the cost of placing a crate on that ship. The requesting agent then selects one of the proposed services (possibly by interacting with a user to make the final decision) and informs the provider of the decision. Effectively, the two parties enter into an agreement at this point. As the shipment takes place, it is coordinated by an exchange of messages between the two parties. The messages use an industry standard, RosettaNet, which describes the format and order of the messages. The exchange starts when the crate is about to arrive in Portsmouth, with a RosettaNet Advanced Shipment Notification being sent by the requestor to freight forwarder 2, and ends with the sending of a Proof of Delivery and Invoice by freight forwarder 2 when the crate arrives in Gdansk.
3 Overall System Architecture The overall system architecture used in the demonstrator system is provided by the generic SWWS Technical Architecture. The underlying conceptual model is provided by the SWWS Conceptual Architecture [7]. Here, we summarise the technical architecture and relate it to the specific actors in our B2B scenario. In Agent Technology research, a distinction is made between a micro-architecture and a macro-architecture. A micro-architecture is the internal component-based architecture of an individual entity within a community. A macro-architecture is the structure of the overall community, considering each entity within it as a black box. It is also helpful to consider this distinction in semantic web services. Initially, we will present the macro-architecture for our community. There are three possible roles that a software entity can have; service requestor agent, service provider agent and discovery provider agent. A service requestor agent acts on behalf of an individual or organisation to procure a service. It receives a service requirement description from its owner, and interacts with other agents in an attempt to fulfil the requirement it has been given. It has some model, in an ontology, of the domain of the service and also has some model of the kind of actions that can be taken (through message exchange) in this domain. In our
Automated Business-to-Business Integration of a Logistics Supply Chain
991
scenario, the Logistics Coordinator takes the role of service requestor agent in relationship with each of the Freight Forwarders. A service provider agent is able to provide a service on behalf of an organisation. In our scenario, service provider agents represent the three freight forwarder companies used, as well as additional companies which could potentially be used by the logistics provider. It has a service offer description in some domain ontology (ideally, the same as the requestor agent), which gives an abstract description of services it can provide. In our scenario, for example, this would state that a company can ship crates from UK ports to Baltic ports. It also has a means to generate more concrete descriptions of the precise services it can deliver. (For example, a specific shipment of crate42 from Portsmouth to Gdansk on 25/03/05.) Furthermore, it has a formal description of the message protocol used to deliver the service. This includes mappings from the content of messages into concepts within the domain ontology. It also includes mappings from message exchange sequences into actions. In our scenario, a field in the initial Advance Shipment Notification (ASN) message might map onto the ‘weight’ attribute of the ‘crate’ concept within the domain. The sequence consisting of one party sending the ASN and the other party acknowledging receipt may correspond to a ‘notify shipment’ action in the domain ontology. A discovery provider agent contains descriptions of service offers, together with references to provider agents able to provide these services. These service offer descriptions are all expressed in some domain ontology associated with the discovery provider agent. Within this ontology is a ‘service description’ concept which effectively acts as a template for the descriptions of services that the discovery provider can contain. In our scenario, the ontology defines concepts relevant to logistics and transportation, and the descriptions the discovery provider contains are descriptions of transportation services the freight forwarders are able to offer. We illustrate the macro-architecture by describing the interactions which can take place between the different agents. These interactions are roughly in order of the service lifecycle progression [8] adopted by the conceptual architecture. 1. Provider agent registering a capability with the discovery provider. Initially, any service provider agent must register its service offer descriptions with the discovery provider using a simple message exchange protocol. It does this in terms of the ontology used by the discovery provider, and hence may require ontology mediation. In our scenario, each Freight Forwarder will register abstract descriptions of the services it can provide. 2. Requestor agent finding possible providers. Discovery takes place through a simple message exchange protocol between a service requestor agent and a discovery agent. The requestor agent sends a message containing a service requirement description, and the discovery agent responds with a message containing a list of URIs of service provider agents. These correspond to those provider agents with offer descriptions which match the service requirement description, according to the discovery agent’s algorithm. In our scenario, the Logistics Coordinator will send a description of the shipment it requires – that it is from Portsmouth to Gdansk, it must arrive by 27th March, etc. It will receive back a list of all freight forwarders which have advertised a service capability compatible with these requirements, as e.g. one that covers all the Baltic Sea area with its shipping services.
992
C. Preist et al.
3. Requestor and Provider agents define service. Following discovery, the requestor agent exchanges messages with one or more provider agents to define the service it will receive, and to select which provider agent to use. In our architecture, we assume a single simple service definition protocol is used by all requestor and provider agents. Our simple protocol consists of two rounds of message exchange. Initially, the service requestor agent sends a service requirement description to each provider agent it is considering using. The provider agent replies with a list of (almost) concrete service descriptions of the services it is able to provide which meet the needs of the requestor. The requestor can select one of these, with the provider confirming the selection to the requestor. The confirm message contains a URI reference where the description of the choreographies, which will be used during service delivery, can be found. If the requestor does not select one within a certain time window, sending no response to the provider, this is taken as cancelling. In our scenario, the Logistics Coordinator sends a description of the shipment it requires to one or more of the Freight Forwarders located at the previous stage. They respond with specific detailed descriptions of relevant shipment services – for example, one may state that the crate can be carried on a ship departing on 24th March at 3pm, with a cost of 30 euros. A given freight forwarder may provide several options at this stage. The Logistics Coordinator reviews these, and makes a selection (either automatically using stored preference information or, more likely, by providing the best options to a user who makes the final decision.) 4. Service Delivery Service delivery starts when one party (depending on the choreography used) sends an initiating message. The choreography used at this stage will correspond to the sequence of messages specified by the RosettaNet or EDIFACT standard. Each service provider has a description of the service delivery choreography associated with each service it can provide. At the end of the service definition protocol, as a parameter of the confirm message, it informs the requestor of a URI which references this description. The requestor is then responsible for accessing this description, interpreting it and engaging in a message exchange with the provider which satisfies the requirements of the choreography described. Exactly how this is done will be described in section 5. Having described the macro-architecture, we now turn to the micro-architecture. We look at two of the three roles that software entities can have – requestor agent and provider agent – and present a micro architecture for each. The micro architecture of the discovery service provider agent will be covered in section 4. Figure 2 illustrates our architecture for the service requestor agent. The application logic is responsible for decision making with regard to which service to select and how to make use of it. Normally, this will be integrated with back-end systems within the organisation which the service requestor agent represents. In our demonstrator, we provide a user interface to allow a user to make the decisions that would be made by such a system. The first role of the application logic is to define a service requirement description for the service it needs. When this has been done, it passes the description to the discovery and definition component, which exchanges appropriate messages to do this. The message format and contents are prepared and passed to the transport routines for transmission via an appropriate transportation protocol. At points where a decision is required – namely, when one or more provider is chosen after discovery and when a service is selected – it is made by the application logic.
Automated Business-to-Business Integration of a Logistics Supply Chain
993
Fig. 2. Service Requestor Agent Micro-Architecture
Fig. 3. Service Provider Agent Micro Architecture
When a service has been defined, the application logic initiates the delivery process by using the delivery module. The delivery module is able to carry out protocol mediation. It accesses the description of the choreography given by the service provider. This shows how message contents map into the domain ontology
994
C. Preist et al.
of the knowledge base, and also how sequences of messages correspond to actions within this domain ontology. The application logic can request the execution of one of these actions. This will result in the delivery module initiating an exchange of messages with the service provider. When an exchange terminates (either through successful completion or some failure) the application logic is informed of this. The delivery module also handles messages from the provider which are not part of an exchange initiated by the requestor. These correspond to actions within the domain which the provider is initiating. It informs the application logic of the actions and updates the knowledge base with relevant data from the messages. Details of this process are given in section 5. We now turn our attention to the provider agent (figure 3). In our architecture we assume that protocol mediation takes place within the requestor, so the provider can be simpler. The application logic module is responsible for deciding which services to offer a given requestor and also for the provisioning of the service itself. This will usually be provided by back-end systems belonging to the provider’s organisation. Initially, the application logic prepares a service offer description and registers this with the discovery service provider. From that point on, in our architecture, the provider agent is reactive. The service definition module can receive a service requirement description from a requestor. The application logic then prepares a set of possible services which satisfy the requirement, and this is sent to the requestor. If the definition module receives a selection message from the requestor, it returns the URI of the choreography description which it obtains from the application logic. As the provider agent does not need to perform mediation, service delivery is carried out by a hard-wired protocol description which interacts with the application logic when business actions are required.
4 Service Description and Discovery We now describe the service discovery functionality in more detail. The approach we use is inspired by that of [5]. During discovery and service selection, the businesslevel description of the service plays a key part. It gives a detailed description of the service in terms of the domain in which it provides value to the user, using some domain ontology. In our logistics domain, this will be a description of what goods are to be transported, where they will be transported from, which vehicle is being used, when the vehicle will depart, what its destination is, when it is expected to arrive, and other relevant terms of service such as insurance liability, cost and payment conditions, etc. At the end of the service selection stage, a concrete service description should be agreed between the requestor and provider, and effectively forms an informal ‘contract’ between the two parties. An example is the following: Contract ≡ Shipping ⊓ ∃ startLocation.{Portsmouth} ⊓ ∃ endLocation.{Gdansk} ⊓ ∃ dateOfDeparture.=2005-03-24 ⊓ ∃ dateOfArrival.=2005-03-26 ⊓ ∃ item.{SmallCargo#typeA} ⊓ ∃ vehicle.{CargoShip#34} ⊓ ∃ price.=90 ⊓ ∃ currency.{Euro} ⊓ ∃ meansOfPayment.{EuroCreditTransfer}
Automated Business-to-Business Integration of a Logistics Supply Chain
995
This concrete service description states that an item of small cargo will be carried on cargo ship 34 from Portsmouth to Gdansk, leaving on the 24th March and arriving on the 26th, and payment of 90 €€ will be made by credit transfer. It is expressed as an OWL-DL concept whose properties are restricted to specific values, allowing a unique configuration of the service. The terms used in this description are defined in a logistics domain ontology and in more generic ontologies for geography and vehicles. As it stands, such a concrete description of a service is clearly inappropriate for advertising or discovery, as requests and adverts would have to include many such classes covering all acceptable service parameter configurations. Instead, requestors and providers abstract from concrete parameter information, switching to less specific class descriptions. In such abstract service descriptions they specify the set of concrete services that they are willing to accept. For example, a freight forwarder may advertise the following capability, using an OWL-DL based description approach for abstract service descriptions explained in [6]. Sp
≡ Shipping ⊓
∃ startLocation.EUPort ⊓ ∃ endLocation.BalticPort ∀ item.Container ⊓ ∀ vehicle.Ship ⊓ ∃ meansOfPayment.(Cheque ⊔ BankTransfer)
⊓
This states that the service provider offers shipping services from EU ports to Baltic ports, can carry containers, and can accept payments by cheque or bank transfer. By using concepts and subconcepts to restrict the description appropriately, the service provider can give a precise view of the service it offers. It registers this with the discovery agent. Similarly, a requestor can describe the kind of service it needs; Sr
≡ Shipping ⊓
∃ startLocation.{Portsmouth} ⊓ ∃ endLocation.{Gdansk} ⊓ ∃ dateOfArrival.≤2005-03-27 ∃ item.CargoContainer ⊓ ∀ meansOfPayment.(CreditCard ⊔ BankTransfer)
⊓
This requests the shipping of a cargo container from Portsmouth to Gdansk, to arrive by the 27th March at the latest. Payment can be made by credit card or bank transfer. Hence, by using OWL-DL concepts, we can give descriptions of various granularities, from abstract service requests/offers to specific agreed parameter values in contracts. When the discovery agent receives a service request, it returns the set of all service advertisements which intersect with the request. An advert and a request intersect if they specify at least one common concrete service. The discovery agent uses an internal DL reasoner (RACER [9]) to check for intersection. Full details of the inferencing mechanism are given in [6]. The list of services returned includes URIs referencing the service providers, allowing the requestor to make direct contact. A requestor then makes contact with one or more of them to select and agree a concrete service. In some domains, negotiation of parameters may be necessary at this stage [10]. However, in our domain it is adequate for a provider to offer a list of relevant concrete services to the requestor, and allow them to select one. Again, this functionality can be provided by using a DL reasoner, this time internally to the service provider.
996
C. Preist et al.
5 Mediation During Service Execution Mediation is essential in our scenario to allow the rapid integration of a new freight forwarder into a logistics chain. We now present an overview of the approach taken. For a detailed description, see [11]. Communication is required during the execution of the service, as the shipment is initiated and progresses, to coordinate the behaviour of the service requestor and provider. In our scenario, we assume that the logistics coordinator usually communicates with freight forwarders using EDIFACT, but must now use RosettaNet with its new provider. Our approach to mediation is based around the insight that, even though there may be several different communications protocols used to communicate about a given task, it is often the case that the underlying models of the task that are implicit in these protocols are very similar to each other. In the case of the logistics domain, analysis of the EDIFACT, ANSI X12 and RosettaNet protocols found that the set of actions carried out to execute the task, and the sequencing constraints on them, are identical. Hence, an abstract protocol can be identified and abstracted from the specific communications protocols [12]. In our system, the application logic communicates with the mediation component in terms of the actions within the abstract protocol – it informs the mediation component when it wishes to initiate such an action, and is informed by the mediation component when the other party carries out an action. The abstract protocol is represented as concurrent processes described by finite state machines, which can be used by the mediation component to determine what actions are permitted at any given stage in the process. The actions used are given in Table 1. Each action in the abstract protocol maps to some exchange of messages in a specific standard such as RosettaNet or EDIFACT. This mapping will vary from standard to standard. We refer to this mapping as a concrete protocol relating to a specific standard. For example, in RosettaNet, the informReadyForCollection action maps to a sequence consisting in the Logistics Coordinator sending an Advanced Shipment Notification message (with up to 3 re-sends if no response within half an hour), followed by it receiving a response from the Freight Forwarder. In EDIFACT, however, it maps to a three-way exchange consisting of a DESADV message, responded to by an EDIFACT::ACK, followed by a re-send of the DESADV message. A concrete protocol is represented as concurrent processes described by finite state machines, which are used by the mediation component to manage the exchange of messages when an action takes place. The finite state machines are encoded in RDF, with transitions between states encoded procedurally in JavaScript. When the application logic wishes to initiate an action, it informs the mediation component. The mediation component checks that this action is permissible in the current state of the abstract protocol, and if it is, it executes the appropriate state machine within the concrete protocol. This will result in the sending and receiving of messages. On termination, the mediation component informs the application logic of the success or otherwise of the action. When the mediation component receives a message from the other party which does not correspond to an action it has initiated, it pattern-matches against the action mappings in the concrete protocol to identify which action the other party is initiating. (If the protocol is well-designed, this should be unique.) It then executes the appropriate concrete protocol to respond to this action, and informs the application logic to allow the service requestor to respond.
Automated Business-to-Business Integration of a Logistics Supply Chain
997
Table 1. Communicative acts involved in the execution of a logistics service
Communicative Act informReadyForCollection requestShipmentStatus informShipmentStatus informReadyToDeliver informShipmentDelivered requestPayment
Direction LC to FF LC to FF FF to LC FF to LC FF to LC FF to LC
Communicative intent Inform the FF that the shipment is available for collection. Request an update of the shipment status from the FF. Inform the LC of the shipment status Inform the LC that the FF is ready to deliver the shipment. Inform the LC (and provide proof) that the FF has infact delivered the shipment. Request payment for delivering the shipment from the LC.
In addition to dealing with the message sequencing, the concrete protocol also contains data mappings for the syntax of the messages, showing how the different fields in the message correspond to different concepts in the domain ontology. When a message is received, content within that message is ‘lifted’ into an RDF knowledge base to become an instance of a concept in the logistics ontology. The application logic is able to read and assert information in this knowledge base as necessary. When a message needs to be transmitted by the mediation component, it ‘lowers’ appropriate concept instances within this knowledge base into an XML syntax appropriate to the chosen standard. The technology used to do this is described in [13]. Using this mediation technology, a requestor can communicate with different providers using different standards, while allowing the application logic to be encoded in terms of business actions. All it need do is insert the appropriate concrete protocol into its mediation component. Because we assume that the requestor is ‘semantically enabled’ (i.e. its internal logic uses RDF) the mediation component can be part of it. If it were not, mediation could take place as a semantically enabled intermediary agent using similar techniques. These alternative design decisions are discussed in [11]. During service execution, the freight forwarders’ behaviour must be coordinated. For example, when the first is about to deliver the crate to Portsmouth docks, the second freight forwarder must be informed. This is achieved through a combination of the business logic and the mediation component. The actions involved are straightforward, and can be encoded as part of the business workflow. However, the messages involved are in different protocols, so require mediation. The first trucking company sends notification in EDIFACT. The mediation system recognizes that this message corresponds to an ‘informReadyToDeliver’ action, which the workflow identifies as requiring an ‘informReadyForCollection’ exchange with the shipment company. This is initiated, and the mediation component generates the appropriate RosettaNet messages. Specific data, such as the estimated time of delivery, are transferred from one message to the other through a process of lifting/lowering to/from the RDF database.
998
C. Preist et al.
6 Implementation The demonstrator system is implemented primarily in JAVA, as a distributed system with each requestor or provider agent as an independent entity. Different components internal to each agent access each other via Java RMI, to ease re-use of components beyond the demonstrator. Communication between agents takes place primarily through web service technology. To facilitate this, the agents are deployed on a web server platform consisting of Tomcat servlet container and Axis SOAP engine. The Discovery Service is a self-contained web service that can be deployed remotely and accessed via a standard web service interface. The generic discovery service is linked to a repository containing OWL-DL service descriptions compliant to an early form of WSMO (http://www.wsmo.org/). Reasoning is performed by the RACER DL reasoner. The Freight Forwarders provide web service interfaces for the exchange of messages involved in service specification. Service execution requires the exchange of EDIFACT or RosettaNet messages, which takes place over a standard http port, as specified by either the EDIFACT or RosettaNet standard. The logistics coordinator interacts with the discovery service via its web service interface, and the freight forwarders both for service specification, via their web service interfaces, and service execution, via a standard http port using RosettaNet or EDIFACT messages in XML. The components within the logistics coordinator are implemented in JAVA, with the RDF knowledge base provided by HP's JENA semantic web application framework (http://jena.sourceforge.net/). Transformation of XML messages into RDF, and vice-versa, was carried out using a combination of XML Schema and the JENA rules engine. As noted above, the application logic is provided by a user interface allowing the user to make decisions the application logic would. If the system were used in a real environment, this functionality would be provided by a business workflow system integrated with the corporate IT systems.
7 Analysis and Related Work The system presented in this paper is a demonstrator, not a deployed application. For this reason, certain simplifications have been made which need to be revisited. The first issue is that of representation; OWL does not have sufficient support for concrete domain predicates so that date ranges cannot properly be expressed and reasoned with. However RACER does support this feature and extensions to OWL such as OWL-E [14] provide a solution to this problem. Secondly, the system is not as secure as is necessary. The use of JavaScript in the choreography descriptions provides a security loophole; the system should provide a restricted JavaScript environment with a limited set of methods and reduced functionality. The messages sent during service execution should be packaged using S/MIME, to ensure non-repudiation. Thirdly, the system is not as robust as required – for example, conversations are not currently persistent objects, and hence will be lost if either party crashes. These issues require enhancements of the system, but do not invalidate the underlying design, and we are confident that they can be carried out straightforwardly. If the system is to be deployed, it needs to be integrated with the internal workflow and decision support systems of the various service requestors and providers. Cur-
Automated Business-to-Business Integration of a Logistics Supply Chain
999
rently, these decisions are made by the user, using a bespoke user interface geared around the specific scenario described in this paper. The ideal approach to integration would be to have all internal systems re-engineered to communicate with each other (and the SWS components) using RDF data in a shared enterprise knowledge base – however, this is unlikely to be acceptable in the short term! Bespoke translation of relevant data into/out of RDF using the lifting tool would be more straightforward. The approach followed for discovery based on semantic service descriptions works in a relatively small and closed environment, where parties refer to well defined and settled domain ontologies when specifying their service descriptions. However, it does not scale to an open environment in which parties use arbitrary ontological vocabularies that are not connected. This would require ontology mediation during discovery. The approach adopted in this demonstrator is strongly influenced by architectural work in multi agent systems. Adept [15] was one of the first multi-agent systems to use a service agreement between provider and requestor. The role of contracts between requestors and providers has been incorporated in a semantic-web framework in the SweetDeal system [16]. Our approach to representing contracts is not as expressive as that used in SweetDeal, and it appears that the non-monotonicity they provide is not required in our domain. Trastour et. al. [8] describe the B2B lifecycle in terms of transformations of a DL contract, which has strongly influenced our approach. Trastour et. al. [17] augment RosettaNet PIPs with partner-specific OWL constraints to determine if parties have compatible processes, and automatically propose modifications if not. This is a simple application of semantic web technology which can ease, but not automate, the linking of two business partners using RosettaNet. Work on semantic web services provides approaches to service discovery (e.g. [4]) and generation and execution of composite services (e.g. [18]), however the majority of this work focuses on one specific part of the service lifecycle and so does not provide an integrated solution which can be applied to real problems. WSMX [19] is an exception to this, in that it provides an execution framework for semantic web services throughout the lifecycle. While promising, it does not yet provide protocol mediation capabilities or rich business-level descriptions. IRS-II [20] also supports a service lifecycle, but focuses on the composition of simple web services rather than choreography of complex business services.
8 Business Value of the System and Conclusions If the system, enhanced as described above, were deployed in a business context it would have significant benefits. Specifically; - By performing service discovery using detailed descriptions of capabilities, it is possible to rapidly locate many freight forwarders able to offer the service required. Because the service description is structured and detailed, it eliminates the many 'false positives' that a yellow-pages style service (or UDDI) would give. This will save a substantial amount of time, and therefore money, during the search for providers. Furthermore, it will increase the visibility of each provider, so will benefit them provided they offer a competitive service.
1000
C. Preist et al.
- By providing semi-automated assistance during the service selection phase, the system replaces a large number of phone calls with a simple selection of contract by the user. This again reduces time. Because it significantly reduces the effort needed to check out each possible freight forwarder, it allows a user to make a wider search of the options and therefore is likely to result in a better final choice. - By allowing the service requestor to adapt its protocol to communicate with the service provider, the system dramatically reduces the time and effort required to integrate the two parties. Since integration can take months currently, this results in a very substantial cost saving. Furthermore, it means that the choice of service provider becomes far more flexible, as the time and effort of integration no longer results in lock in. This makes it easier to open up logistics chains to competitive tender where appropriate, with the resultant possibility of reducing costs further. While the demonstrator is focussed around logistics, and so is equipped with ontologies appropriate to this domain, the software developed could be applied to other domains of B2B interaction and integration if given the appropriate ontologies and knowledge. For example, it can be used in purchasing, order management, billing and other areas of supply chain management. The protocol mediation, data mediation and discovery components are designed to be used independently of each other, and can be applied outside the domain of B2B in other semantic web service applications, providing further potential value. In this paper, we have presented a demonstrator system using semantic web services technology which allows a requestor to discover logistics service providers, select appropriate logistics services, coordinate the services to form a composite service chain, and communicate with the service providers using arbitrary protocols through dynamic mediation. As far as we are aware, this is the first system implemented which manages the full service lifecycle of a realistic business example. The demonstrator itself is not of product quality, and needs augmenting to be more secure and robust before deployment. However, we believe our results demonstrate the feasibility of this approach to B2Bi problems in general, and expect the use of dynamic integration via semantic descriptions to become an important industrial technique in the near future. Acknowledgements. Thanks to Zlaty Marinova, Dan Twining, Peter Radokov, Silvestre Losada, Oscar Corcho, Jorge Pérez Bolaño and Juan Miguel Gomez for work on the system implementation, and all on the SWWS project for stimulating discussions.
References 1. McIlraith, S. and Martin, D.: Bringing Semantics to Web Services. IEEE Intelligent Systems, 18(1) (2003) 90-93 2. Paolucci, M. and Sycara, K.: Autonomous Semantic Web Services. IEEE Internet Computing, (September 2003) 34-41 3. Fensel, D. and Bussler, C.: The Web Service Modeling Framework WSMF. Electronic Commerce: Research and Applications, 1 (2002) 113-117 4. Paolucci, M., Kawamura, T., Payne, T.R. and Sycara, K: Semantic Matching of Web Service Capabilities. Proc. International Semantic Web Conference (2002) 333-347
Automated Business-to-Business Integration of a Logistics Supply Chain
1001
5. Trastour, D., Bartolini, C. and Gonzalez-Castillo,J.: A Semantic Web Approach to Service Description for Matchmaking of Services. In Proceedings of the Semantic Web Working Symposium, Stanford, CA, USA, July 30 - August 1, 2001 6. Grimm, S., Motik, B. and Preist, C.: Variance in eBusiness Service Discovery. Proc. of the ISWC Workshop on Semantic Web Services, 2004. 7. Preist, C.: A Conceptual Architecture for Semantic Web Services. Proc. 3rd International Semantic Web Conference (2004) 395-409 8. Trastour, D., Bartolini, C. and Preist, C.: Semantic Web Support for the B2B E-commerce pre-contractual lifecycle. Computer Networks 42(5) (August 2003) 661-673 9. Haarslev,V. and Moller, R.: Description of the RACER System and its Applications. Proc. International Workshop on Description Logics (DL-2001), Stanford, USA, 2001. 10. He, M., Jennings, N.R. and Leung, H: On Agent Mediated Electronic Commerce. IEEE Transactions on Knowledge and Data Engineering 15(4) (2003) 985-1003 11. Williams, S.K., Battle, S.A. and Esplugas Cuadrado, J.: Protocol Mediation for Adaptation in Semantic Web Services. HP Labs Technical Report HPL-2005-78 12. Esplugas Cuadrado, J., Preist, C. and Williams, S.: Integration of B2B Logistics using Semantic Web Services. Proc. Artificial Intelligence: Methodology, Systems, and Applications, 11th International Conference, (2004) 13. Battle, S.A.: Round Tripping between XML and RDF. Poster Proc. of ISWC 2004. 14. Jeff Z. Pan and Ian Horrocks. OWL-E: Extending OWL with Expressive Datatype Expressions. IMG Technical Report, School of Computer Science, the University of Manchester, April 2004 15. Jennings, N.R., Faratin, P.,Johnson,M.J., O’Brien,P. and Wiegand, M.E.: Using Intelligent Agents to Manage Business Processes. Proceedings of the First Int. Conference on the Practical Application of Intelligent Agents and Multi-Agent Technology (1996) 345-360 16. Grosof, B. and Poon, T.: SweetDeal: Representing Agent Contracts with Exceptions using Semantic Web Rules, Ontologies and Process Descriptions. International Journal of Electronic Commerce 8(4):61-98 (2004) 17. Trastour, D., Preist, C. and Coleman, D.: Using Semantic Web Technology to Enhance Current Business-to-Business Integration Approaches. Proc. 7th Enterprise Distributed Object Computing Conference, 2003, p222-231 18. McIlraith, S. and Son, T.C.: Adapting Golog for Composition of Semantic Web Services. Proc. 8th International Conference on Knowledge Representation and Reasoning, 2002, p482-493 19. Oren, E., Wahler, A., Schreder, B., Balaban, A., Zaremba, M., and Zaremba, M.: Demonstrating WSMX – Least Cost Supply Management. Proc. Workshop on WSMO Implementations, 2004. 20. Motta, E., Domingue, J., Cabral, L., and Gaspari, M.: IRS-II: A Framework and Infrastructure for Semantic Web Services. Proc. 2nd International Semantic Web Conference, 2003, p306-318
A Semantic Search Engine for the International Relation Sector L. Rodrigo1, V.R. Benjamins1, J. Contreras1, D. Patón1, D. Navarro1, R. Salla1, M. Blázquez1, P. Tena2, and I. Martos2 1 Intelligent Software Components, S.A. {lrodrigo, rbenjamins, jcontreras, dpaton, dnavarro, rsalla}@isoco.com www.isoco.com 2 Real Instituto Elcano {pilar.tena, isabelmartos}@r-i-elcano.org www.realinstitutoelcano.org
Abstract The Royal Institute Elcano1 (Real Instituto Elcano) in Spain is a prestigious independent political institute whose mission is to comment on the political situation in the world focusing on its relation to Spain. As part of its dissemination strategy it operates a public website. In this paper we present and evaluate the application of a semantic search engine to improve access to the Institute’s content: instead of retrieving documents based on user queries of keywords, the system accepts queries in natural language and returns answers rather than links to documents. Topics that will be discussed include ontology construction, automatic ontology population, semantic access through a natural language interface and a failure analysis.
1 Introduction Worldwide there are several prestigious institutes that comment on the political situation in the world, such as the UK’s Royal Institute for International Affairs (www.riia.org), or the Dutch Institute for International Relations (www.clingendael.nl). In Spain, the Real Instituto Elcano (Royal Institute Elcano, www.realinstitutoelcano.org) is fulfilling this role. The institute provides several types of written reports where they discuss the political situation in the world, with a focus on events relevant for Spain. The reports are organized in different categories, such as Economy, Defense, Society, Middle East, etc. In a special periodic report - the “Barometer of the Royal Institute Elcano” - the Institute comments on how the rest of the world views Spain in the political arena. Access to the content is provided by categorical navigation and a traditional full text search engine. While full text search engines are helpful instruments for information retrieval, in domains where relations are important, those techniques fall short. For instance, a keyword-based search engine will have a hard time to find the answer to a question such as: “Governments of which countries have a favorable attitude toward the US-led armed intervention in Iraq?” since the crux of answering this question resides in “understanding” the relation “has-favourable-attitude-toward”. 1
Juan Sebastián Elcano was a Spanish explorer, who commanded back home the first successful expedition to circumnavigate the globe in 1522.
Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729 , pp. 1002 – 1015, 2005. © Springer-Verlag Berlin Heidelberg 2005
A Semantic Search Engine for the International Relation Sector
1003
In this paper we present and evaluate a semantic search engine that accepts natural language questions to access content produced by the Institute. In Section 2, we briefly describe the ontology of the International Relations domain. Section 3 details how we automatically populate the ontology with instances. Then, in Section 4, present the semantic search engine, and how we automatically establish relations between the Institute documents and the (instances of the) ontology. In Section 5, we provide a failure analysis of the system based on a test with unknown users. Finally, in Section 6 we provide conclusions.
2 An Ontology of International Affairs When searching for a particular data, looking for a concrete answer to a precise question, a standard search engine that retrieves documents based on matching keywords falls short. First of all, it does not satisfy the primary need of the user, which is finding a well-defined data, and provides a collection of documents that the user must traverse, looking for the desired information. Besides, not all of the retrieved documents may contain the appropriate answer, and some of the documents that do contain it, may not be included in the collection. These drawbacks seem to suggest a change in the search paradigm, evolving from the extraction of whole documents, to the information contained in those documents. This approach, however, is not feasible in all conditions. It is not affordable to build such a search engine for general purpose, but only for limited, well-defined domains. This is the case of the semantic search engine developed for the Real Instituto Elcano, which focuses on the topics covered by the reports written by the institute analysts, this is, international politics. In order to be able to analyse the documents, and reach the sufficient “understanding” of them to be able to answer the users questions, the system relies on a representation of the main concepts, their properties and the relations among them in the form of an ontology. This ontology provides the system with the necessary knowledge to understand the questions of the users, provide the answers, and associate it a set of documents that mention the concept of the answer. Based on the ontology, each document gets its relevant concepts annotated and linked to the representing concept or instance in the ontology, allowing a user to browse from a document to the information of a concept he is interested in, and backwards, from the ontology to any of the reports that mention that concept. 2.1 Ontology Design An ontology is a shared and common understanding of some domain that can be communicated across people and computers [6, 7, 3, and 8]. Ontologies can therefore be shared and reused among different applications [5]. An ontology can be defined as a formal, explicit specification of a shared conceptualization [6, 3]. “Conceptualization” refers to an abstract model of some phenomenon in the world by having identified the relevant concepts of that phenomenon. “Explicit” means that the type of concepts used, and the constraints on their use are explicitly defined. “Formal” refers to the fact that the ontology should be machine-readable. “Shared” reflects the notion that an ontology captures consensual knowledge, that is, it is not private to some individual, but accepted by a group. An ontology describes the subject matter using the notions of concepts, instances, relations, functions, and axioms. Concepts in the ontology are organized in taxonomies through which inheritance
1004
L. Rodrigo et al.
mechanisms can be applied. It is our experience that especially the social part for building a commonly agreed ontology is not easy [2]. Based on interviews with experts of the Elcano Institute, we used the CIA world factbook (http://www.cia.gov/cia/publications/factbook/) as the basis for the design of the ontology of International Affairs. The CIA fact book is a large online repository with actual information on most countries of the world, along with relevant information in the fields of geography, politics, society, economics, etc.
Fig. 1. Ontology for International Affairs
We have used the competency questions approach [10] to determine the scope and granularity of the domain ontology. The ontology consists of several top level classes, some of which are “Place” (representing geographical places such as countries, cities, buildings, etc.), “Agent” (extracted from WordNet [11], representing entities that can execute actions modifying the domain such as persons or organizations), “Events” (time expressions and events), and “Relations” (common class for any kind of relations between concepts). Without instances information, the ontology contains about 85 concepts and 335 attributes (slots, properties). The ontology has been constructed using Protégé [9]. Fig. 1 shows a fragment of the ontology in Protégé.
3 Automatic Annotation One of the challenges for the success of the Semantic Web is the availability of a critical mass of semantic content [17]. Semantic annotation tools play a crucial role at upgrading the actual web content into semantic content, that can be exploited by semantic applications. In this context we developed the Knowledge Parser ®, a system able to extract data from online sources populating specific domain ontologies, adding new or modifying existing knowledge
A Semantic Search Engine for the International Relation Sector
1005
facts or instances. The Semantic Web community often calls this process as semantic annotation (or just annotation). The Knowledge Parser ® offers a software platform that combines different technologies for information extraction, driven by extraction strategies that allow the optimal technology combination application to each source type based on the domain ontology definition. Ontology population from unstructured sources can be considered as the problem of extracting information from the source, its assignation to the appropriate location in the ontology, and finally, its coherent insertion in the ontology. The first part deals with the information extraction and document interpretation issues. The second part deals with the information annotation, in the sense of adding semantics to the extracted information, according to domain information and pre-existing strategies. The last part is in charge of populating, i.e., inserting and consolidating the extracted knowledge into the domain ontology. The three phases can be seen in the architecture of the system, illustrated in Fig. 2.
Fig. 2. Overview of the extraction and population process
3.1 Information Extraction The KP system at present handles HTML pages, and there are plans to extend it to handle also PDF, RTF, and some other popular formats. To be able to capture as much information as possible from the source document, KP analyzes it using four different processors, each one focusing on different aspects: the plain text processor, the layout processor, the HTML source processor an the natural language processor. The plain text source interpretation supports the usage of regular expressions matching techniques. The usage of these kind of expressions constitutes an easy way of retrieving data in the case of stable, well known pages. If the page suffers frequent changes the regular expression becomes useless. It is very common that even if documents of the same domain have very similar visual aspect they have a completely different internal code structure. Most of the online banks offer a position page where all the personal accounts and their balance are shown. These pages have very similar visual aspect, but their source code is completely different. The KP system includes layout interpretation of HTML sources, which allows to determine if certain pieces of information are visually located above or under, right or left, in column or in row, etc. of another piece of information. In addition to HTML renderization of the source code in a visual model, the KP system needs to process the HTML elements in order to browse through the sources. The source description may include a statement that some information is a valid HTML link (e.g., a country name in a geopolitical portal), and when activated it drives to another document (a country description).
1006
L. Rodrigo et al.
Finally, the fourth model tries to retrieve information from the texts present in the HTML pages. To do that, the user describes the pieces he is interested in in terms of linguistic properties and the relations among them (verbal or nominal phrases, coordinations, conjunctions, appositions, etc.) 3.2 Information Annotation Once the document is parsed using different and complementary paradigms, there appears the challenge of assigning the extracted information piece to the correct place in the domain ontology. This task is called annotation, since it is equivalent to wrap up the information piece with the corresponding tag from the ontology schema. The annotation of information is not direct in most of the cases. For instance, a numeric data extracted from the description of a country can be catalogued as the country population, the land area, or its number of unemployed people. It is necessary to have some extra information that allows reducing this ambiguity. This information, formulated in another model, enlarges the domain ontology with background knowledge, the same way the human use for its understanding. The extraction system needs to know, for example, that in online banking the account balance usually appears in the same visual row as the account number, or that the is usually followed by a currency symbol. This kind of information describing the pieces of information expected in the source and the relations among them is formalized in a, so called, wrapping ontology. This ontology supports the annotation process holding information describing the following elements: document types, information pieces and relations among the pieces (any kind of relation detectable by the text, layout, html or nlp models). According to the domain ontology and the background information added, the system should construct possible assignments from the information extracted to the ontology schema. The result of this process is a set of hypotheses about data included in the source and their correspondence with the concepts, properties and relations in the domain ontology. During the construction process the system can evaluate how much the extracted information fits the information description. The different ways in which hypothesis can be generated and evaluated are called strategies. Strategies are pluggable modules that according to the source description invoke operators. In the current version of the system there are two possible strategies available. For system usages where the response time is critical we use the greedy strategy. This strategy produces only one hypothesis per processed document using heuristics to solve possible ambiguities in data identification. On the other hand when quality of annotation is a priority and requirements on response time are less important we use a backtracking strategy. This strategy produces a whole set of hypothesis to be evaluated and populated into the domain ontology. 3.3 Ontology Population The task of automatically filling a database or an ontological semantic model is non trivial, especially when the information comes from unstructured sources, where it may happen that the same information is repeated, spread over different places, or even inconsistent. For automatic ontology population, there is a need for a specialized module performing intelligent information integration tasks. In our architecture it is called IPO (Intelligent Population of Ontologies).
A Semantic Search Engine for the International Relation Sector
1007
When the system has selected an information to be included in the ontology, there are different possible actions to take, which are: create a new instance with the information; insert found data into an existing instance; overwrite a value in an existing instance or, finally, relate two existing instances. At this point, there is a key decision which affects the action to be taken: is the data found already present in the ontology, even under a different name? For that purposes, we have developed a library, SmartMatching, that decides whether two names refer to the same entity, and whether two instances in the ontology refer to the same concept in the real world. For example, it can decide that George W. Bush, Mr. Bush and Bush, G., all refer to the same person, and at the entity level, it can decide whether two entities holding economical data may be similar enough to suspect that they may belong to the same country (and therefore need to be unified into one single instance) or not. The IPO module has to decide what hypothesis to insert into the domain ontology. Even if the input hypothesis is ordered from the most (the one that fulfils the source description with the highest degree) to the least probable, it does not take into account yet the consequences that introducing the data in the ontology may have. The best hypothesis may cause inconsistencies or may require many changes in the domain ontology. So there is a final decision step, in which one of the hypotheses generated in the previous step is populated in the ontology. For that reason the IPO makes simulations of the best ranked hypotheses and evaluates their suitability for final population according to their population cost. The population cost is calculated as the amount of changes needed in the domain ontology when filling new hypothesis. It means that hypothesis that contradicts and makes inconsistent the domain ontology has higher cost that the hypothesis that fits directly. This way of disambiguation assumes that the information that is stored in the source intents to communicate something consistent and coherent with the information already stored in the domain ontology. On the base of the Shannon’s information theory [Shannon] we understand that the online sources encode information looking to its easy understanding by the reader. The domain and the wrapping (description) ontology together try to reconstruct the possible mental model of the reader and guide the KP system in the task of its understanding. If the mental model is correct we assume that the cheapest interpretation (the one that require the smallest amount processing effort) is the correct one. We find here an application of the Occam’s razor principle. 3.4 International Affairs Ontology Population Using the Knowledge Parser system, we populated the ontology of international affairs, designed as described in Section 2.1. The domain experts selected four sources where they could find most of the information that they used on their daily basis. These four sources are: · CIA World Factbook (http://www.cia.gov/cia/publications/factbook/). · Nationmaster (http://www.nationmaster.com) · Cidob (http://www.cidob.org/bios/castellano/indices/indices.htm). · International Policy Institute for Counter-Terrorism (http://www.ict.org.il). The set of sources is, of course, not exhaustive, but tries to follow the 80-20 rule, where a few sites cover most of the knowledge needed by the users of the system. For each of the sites, a wrapping ontology was developed, describing the data contained in it, the way to detect it and the relations among them. The development of these kind of descriptive ontologies is at present done by experienced knowledge engineers considerably
1008
L. Rodrigo et al.
fast, but it is in the plans for future advances to develop some kind of tools that will allow the domain experts to describe a new source and populate the ontology with its contents themselves. As a result of this process, we evolved from an empty ontology to an ontology with more than 60.000 facts.
4 The International Relations Portal Modeling the domain in the form of an ontology is one of the most difficult and time consuming tasks in developing a semantic application, but an ontology itself is just a way of representing information and provides no added value for the user. What becomes really interesting for the user is the kind of applications (or features inside an application) that an ontology allows. Following, we will present how we have exploited the semantic domain description, in the form of enhanced browsing of the already existing reports, and a semantic search engine integrated in the international relations portal, interconnected between them. 4.1 Establishing Links Between Ontology Instances and Elcano Documents The portal holds two different representations for the same knowledge, the written reports from the institute analysts and the domain ontology, which are mutually independent. However, one representation can enrich the other, and vice versa. For example, an analyst looking for the GDP of a certain country may also be interested in reading some of the reports where this figure is mentioned, and, in the same way, someone who is reading an analysis about the situation in Latin America may want to find out the political parties present in the countries of the region.
Fig. 3. Domain ontology population process
A Semantic Search Engine for the International Relation Sector
1009
Trying to satisfy these interests, we inserted links between the instances in the ontology and the documents of the Institute. The links are established in both directions. Each concept in the ontology has links (references) to the documents where it is mentioned, and, viceversa, each document has links that connect every concept mentioned in the article with the corresponding concept in the ontology. This way, the user can make a question, for example, “¿Quién es el presidente de EEUU?” (“Who is the USA president?”), and gets the information of the instance in the ontology corresponding to George Bush. From this screen, he can follow the links to any of the instances appearing in the text, George Bush being one of them. This process can be seen in Figure 4, where the information about George Bush in the ontology contains a set of links, and the document seen can be reached following one of them. To generate these links a batch process is launched, that generates at the same time both the links in the ontology and the links in the articles. At present, the process of adding links is a batch process that opens a document, and looks for appearances of the name of any of the instances of the ontology in that text. For any matching, it adds a link in the text that takes to the instance in the ontology and link in the ontology with a pointer to the text. To evaluate the matching, not only the exact name of the instance is used, but also the possible synonyms, contained in an external thesaurus, which can be easily extended by any user, i.e., the domain expert. Future plans include the automation of this task, so that any new document in the system (the institute produces new reports on a daily basis) is processed automatically by the link generator tool and the new links are transparently included in the system.
Fig. 4. Links between the instances and the documents
1010
L. Rodrigo et al.
4.2 The Semantic Search Engine With the objective of making available to the users the knowledge contained in the ontology in a comfortable, easy to use fashion, we also designed a semantic search engine. Using this engine, users can ask in natural language (Spanish, in this case) for a concrete data, and the system retrieves the data from the ontology and presents the results to the user. The general steps that the system carries out with every query are the following: · First of all, the user question is interpreted, extracting the relevant concepts from the sentence. · Second, that set of concepts is used to build a query that is launched against the ontology. · Finally, the results are presented to the user. Each of these steps will further detailed in the following sections. 4.2.1 Sentence Analysis When users go to the web searching for data, they expect a fast, almost immediate answer. If the process takes too long, the system just gives an impression of being unusable and the user will try with an alternative search engine. This is a serious drawback for these kind of systems that require heavy processing before being able to offer an answer to the user. Therefore, the process of obtaining an interpretation of the sentence of the user is optimized trying to provide an answer as fast as possible, sacrificing somehow the depth of the processing. The module is organized as a cascade of modules, from the most simple to the most complex ones, and each time a module is executed, the system checks if it is necessary to go on with the following modules, or if an answer can be already delivered. This process can be seen in Fig. 5. The input sentence is tokenized, obtaining a list of words, numbers, and punctuation signs. This list will be the input to the cascade of modules. The first module detects and marks the words that do not contribute any relevant meaning to the sentence (known as stopwords), so that from the very first moment those words are ignored by the rest of the modules. After every module execution, the system checks if the information collected is enough to provide an answer. To take this decision, the system checks if every token in the sentence is either marked as a stopword, as a punctuation sign or has any semantic information attached. If any of the tokens of the sentence is not annotated, the processing continues with the next module. The second module, the first one that attaches semantic information, uses the ontology as a gazetteer. Basically, it goes through all the names in the ontology (names of classes, attributes, symbols and instances), taking also into account the synonyms files that were afore mentioned, and checks if any of them appear in the sentence. If so, it attaches to the word the information of the element of the ontology it represents. This information depends on which kind of element was recognized. If it was the name of a class, just that name is enough, while if the word matched the value of an attribute, the system attaches the name of the class, attribute and exact value in the ontology (the matching does not need to be exact, especially due to capitalization and grammatical accents). The next module uses some shallow linguistic techniques to broaden the detection possibilities. The first thing that the system checks is if any of the words are operators that need
A Semantic Search Engine for the International Relation Sector
1011
to be included in the query. At this moment, only negative (no) and comparative operators (mayor que, menor que, igual) are implemented, but future plans include temporal operators also. If this does not complete the sentence analysis, the system verifies if any of the tokens that could not be analyzed is a number, and if so, marks it as such. In the last step of this module, as the word in the sentence that could not be recognized does not match any of the terms contained in the ontology (it was checked in the previous step), the system looks for variations of the word. First of all, it tries with the lemmas of the words in the sentence. This is of special interest in a highly flexible language as Spanish when dealing with verbal forms. Finally, the last step is to check if any of the words that still have not been understood may have been misspelled. For this purpose, we have adapted a spelling corrector, ispell [20], adding to the corrector dictionary all the vocabulary contained in the ontology, so that it is optimized for the application domain. The corrections suggested by ispell are checked by the second module, to see if they appear in the ontology and, if so, the word is considered misspelled and the appropriate information is attached. Finally, if there is still some token that has no information one last “desperate” process is launched that, using regular expressions, checks if the word is part of the name of any element of the ontology. This is quite helpful, as names in the ontology (particularly proper names) are written in their full form, while they are usually referred in a shorter way, for example, users will tipically write “Washington” while the name of the city in the ontology is “Washington D.C.”.
Fig. 5. Steps in the sentence analysis
1012
L. Rodrigo et al.
If all the modules have been executed and any token remains unannotated, the token is marked as misunderstood, and the analysis finishes, returning the tokenized sentence with the corresponding information attached. Every token in the user question, therefore, will have some kind of information attached, which may range from a “Stopword” tag, a “Not understood” tag, or (hopefully) the semantic information that the system could build for it. 4.2.2 Quezry Construction While human language is ambiguous most of the times, not mentioning facts that the speaker and the listener share, an ontology query language needs to explicitly mention all the facts that take part in the query. From the sentence analysis phase, the system gets a set of spots in the ontology, some classes, attributes and instances that the user has mentioned, but that is not enough to build a query. It is necessary to guess what kind of relations hold between those elements (that the speaker did not mention), so that the query can be well constructed. To achieve this, the system looks for the paths inside the ontology that connect all the elements mentioned in the sentence. Once a full path is found, a query can be constructed. The process that is carried out at present to calculate the path does not consider possible permutations in the order of the tokens in the sentence, and calculates the minimum distance from one element to the next, not taking into account minimum global paths. This is not the optimal algorithm, but once again efficiency has been preferred to efficacy. Nevertheless, improvement plans include this module as one of the main options, as sometimes the algorithm is just too rigid, and even though the system may have been able to understand the user sentence, the query cannot be correctly built and the system fails to give a response.
Fig. 6. Results presentation
A Semantic Search Engine for the International Relation Sector
1013
4.2.3 Results Presentation Once the system has got one or more URIs that represent the result to the question, the information contained by these URIs is presented to the user as tables with the information contained in the ontology. An example of a visualization of results can be seen in Fig. 6.
5 Failure Analysis The system has been tested during one month in the context of the W3C Spanish standards tour2. The scenario for this external evaluation was the following. Users were given a brief introduction to the system capabilities and functions, and then they could freely interact with it. One hundred utterances were collected from unknown, spontaneous users. Summarizing the general processing of the system, depicted in Section 4, the system first tries to understand the natural language, translating it to an internal representation based on the ontology, and then tries to build a query that retrieves the instances from the ontology that satisfy the user question. These instances are finally presented to the user as an answer. If the system is not able to complete any of these two steps, it will not be able to offer a response. If this happens, the user will be given the option to redirect the search to an standard search engine, and, moreover, if the system detects that some words were not properly understood it also notifies the user about the problem and gives him the possibility to rephrase the sentence with new words. The two possible sources for preventing the system from giving an answer have been explicitly identified in the results table, to be able to point out the one that is responsible for a greater number of errors. Finally, answers classified as “Wrong result” denote an error in the system. It has been able to process the question and thinks that it is providing a sensible answer, but the answer does not correspond to the question. This kind of malfunctioning comes from design or implementation bugs which can be located at any level, in the ontology, in the sentence analysis, or in the query construction and should be studied individually to uncover the reasons. Table 1. Evaluation figures
No result Query NL generation error error
Wrong result
46
24
21
9
46 (63.01%)
3 (4.11%)
17 (23.28%)
7 (9.59%)
Correct All Sentences Domain sentences
TOTAL 100 73
From the figures in Table 1, we can conclude two main points. The search engine is clearly domain specific, and only if users understand the implications of this fact will they be able to use the system successfully. This is suggested by the dramatic decrease of errors (specially in the NL) when only domain specific sentences are 2
http://www.w3c.es/gira/info/intro.html.en
1014
L. Rodrigo et al.
considered. Additionally, this decrease suggest that the sources for data acquisition, that implicitly define the domain of the engine, should be chosen with great care and in agreement with the domain experts. The more sources that can be added, the more robust the system will behave. We can also conclude that the second phase of the analysis, the query construction is at present the weakest link in the chain as it is not flexible enough to ensure that every well understood question will be correctly converted to the appropriate query. This point constitutes one of the future lines of improvements, and we will focus on it in the short term.
6 Related Work Our Knowledge Parser is related to several other initiatives in the area of automatic annotation for the Semantic Web, including KIM [12], which is based on GATE [13], Annotea [14] of W3C., Amilcare [15] of Sheffield University, and AeroDAML [16]. For an overview of those approaches and others, see [4]. All approaches use NLP as an important factor to extract semantic information. Our approach is innovative in the sense that it combines four different techniques for Information Extraction in a generic, scalable and open architecture. The state of the art of most of these approaches is still not mature enough (few commercial deployments) to provide concrete comparison in terms of performance and memory requirements.
7 Conclusions A semantic search engine for a closed domain was presented. The figures of the evaluation are promising, as more than 60% of the spontaneous questions are understood and correctly answered when these belong to the application domain. However, there are still some things to improve, such as the automatic link generation, a more flexible mechanism for building queries, an automated process to generate complete synonym files from linguistic resources, just to mention a few of them. It would also be of a high interest to completely decouple the search engine from the domain information, which are now lightly connected, in order to be able to apply the semantic search engine to a new domain just by replacing the domain ontology and the synonyms files. The semantic search engine is, at the same time, a proof of the utility and applicability of the Knowledge Parser ® which will also be further developed in future projects.
Acknowledgements Part of this work has been funded by the European Commission in the context of the project Esperonto Services IST-2001-34373, SWWS IST-2001-37134, SEKT IST-2003-506826 and by the Spanish government in the scope of the project: Buscador Semántico, Real Instituto Elcano (PROFIT 2003, TIC). The natural language software used in this application is licensed from Bitext (www.bitext.com). For ontology management we use JENA libraries from HP Labs (http://www.hpl.hp.com/semweb) and Sesame (http://www.openrdf.org/).
A Semantic Search Engine for the International Relation Sector
1015
References 1. Gómez-Pérez A, et al (2003) Ontological Engineering. Springer-Verlag. London, UK. 2. V. R. Benjamins, et al. (KA)2: Building ontologies for the internet: a mid term report. International Journal of Human-Computer Studies, 51(3):687–712, 1999. 3. W. N. Borst. Construction of Engineering Ontologies. PhD thesis, University of Twente, 1997. 4. Contreras et al. D31: Annotation Tools and Services, Esperonto Project: www.esperonto.net 5. A. Farquhar, et al. The ontolingua server: a tool for collaborative ontology construction. International Journal of Human-Computer Studies, 46(6):707–728, June 1997. 6. T. R. Gruber. A translation approach to portable ontology specifications. Knowledge Acquisition, 5:199–220, 1993. 7. N. Guarino. Formal ontology, conceptual analysis and knowledge representation. International Journal of Human-Computer Studies, 43(5/6):625–640, 1995. Special issue on The Role of Formal Ontology in the Information Technology. 8. G. van Heijst, et al. Using explicit ontologies in KBS development. International Journal of Human-Computer Studies, 46(2/3):183–292, 1997. 9. Protege 2000 tool: http://protege.stanford.edu 10. M. Uschold and M. Gruninger. Ontologies: principles, methods, and applications. Knowledge Engineering Review, 11(2):93–155, 1996. 11. WordNet: http://www.cogsci.princeton.edu/~wn/ 12. Atanas Kiryakov, et al. Semantic Annotation, Indexing, and Retrieval 2nd International Semantic Web Conference (ISWC2003), 20-23 October 2003, Florida, USA. LNAI Vol. 2870, pp. 484-499, Springer-Verlag Berlin Heidelberg 2003 13. H. Cunningham, et al. GATE: A Framework and Graphical Development Environment for Robust NLP Tools and Applications. Proceedings of the 40th Anniversary Meeting of the Association for Computational Linguistics (ACL'02). Philadelphia, July 2002 14. José Kahan, et al, Annotea: An Open RDF Infrastructure for Shared Web Annotations, in Proc. of the WWW10 International Conference, Hong Kong, May 2001. 15. Fabio Ciravegna: "(LP)2, an Adaptive Algorithm for Information Extraction from Web-related Texts" in Proceedings of the IJCAI-2001 Workshop on Adaptive Text Extraction and Mining, held in conjunction with the 17th International Conference on Artificial Intelligence (IJCAI-01), Seattle, August, 2001 16. P. Kogut and W. Holmes, "AeroDAML: Applying Information Extraction to Generate DAML Annotations from Web Pages", in Proceedings of the First International Conference on Knowledge Capture (K-CAP 2001). 17. Benjamins, V., et al. Six Challenges for the Semantic Web. White Paper, April 2002.
Gnowsis Adapter Framework: Treating Structured Data Sources as Virtual RDF Graphs Leo Sauermann and Sven Schwarz Knowledge Management Department, German Research Center for Artificial Intelligence DFKI GmbH, Kaiserslautern, Germany Knowledge-Based Systems Group, Department of Computer Science, University of Kaiserslautern, Germany {leo.sauermann, sven.schwarz}@dfki.de
Abstract. The integration of heterogenous data sources is a crucial step for the upcoming semantic web – if existing information is not integrated, where will the data come from that the semantic web builds on? In this paper we present the gnowsis adapter framework, an implementation of an RDF graph system that can be used to integrate structured data sources, together with a set of already implemented adapters that can be used in own applications or extended for new situations. We will give an overview of the architecture and implementation details together with a description of the common problems in this field and our solutions, leading to an outlook on the future developments we expect. Using our presented results, researchers can generate test data for experiments and practitioners can access their desktop data sources as RDF graph.1
1
Introduction
Semantic Web applications have a need for data to work on, and to access existing data sources like file systems, relational databases or legacy applications to extract information and represent it in RDF. For this task, common systems like Aduna Metadata Server, Joseki, Kowari or RDF Gateway use adapter interfaces and implementations. Or developers take existing adapter projects that need some glue code to be deployed. The problem is, that all these adapters conform to the special interfaces of the system and a Kowari adapter cannot be used in Aduna or RDF Gateway. Also, the administrators of the systems have all the same design decisions to make regarding their interfaces and approach to the problem. As they all base on RDF and have similar use cases, a generic adapter infrastructure that converts legacy data to RDF would be a goal. Then adapters would generate RDF and not an implementation of system X, Y or Z. The tedious task of writing adapters would be eased and existing adapters could be reused in the Semantic Web community. 1
This work was supported by the German Federal Ministry of Education, Science, Research and Technology (bmb+f), (Grant 01 IW C01, Project EPOS: Evolving Personal to Organizational Memories).
Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 1016–1028, 2005. c Springer-Verlag Berlin Heidelberg 2005
Gnowsis Adapter Framework
1017
The gnowsis adapter framework offers an architecture for adapters that do the task of RDF extraction in different ways. We experimented with approaches that differ in implementation effort and interfaces and evaluated, which interfaces are easy to implement and The framework consists of three parts, first an abstract implementation of adapters that build a skeleton for concrete adapters, second a middleware to integrate multiple adapters into a single, queryable data source and third a set of reference implementations that show how to build adapters that can be used off the shelf. Using this framework, application developers can extract information from heterogenous data sources based on the existing offthe-shelf-adapters or own implementations. The main features of the framework are: – Interfaces and abstract implementations of adapters – Existing adapter implementations to access the local filesystem, IMAP email servers, Microsoft Outlook, relational databases, and the Mozilla address book as RDF graphs – A framework to configure, start and integrate several adapters – Instructions and Examples to build custom adapters The gnowsis adapter framework is based on the Jena RDF framework[11] and extends the existing graph API. Each adapter implements either the graph API or a method to create concise bounded descriptions (CBDs), a data exchange format defined by Patrick Stickler in the URIQA web service [15]. In the latter case these CBDs will implement the graph API indirectly. This means arbitrary graph handling can take place nevertheless. Other more specialized third-party adapters have also been integrated into the framework. The functionality of the framework is restricted to extract information, changes on the underlying data are not supported. There is no clear specification how to express changes and send them to the adapter, especially facing blank nodes, as our focus lies on generating data for the semantic web we decided to start with an extraction framework and continue our work when the SPARQL [7] specification contains a methodology for updates and after reference implementations exist. In this paper we will describe the implementation and use of the system, together with references to related projects. We will show the necessary steps to create, deploy and use the adapters. The main benefits of using such adapters together with the underlying framework will also be explained. An evaluation has been made regarding (a) the implementation cost of adapters (by measuring the time a person takes to write an adapter) and (b) the performance of the different adapters, using different query methods and different data sources.
2
Structured Data Sources
For our work we focus on RDF extraction from structured data sources, with a distinction between files, applications and RDF repositories. We need these later, when deciding what kind of adapter to implement with what functionality.
1018
2.1
L. Sauermann and S. Schwarz
File Data Sources
There exist many popular, standardized file formats, that contain valuable structured data for the semantic web. Usually there also exist tools, which extract the structured information and convert it into RDF conforming to some popular RDF schema(s). Examples of some interesting file formats are: – iCalendar [6] is a popular text format for calendars and consequently used by the MacOs calendar and popular open source calendaring tools. It is an exchange format between calendar applications, and converters for RDF exist as a result of the RDF Calendar Workspace2 . – JPEG Images are the default file format used by digital cameras and are also popular on the WWW. The format allows embedded meta-data in the EXIF format [3]. There exist several tools [1] to extract EXIF from image files and already represent the result as RDF according to a RDF-Schema [10]. – HTML files contain meta-information in the head of the document, structured meta-data about author, keywords, etc. We concentrate on files that have characteristics of documents, not large storage files like relational database files or excel sheets. 2.2
Application Data Sources
These are systems that hold structured data in a known format and are accessible from outside to extract the data. Some are in popular use and can be easily integrated into the RDF. – Relational Databases that implement the SQL standard are a typical example. For these, bindings in all common programming languages exist and different implementations offer the same behavior. Many web applications use MySQL to store their information, offering a vast pool of information that can be transformed. D2RQ [5] by Chris Bizer, Andy Seaborne and Richard Cyganiak is a generic tool that represents relational data as RDF graph, by transforming RDF queries into SQL statements and then converting the query result to RDF. We used this tool as an example of how to write adapters, our results are written below in the evaluation section. – IMAP email servers are a common way to store emails and access them using different email clients. The protocol is defined as RFC and many existing APIs allow access to the servers. Emails are an important factor in today’s knowledge work. – Microsoft Outlook and the corresponding Exchange Server are a common collaboration tool in business environments. The interfaces to the Outlook client are well defined and many applications integrate with Outlook. An RDF adapter for Outlook was already described in [13] and will serve as an example. 2
http://www.w3.org/2002/12/cal/
Gnowsis Adapter Framework
1019
For these and other application data sources, generic adapters would be useful to access them through RDF. The cost of implementing an adapter is justified by the possible reuse in many scenarios. 2.3
RDF Repositories and Web-Services
Finally, existing RDF data sources published through proprietary or web interfaces are very interesting, as they already implement the RDF framework. Typical representations are Sesame [4], or kowari3. Integration of these has already been discussed in [9] but has to be reviewed again in the current situation of the upcoming SPARQL protocol and the integration with other data sources.
3
Gnowsis Adapter Types
Definition 1. We define adapters as a software tool that can, on request, extract data from existing structured data sources and represent them as RDF. The principle of adapters is well known in software architecture, as a design pattern described in [8] and as a data extraction component in many applications areas, ie search engines. To access data sources, we can differ between three basic approaches, each suiting a certain purpose and having advantages and drawbacks. We identified the following approaches to build an adapter: 3.1
Graph and Query Adapters
An adapter that implements the interface of an RDF graph or a sophisticated query language like RDQL, SPARQL or TRIPLE. Typically, these interfaces are based on querying the graph with a method that can be described with a find (Subject Predicate Object) interface. The adapter has to answer to queries, each query consists of a pattern matching the graph. The output of such an adapter would be a list of statements that match the query. Both the SAIL API of Sesame and the Jena Graph API offer a comparable architecture to a graph adapter. 3.2
Concise Bounded Description (CBD) Adapters
This adapter can return a small subgraph that describes exactly one resource in detail. The exact definition of the result is given as part of the URIQA specification. There, a Concise Bounded Description (CBD)[15] is the basis for communication to web services. The interface such an adapter implements would be: get the CBD of resource with URI X. The source on which it works could be any application data source or the files stored on a web server. CBD adapters do not depend on a complicated query framework neither can they answer any other request, but they serve as bootstrapping interfaces to quickly retrieve information about a single resource. 3
http://www.kowari.org/
1020
3.3
L. Sauermann and S. Schwarz
File Extractors
Finally, extraction of meta-data stored in files requires special handling. Typically, a file extractor is a tool that reads files, parses them and returns some meta-data that was extracted from the data stream. An example would be an EXIF extractor that reads JPEG files and returns an RDF description of the metadata. A typical use case for a file extractors would be a search engine that builds and index over the metadata of files, another example is a Semantic Web browser that can show the content of a file together with the metadata. These usage scenarios require that file extractors have to be lightweight, easy to program and have a fast execution time. For above approaches we have to discuss the benefits and drawbacks, you will find these below in the evaluation section.
4
How to Build Gnowsis Adapters
Writing an adapter requires a series of important tasks. Aiming at a complete methodology we successively collected information from our own experience and by observing the RDF-Calendar working group of the W3C. The overall task of building an adapter works according to the following main top-level tasks: 1. 2. 3. 4.
Analyze the data source Choose an appropriate RDF representation Choose an appropriate adapter type Implement the adapter
Finally, different adapters can be integrated in a middleware architecture [9] for RDF repositories, so some additional configuration and deployment tasks have to be done. We implemented a specialized architecture for the integration of desktop data sources. All the above mentioned tasks will now be explained in detail. 4.1
Analyzing the Data Source
First, as a preparation, the data source in question has to be analyzed. You have to find some test data for development of an adapter. A documentation of the file format is needed or a documentation of the API how to access the data source, if it is an IMAP server or a database. Normally, existing tools can be examined that already implement the extraction mechanism and, sometimes, a tool exists that already returns the structured data as RDF. – Formal Description of the data source. For IMAP this would be the RFC, for Microsoft Outlook it is the Programmer Reference, for iCal it is the RFC. – Example Source Data. Valid data that has been generated by common applications. – Search for an existing implementation to extract the information from the data source, preferably one that returns RDF.
Gnowsis Adapter Framework
4.2
1021
Formal RDF Representation
If two adapters extract the same information but return different RDF representations, or use different identification schemes for resources, the usability suffers. For most data sources, no formal representation of the data in RDF exists. In 2004 we did a survey on www.schemaweb.info and found only one public data format for representing Emails using RDF-Schema, and it was not in popular use. So, first is the search for an existing RDF-Schema that can represent the data. When an RDF-Schema formalization of the data exists, it should be used. If two exist, take the more popular scheme, we recommend the comparison of search results on google (www.googlefight.com), using the namespace identifier of the vocabulary as a search term. From our experience, it is always better to extend existing schemas to represent additional statements, than to build a new vocabulary from scratch. The FOAF project is a good example how a simple vocabulary can be extended for special needs. Then, a solution for the identification of resources has to be found. Ideally, the data source already uses URIs to identify resources or a specification exists that explains how to identify resources. For our IMAP adapter the RFC [12] gives such a specification. For relational databases, D2RQ defines a way how to use primary keys to create meaningful URIs. Additionally, you have to regard scheme specific requirements, e.g., for the popular FOAF vocabulary, it is best practice to identify human persons by using the email address as inverse functional property. The resulting data should be compatible to already existing RDF representations, so common practice is as valuable as the formal definitions. When the formal representation in RDF-Schema or OWL is found and the approach to identification is known, test data in RDF representation has to be authored. Again, using examples that are in public use will help standardization. 4.3
Adapter Architecture Decision
Based on the nature of the data source, the intended usage scenario and other facts like programming experience or the existing software architecture, an architecture for the implementation can be chosen. In the web we find a vast scenery of existing adapters, beginning at command line tools written in scripting languages that take input on stdin and return output on stdout to servers that specify their own protocols. We hope that above classification into three adapter types helps picking a suitable implementation path and making adapters reusable. In table 1 we give an overview of architectures and facts that influence the decision. 4.4
Implementation of an Adapter
Each adapter type requires a different approach to the implementation. While graph adapters can benefit by integration into an existing RDF framework, a file extractor can be implemented only returning an RDF text serialization. During
1022
L. Sauermann and S. Schwarz Table 1. A comparison of the different adapter types
usage data sources implementation implementation cost full RDQL support CBD support
graph adapter RDQL, find(spo) application based on existing API (Jena, SPARQL) high yes yes
CBD adapter getCBD(uri) application, file independent
file extractor getGraph(file) metadata from files independent
low no yes
low no yes
implementation we recommend to continually test against the data sources and an example RDF file. Testing against sample data is especially helpful when working in a distributed team or when the implementation is delegated to untrained personnel. Graph Adapters. The gnowsis framework offers an abstract implementation of graph adapters. The concrete adapter class is then a subclass implementing the skeleton. Three abstract classes have to be implemented, the adapter itself, a set of resource wrappers and a set of property wrappers. For each resource type in the data source, a wrapping class is needed that represents the resource (and should buffer the source object). For each property, a property wrapper has to be implemented, with the functionality to generate triples. At this point we need the RDF-Schema or OWL formalization of the source’s data format. This ontology is mapped to the wrapping Java classes. The exact functionality of the graph adapters is described in [13,2], together with more instructions on the implementation details, the existing adapters serve can serve as examples. Our approach to wrapping data sources using a mapping file from an ontology to java implementations is similar to the approach by Bizer et al [5]. CBD Adapters. The main function of a CBD adapter is to return a subgraph around a named resource; a call to such an adapter will usually contain the URI of the resource and some parameters. The exact parameters are defined in [16], the gnowsis system only supports a subset of them, more information can be found in the documentation. The results returned by a CBD adapter in gnowsis are Jena Models, generated and filled by the adapter. In the result is the resource of the request together with the statements describing the resource. The implementation is simpler compared to a graph adapter, it consists of parsing the URL, deciding how to generate the concise bounded description, generating it and returning it. It does not involve dependencies to other parts of gnowsis nor does the implementation require a deeper understanding of the framework. An example for a simple CBD adapter can be found in the IMAP adapter implemented by Shen Jianping (it is part of the gnowsis distribution). When adapting the data stored inside a third party application data source like the Mozilla Email client Thunderbird, there is another possibility to imple-
Gnowsis Adapter Framework
1023
ment a CBD adapter. The adapter can be embedded into the application itself, generating the RDF representation in the serialized form (RDF/XML or N3) and returning it through an inter-process-communication interface like XML/RPC or activeX. The rather simple CBD interface and the URIQA protocol are easier to implement compared to a full RDF query language. We created such an adapter for Mozilla Thunderbird, it allows the access to data stored inside Thunderbird’s address book through a CBD interface. The adapter was implemented mainly in Javascript as a Thunderbird plugin and is contacted by gnowsis. File Extractors. Similiar to CBD adapters, a file extractor returns the metadata of a single file as RDF. At the moment, we use an adapted CBD interface for file extractors: the call contains the file in question and the URI with which the file is identified. The extractor then uses the passed URI to generate the RDF representation of the file’s meta-data. We implemented an adapter that extracts the ID3 tags from MP3 files, they contain information about title, album, artist, ... . Implementation of such adapters is straightforward and we do not need to describe the details here. The interesting question is, how to reuse existing file extractors implementations. For example, the iCalendar converters fromIcal.py and ical2rdf.pl created by Dan Connolly, Libby Miller, and Tim Berners-Lee provide simple and effective means to convert text files to RDF. They can be called from other applications as they take their input from stdin and return the RDF serialization on stdout. Many such converters and extractors exist for different file types, and as they implement similar interfaces, can be integrated to frameworks such as gnowsis. We hope that the interfaces defined by gnowsis are an aid for others. 4.5
Usage of Adapters
Typical usage of an adapter are requests for concise bounded descriptions (CBDs) or find(subject, predicate, object) calls. More complex query formats can also be implemented in adapters, but this would raise implementation cost and complex queries can be fractionated into several find calls, as it is done in the actual Jena implementation. Jena (and other popular RDF APIs) require a find(spo) implementation. In complex queries (RDQL, SPARQL) including graph matching, the approach to query execution by the adapter could: – parse the whole query in its native form (RDQL) and execute it. The adapter therefore has to implement a query parser and an execution engine. – only implement the find(spo) interface. The query parsing is done by another framework (for example Jena) and fractionated into several find(spo) calls. The result of the calls are aggregated by Jena. This works satisfyingly for most cases, if the client knows the structure of the graph and asks only find(spo) questions that will return an answer. In any case, a query reordering helps the execution engine. We implemented a basic query reordering algorithm in Gnowsis, extending the standard RDQL query engine of Jena.
1024
L. Sauermann and S. Schwarz
– buffer all graph information in an RDF Repository. The framework has to crawl all adapters and store the crawled graph into one big database. We recommend using a Quad-Store or named graph store for this and chose the context id (the fourth resource in the quad or the name of the graph) the same as the CBD URI. Then, updates are on CBD identifier level.
4.6
Integration of Heterogenous Data Sources
Faced with several data sources, they have to be integrated to a hub architecture. [9]. In the gnowsis architecture we facilitated a registration of adapters and then a use of these adapters based on the registration information. Configuration of an adapter includes basic information about the implementation class (a Java class implementing an adapter type), human readable data source identifier, an ontology of the adapter and URI patterns that describe what URIs can be found inside the graph of the adapter. This configuration is, of course, stored in an RDF graph. For crawling, each adapter has to define root URIs, one ore more URIs of a resource that is queried first from the adapter, the resulting resources of such querying (either by find(spo) or by CBD) can then be crawled further. The concept of root URIs can also be employed in user interfaces: the information content of the adapter can be explored starting at the root URI.
5
Benefits of the Framework
Reusable adapters help to avoid reinventing the wheel every time some RDF data is needed. The obvious benefit of using standardized adapters is the reduced implementation effort in Semantic Web projects. The time to create and test custom implementations is higher compared to the time needed to integrate an existing adapter. If the existing adapter does not comply to performance requirements or functionality, it can be extended or used as a prototype. The second, from our perspective far more important benefit, is the standardization process that happens when the data is transformed to RDF. If two distinct applications use different implementations to access the same data source, the two resulting RDF graphs may be different. We observed two main problems in data transformation, the used ontology and the resulting URIs. The ontology problem can be illustrated by looking at the history of the W3C RDF-Calendar working group. A vocabulary to represent iCalendar event information in RDF was authored by Dan Connoly and others4 . The vocabulary was changed and different implementations either implemented the old or the new version Another case would be, when the same data is transformed into two different ontologies, e.g., information about people can be expressed either in FOAF or in vCARD5 . 4 5
http://www.w3.org/2002/12/cal/ical http://www.w3.org/TR/vcard-rdf
Gnowsis Adapter Framework
1025
The URI problem is similar. By what URIs should resources be identified? We request that the same resource should be identified by the same URI. However, even for a simple resource like a local file this is not straightforward. For instance, Mozilla and Internet Explorer use different URIs for the same local files when browsing. Both problems can be avoided by always using the same adapter. Although automatic matching of ontologies is possible, it could be avoided when using the same extraction algorithm and ontology in the first place. 5.1
Deployment and Use of Adapters
The resulting adapters can be used in concrete applications or embedded in the gnowsis Semantic Desktop framework [14]. In the embedded scenario, the adapter will be packaged as gnowsis service in form of a WAR file (the standard servlet container format, extended by gnowsis). The WAR file is included into an installed gnowsis system and then configured using the options menu of gnowsis, resulting in the integration of the data source into the data sources that will be queried by gnowsis on browsing or searching features. The exact way of deploying an adapter and using it is described in the according tutorials on the project website [2]. Adapters can also be used independent of gnowsis, in any java application. For this, the gnowsis adapter framework has to be included as a dependency together with the complete Jena dependencies. To start and use an adapter, an RDF graph containing the configuration information for the adapter has to be passed during instantiation. Again, details on this can be found on the website. Altogether, using and deploying adapters inside and outside gnowsis is comparable (on the effort level) to other Semantic Web frameworks.
6 6.1
Evaluation Implementation Cost
The task of implementing an IMAP adapter was delegated to one student. This student was an average skilled developer, who was new to gnowsis and RDF. He had to read and test the standard IMAP protocol, as well as, to read about and get into the gnowsis framework. During his work the student had to write down the amount of time needed for each subtask (reading, coding, testing, etc.). Understanding and implementing for the gnowsis framework, as well as, familiarizing with the adapter architecture took him about six hours. Getting around with the IMAP protocol was already done in about three hours. The student had to realize two types of adapters: He started with implementing a graph based adapter. It took him 24 working hours of implementation plus 16 working hours of debugging. As a second task, a CBD based adapter has to be implemented, too. In contrast to the graph adapter, it took him only about 8 hours to implement the CBD adapter, debugging included.
1026
L. Sauermann and S. Schwarz
Table 2. A comparison of the implementation cost for different adapter types implementation cost in hours graph adapter CBD adapter familiarize with adapter architecture 2 2 familiarize with gnowsis framework 4 – reading and testing native data interface 3 3 implementation 24 7 debugging 16 1 deploy adapter 1 1 sum 50 14
The CBD adapter was not only easier to implement, but also easier to test (particularly less debugging time): A CBD of some URI can be tested without any RDF API or framework running. Besides, the CBD adapter can be implemented in any language and the RDF/XML representation of the CBD can be created by simple text concatenation. This was exactly the case for the Mozilla address book plugin: an installable extension (XPI-file) integrates some corresponding Java Script code into the native application (Mozilla Firefox) and answers CBD queries via simple XML-RPC calls. If existing graph implementations can be reused, the cost of developing a wrapping gnowsis adapter is minimal. On 23th of April 2005, Richard Cyganiak created a wrapper for the D2RQ project [5] in about six hours of programming time. The existing D2RQ project is functional and tested, a stable basis for a gnowsis adapter. It was wrapped in a Java project, and the needed glue code has been written, including the formal RDF description of the adapter and a graphical component to configure the adapter. 6.2
Performance of the Adapters
As displayed in table 1 a graph adapter provides full query support (e.g. RDQL), because all triples in the graph are accessible and can be searched very efficiently. In contrast, the CBD adapter provides “jigsaw pieces” around given URIs. Using and combining these, some RDQL queries can be executed, too (searching for subjects is not possible without crawling). For such RDQL queries the retrieval and combining of the relevant CBDs costs, of course, more time than directly accessing a graph adapter. On the other hand, if (all) information about a resource shall be retrieved, the CBD provides exactly what is needed, and therefore is as efficient as the graph adapter. As an example we queried metadata about appointments stored in Microsoft Outlook in form of different queries: (1) the timestamp of one specific appointment, then (2) all properties of that appointment, after that (3) the timestamps of 1000 appointments, and finally (4) all properties of 1000 appointments. All four queries have been tested on both the graph adapter and the CBD adapter. Table 3 shows, that the graph adapter is, of course, faster on the retrieval of a single property, whereas the CBD adapter needs even less time for the retrieval of all properties of a resource.
Gnowsis Adapter Framework
1027
Table 3. Comparison of the runtimes of queries performed by the graph adapter and by the CBD adapter runtime in milli seconds graph adapter CBD adapter one appointment, one property 20-30 20-30 one appointment, all properties 20-30 20-30 1000 appointments, one property 16924 26378 1000 appointments, all properties 30644 26378
7
Conclusions and Future Plans
The gnowsis adapter framework is published as an open source project and has been used already by both interested individuals and research institutions. Using the presented adapters, it is possible to connect to a variety of data sources and crawl vast RDF graphs. By extracting real-life data sources, gnowsis adapters eventually allow working on big, real RDF data instead of small, irrelevant sample graphs. In consequence of the latest developments in the Data Access Working Group of the W3C, and the resulting SPARQL framework, we will concentrate on taking the gnowsis adapter framework in the suggested direction: Each adapter should be represented as a named graph in a graph-set. A single adapter, as well as, the graphset should be published using the SPARQL query language and the according protocol. Then, contacting the framework and relying on this stable protocol, applications can be implemented without any deeper knowledge about adapters or the framework as such. During the upcoming NEPOMUK EU project (lead by the DFKI) we will take our experience with gnowsis and formulate generic interfaces for adapters that could be used by the major RDF frameworks (Aduna Metadata Server, Kowari, Jena, etc.). For this, we are already in discussion with other developers of Jena and Aduna.
References 1. Exif2RDF by Masahide Kanzaki, http://www.kanzaki.com/test/exif2rdf JpegRDF by Norman Walsh http://nwalsh.com/java/jpegrdf/jpegrdf.html. 2. the gnowsis semantic desktop project website http://www.gnowsis.org. 3. Digital still camera image file format standard (exchangeable image file format for digital still cameras: Exif) version 2.1. Technical report, Japan Electronic Industry Development Association (JEIDA), June 1998. 4. Jeen Broekstra, Arjohn Kampman, and Frank van Harmelen. Sesame: A generic architecture for storing and querying rdf and rdf schema. In Proc. of the International Semantic Web Conference 2002, 2002. 5. A. Seaborne C. Bizer. D2rq treating non-rdf databases as virtual rdf graphs. In Proceedings of the 3rd International Semantic Web Conference (ISWC2004), 2004. 6. F. Dawson and D. Stenerson. Rfc 2445: Internet calendaring and scheduling core object specification (icalendar), November 1998.
1028
L. Sauermann and S. Schwarz
7. Andy Seaborne (edts) Eric Prud’hommeaux. Sparql query language for rdf. W3c working draft, W3C, 2005. http://www.w3.org/TR/rdf-sparql-query/. 8. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Addison-Wesley, 1995. 9. A. Harth. Seco: mediation services for semantic web data. Intelligent Systems, IEEE, Volume 19(Issue 3):66 – 71, May-June 2004. 10. Masahide Kanzaki. Exif vocabulary workspace - rdf schema. Technical report, RDF Interest Group, 2004. 11. Brian McBride. Jena: Implementing the rdf model and syntax specification. In Proc. of the Semantic Web Workshop WWW2001, 2001. 12. C. Newman. Rfc 2192: Imap url scheme, September 1997. 13. Leo Sauermann. The gnowsis-using semantic web technologies to build a semantic desktop. Diploma thesis, Technical University of Vienna, 2003. 14. Leo Sauermann and Sven Schwarz. Introducing the gnowsis semantic desktop. In Proceedings of the International Semantic Web Conference 2004, 2004. 15. Patrick Stickler. Cbd - concise bounded description. Technical report, NOKIA, 2004. http://sw.nokia.com/uriqa/CBD.html. 16. Patrick Stickler. The uri query agent model - a semantic web enabler. Technical report, NOKIA, 2004. http://sw.nokia.com/uriqa/URIQA.html.
Do Not Use This Gear with a Switching Lever! Automotive Industry Experience with Semantic Guides Hans-Peter Schnurr and Jürgen Angele ontoprise GmbH, Amalienbadstr. 36, 76227 Karlsruhe, Germany {schnurr, angele}@ontoprise.de http://www.ontoprise.de
Abstract. Besides the reduction of time to market, there may be observed another trend in the automotive industry: built-to-order. Built-to-order reduces the mass production of cars to a limited-lot-production. Emphasis for optimization issues moves then from the production step to earlier steps as the collaboration of suppliers and manufacturer in development and delivering. Thus knowledge has to be shared between different organizations and departments in early development processes. In this paper we describe a project in the automotive industry where ontologies have two main purposes: (i) representing and sharing knowledge to optimize business processes for the testing of cars and (ii) integration of life data into this optimization process. A test car configuration assistant (semantic guide) is built on top of an inference engine equipped with an ontology containing information about parts and configuration rules. The ontology is attached to the legacy systems of the manufacturer and thus accesses and integrates up-to-date information. This semantic guide accelerates the configuration of test cars and thus reduces time to market.
1 Introduction Having a look at the shares of vehicle sales in US from 1970 – 2001 (see figure 1) we observe that the big three automobile vendors (Chrysler, Ford, General Motors) considerably lost market shares in that time period. One of the reasons was that before the early nineties the poor quality of their cars compared to the competitor’s cars has been responsible for this loss. Then the big three started a quality offensive which resulted in a slight market gain until 1994. But after 1994 the big three again lost market shares. The reason for the second loss which lasts until today is the slow innovation in automotive industry in US. The competitors in Asia and Europe have been able to strongly reduce the time for developing new cars. As a consequence time-to-market is one of the main optimization goals in the automotive industry. Another very important trend in consumer oriented production industry is built-toorder. Built-to-order means that a product is immediately produced and delivered after the consumer configured the product according to his whishes. With this strategy Dell edged out a lot of its competitors on the PC market. In contrast to that in automotive industry cars are first developed and then manufactured in large amounts with a high degree of optimization. Very often the results are huge amounts of cars which cannot be sold and thus produce costs for the investment and for storing them. Finally these cars must be sold with large sales discounts which again reduce the profit of the Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 1029 – 1040, 2005. © Springer-Verlag Berlin Heidelberg 2005
1030
H.-P. Schnurr and J. Angele
Fig. 1. Market shares of vehicle sales (source: Wards automotive yearbook)
manufacturer. Built-to-order avoids all these problems but has a severe change of logistic processes and business processes as consequence. Built-to-order reduces the mass production of cars to a limited-lot-production. Emphasis for optimization issues moves then from the production step to earlier steps as the collaboration between suppliers and manufacturers in development and delivering. Thus knowledge has to be shared between different organizations and departments. Therefore, the main emphasis has to be put on optimizing these business processes. In this paper we describe a project in the automotive industry where ontologies have two main purposes: (i) representing and sharing knowledge to optimize business processes for testing of cars and (ii) integration of life data into this optimization process. The scenario for this process was given by the business processes around the testing of cars. Our client has a fleet of test cars. These test cars are continuously reconfigured and then tested with this new configuration. Reconfiguration means changing the engine, changing the gear, changing the electric, i.e. changing all kinds of parts. For changing parts a lot of dependencies between these parts have to be taken into account. In many cases these dependencies are only known by certain human experts and thus require a lot of communication effort between different departments of the manufacturer, between the manufacturer and suppliers and between suppliers. Very often test cars have been configured which did not work or which hampered the measurement of the desired parameters. So making such dependencies exploitable by computers allows for reducing the error rate in configuring test cars with a lower communication effort. This in turn accelerates the development of new cars and enhances the collaboration between manufacturer and suppliers. Thus it reduces time-tomarket and supports the built-to-order process.
2 Knowledge Representation in Automotive 2.1 The Representation Language F-Logic Conceptual (or Ontology) modeling deals with the question of how to describe in a declarative and abstract way the domain information of an application, its relevant vocabulary, and how to constrain the use of the data, by understanding what can be drawn from it. Corresponding abstract representation languages support the under-
Do Not Use This Gear with a Switching Lever
1031
standing of such descriptions, their rapid development, their maintenance and their reuse. Representing our domain in our representation language F-logic [1] provides a lot of advantages: •
•
•
•
F-Logic represents knowledge on a high level of abstraction in an explicit way. Thus knowledge is represented in well understandable independent knowledge chunks. It is not hidden in lower levels like SQL programs or even in computer programs. The abstraction level of F-Logic supports the rapid development of such models and the maintenance. Both aspects are very important in this domain since new dependencies arise with every new car model. This allows also to directly communicate F-Logic models between the users (in our case the engineers) and thus allow users to evaluate these models. The model is immediately executable. This means that as soon as the development of the model has started it could be automatically exploited by queries. Thus it immediately gives a value-add for the user. This distinguishes FLogic also from other conceptual modeling languages like UML etc. which are not expressive enough to describe the entire system in detail to provide an executable prototype. F-Logic provides a clear and well-documented semantics (well-founded semantics cf. [2]). This means that the knowledge models, i.e. the ontologies are interpretable and understandable in an inambigious way independently from an explicit implementation of a reasoning system (which is often the case for other business rules systems).
Basic concepts in the specific are represented as concepts in F-Logic and are arranged in an isa-hierarchy. Concepts may be described by attributes and relationships to other concepts. //schema component:: DEFAULT_ROOT_CONCEPT. component[ has_part=>>Component; is_part=>> Component]. motor::component[ maximum_power=>INTEGER]. // instances and relations tdi_engine: motor. valve2: component. pump3: component. tdi_engine[ has_part->>valve2; has_part->>pump3;horsepower->340]. //rules FORALL X,Y Y[is_part->>X] <- X [has_part->>Y]. //queries FORALL X <- X:component. In this example we have defined a component as a basic concept (below the root concept). A component has a relationship has_part to another component and an
1032
H.-P. Schnurr and J. Angele
attribute maximum_horsepower. A motor is a special component. Then we create an instantiation of a component tdi_engine being a specific motor. Concrete instances valve2, pump3 are given for concept component. A rule is used to describe the inversity of has_part and is_part. With a query we ask for all components in the model. OntoBroker, our reasoning system, provides means for efficient reasoning in FLogic [3]. OntoBroker performs a mixture of forward and backward chaining based on the dynamic filtering algorithm [4] to compute (the smallest possible) subset of the model for answering the query. During forward chaining not only single tuples of variable instantiations but sets of such tuples are processed. It is well-known that setoriented evaluation strategies are much more efficient than tuple oriented ones. The semantics for a set of F-Logic statements is then defined by a transformation process of F-Logic into normal logic (Horn logic with negation) and the well-founded semantics [2] for the resulting set of facts and rules and axioms in normal logic. 2.2 Answer Justification with F-Logic There are many reasons that users and applications need to understand the provenance of the information they get back from applications. One major motivating factor is trust. Trust and reuse of retrieval and deduction processes are facilitated when explanations are available. Ultimately, if users and/or applications are expected to trust, use and reuse application results, potentially in combination with other information or other application results, users and agents may need to understand where the derived and source information came from at varying degrees of detail. This information, sometimes called provenance, may be viewed as meta information about information told. Provenance information may include source name, date and author(s) of last update, authoritativeness of the source, degree of belief, degree of completeness, etc. Our approach for answer justification is based on meta-inferencing. While processing a query the inference engine is producing a log-file of the proof tree for any given answer. This proof tree itself is represented in F-Logic. It contains the instantiated rules that were successfully applied to derive an answer. This file acts as input for a second inference run, where answers are produced, that are explaining the proof tree in natural language and by that how the answer to the original query was inferred. Rules which are important for justifying results were explicitly named. For these rules certain explain rules are formulated which will be applied in the second, the meta-inference run. Frequently the named rules corresponded to important scientific laws (like load transmission), while less important rules were typically required for technical reasons, e.g. in order to translate between two alternative representations of the same content, but were not important for the human to understand the solution proposed by the system.
3 Business Logic Enhancements The setting here is the configuration of test cars. These test cars are continuously reconfigured and then tested with this new configuration. Reconfiguration means that according to orders of the test engineers parts have to be replaced by other parts, parts have to be dismantled or have to be built into the test cars. These test cars are then used to test for specific characteristics and to gain series of measurements either in
Do Not Use This Gear with a Switching Lever
1033
house or in test drives. For changing parts a lot of dependencies between these parts have to be taken into account. In many cases this knowledge about these dependencies is available by experts only. These experts need a lot of time for communication and often enough test cars have been wrongly configured due to inefficiencies in communication. Besides describing the knowledge about a domain, ontologies serve as mediators between data sources [5]. By this way up-to-date data about parts etc. from the legacy systems of the manufacturer are available. This integration aspect is handled in more detail in the next section. This ontology will be used in two different ways. In a first step it will be integrated into a software assistant which helps the engineer in configuring test cars. The engineer asks the assistant for a reconfiguration and the system answers with the dependencies which have to be taken into account and the contact information for experts in this case. Additionally to these answers the assistant will provide explanations which help the engineer to understand and validate the decision of the assistant. 3.1 Ontology The base ontology very strongly relies on parts which are arranged in a part-of hierarchy and their properties. The instances, i.e. concrete values are most often gained from parts list in the legacy systems.
Fig. 2. An excerpt of the automotive ontology in OntoStudioTM
1034
H.-P. Schnurr and J. Angele
In figure 2, an excerpt of that ontology is shown in a part-of view. It shows that e.g. a gear is part of a car and the switching lever is a part of the gear. For motor some attributes like maximum power, type etc. are shown. An ontology without rules describes only simple relationships between concepts like a part is a part of another part, a part is connected to another part etc. More complex relationships have to be described by rules and constraints. It is this more complex knowledge which has to be captured by the ontology to help configuring test cars. In the following such constraints are presented: Constraint 1: The maximum power of the motor must not exceed the one of the brakes. Pmotor < | Pbrakes | Constraint 2: The filter installed in a catalyst must be able to filter the motor’s fuel. Constraint 3: If there is a multitronic, then there must not be a switching lever and a clutch. These constraints are then added to the ontology by using rules: Rule 1: The maximum power of the motor must not exceed the one of the brakes: Pmotor < | Pbrakes | FORALL X,Y,Z,Z1,Z2,Z3 message(“The motor’s maximum power exceeds the one of the brakes.”) <X:testcar[hasMotor->Y;hasBrake->Z] and Y[maximum_power>>Z1] AND Z[maximum_power->>Z2] AND abs(Z1,Z3) AND lessorequal(Z2,Z3). Rule 2: The filter installed in a catalyst must be able to filter the motor’s fuel. FORALL X,Y,Z1,Z2 message(“The installed filter uses another fuel type than the motor”) <X:motor[fuel_type->>Z1] AND Y:filter[fuel_type->>Z2] AND not equal(Z1,Z2). Rule 3: If there is a multitronic, then there must not be a switching lever and a clutch. FORALL X,Y message(“A multitronic can not be combined with a switching lever or a clutch.”) <X:multitronic AND (Y:switching_lever OR Y:clutch).
Do Not Use This Gear with a Switching Lever
1035
It is clear that these single constraints look very simple. In most cases it is not the complexity of such a single relationship which creates the complexity of the task but the overwhelming amount of such rules and constraints which all interfere with a lot of others and thus make the task to configure a correct test car so complex and error prone. On the other hand the simplicity of the single rules gives us the hope that they can be created and maintained by the engineers themselves [6]. With its rules F-Logic is a very powerful language able to express arbitrary complex relationships. Other languages like OWL are much more restrictive. E.g. OWL does not allow to express conditions where variables are chained over different conditions like in rule 1. 3.2 Inferencing Inferences are facts, derived by means of logical conclusions. Inferencing engines like SiLRI [7] or OntoBroker [3] use a formal logic calculus to generate new facts out of input facts and rules. By that way our ontology with the rules is immediately executable after being loaded into OntoBroker. This means that queries could be posed to OntoBroker which in turn draws logical conclusions by evaluating the rules and produces answers to the queries. In an inferencing process the rules are applied to the given facts and extend the knowledge base by the newly created facts. Figure 3 visualizes this process.
Fig. 3. The inferencing process
3.3 Semantic Guide for Test Car Configuration On top of OntoBroker equipped with our ontology, a first prototype of a web-based user interface for the semantic guide has been developed (see fig. 4). In the left frame the user navigates within a part-of hierarchy of the components. This view may be switched to an is-a hierarchy. The attribute values of a selected component are editable in a form in the middle frame. The current configuration with all its components is shown in the right frame. If a configuration contains inconsistent components which is checked by applying consistency rules, appropriate error and warning messages are immediately given and alternatives for a selected component are presented to the user which make the configuration consistent. In our screenshot a special motor is selected and presented together with its attribute values.
1036
H.-P. Schnurr and J. Angele
The current configuration contains two incompatible components: gear 0815 and a switching lever must not be used together. This is indicated by the error message at the bottom. If the system knows about options which make the configuration consistent, these options are shown in the right window. A user can now exchange a component by the suggested option. It is clear that configuration on this way is a mixedinitiative approach between the computer and the user. This is in contrast to problemsolving methods for configuration like [13].
Fig. 4. Prototype of the Semantic Guide
4 Data Source Integration Besides serving as a common communication language and representing expert knowledge in our scenario ontologies serve as an integration means of different legacy systems. The ontology is used to reinterpret given information sources in a common language and thus to provide a common and single view to different data sources. In our scenario the components data and the configuration data is already handled widespread in different departments and in different information sources like CAD-, CAE- or CAT-systems or ERP/PPS-applications, databases etc. All these IT systems accompany the whole PLM-process [8], beginning with the product design and ending with the product release. Our test configuration system, and thus our ontology system must access this live information to be up-to-date, to avoid inconsistent data and to avoid additional effort. An ontology could now catch up these different sources and integrate them in a common logical model. This goes much beyond building just connectors [9] between applications. The goal of integration is to consolidate distributed information intelligently, free of redundancy and providing users and applications a simple access to information without considering the underlying data structure or system. In our case we already have such a commonly accepted logical model: the automotive ontology. This ontology describes schema information and is not yet populated by instances. This means e.g. that there exists a concept motor with attributes name,
Do Not Use This Gear with a Switching Lever
1037
cylinders, type etc. But there is no information about concrete motors like TDI V6, with 6 cylinders, fuel type super etc. available. This is achieved by attaching the ontology to one or more of the existing information sources. In the following we exemplify the mapping to a relational database. 4.1 Database Schema Import The first step to connect an ontology to a database is importing the database schema and visualize it in our ontology management environment OntoStudio, the successor version of the ontology engineering environment OntoEdit [6], [10]. Beneath relational database schemas OntoStudio has also import filters for other schemas like RDF [11], [12] or OWL. In our example we will show the attachment of a database table motor to our ontology. The database table is given in figure 5. It contains information about motors like the fuel type, power etc.
Fig. 5. Database table engine
4.2 Database Mappings After having imported the database schema the ontology and the schema have to be connected appropriately. OntoMap – a mapping tool included in OntoStudio – supports the fundamental mapping types (i) table-to-concept mapping, (ii) attribute-toattribute mapping and (iii) attribute-to-concept mapping. In fig. 6 a table-to-concept mapping connects the table engine to the concept motor and additionally an attribute-to-attribute mapping from id in the database to name in the ontology. This means that every row in the database corresponds to one object in the ontology. OntoStudio automatically creates a connection to the database by the dbaccessuserid-connector (there are various connectors to information sources available). This built-in automatically creates a unique object ID. It is used in a rule which defines the access and the mapping to our ontology: FORALL X, NAME, MAXIMUM_POWER, VOLUME_FLOW, FUEL_TYPE X:motor[name->>NAME; maximum_power->>MAXIMUM_POWER; volume_flow->>VOLUME_FLOW; fuel_type->>FUEL_TYPE]
1038
H.-P. Schnurr and J. Angele
Fig. 6. Database Mapping
Another important mapping type is the mapping of attributes to concepts. This has the consequence that the attribute value is used as unique ID for an ontology instance. E.g. mapping the ID of engine to the concept motor creates an object for every different ID in the database. By that way information about one and the same object which is spread in different rows and is always identified by the same ID can be linked together. This was the case in our project for part lists. 4.3 Querying the Integration Ontology Mappings as described in section 4.2 can be defined to different RDBMS and additionally to web services at the same time. A query to the integration ontology is thus at real-time translated (via the mapping rules) into calls for appropriate access builtins which in turn access the data sources (in case of an RDBMS via SQL queries) and translate the answers back into F-Logic. Thus a user or an application on top of the ontology needs only this single ontology view and with it single vocabulary to retrieve all necessary information. In our scenario different information sources contribute to the same ontology. E.g. information about electronic parts are stored in other databases than information about mechanical parts. Information about the 3-D geometry of objects is separated from their mechanical properties etc. 4.4 How to Handle Inconsistencies It is clear that in practice the different information sources contain redundant ore even inconsistent information. For instance in our scenario car types have not been represented in a unique way. The assignment of properties to car types has been described with different keys for one and the same car type. E.g. Keys like A3/A4 have been
Do Not Use This Gear with a Switching Lever
1039
used to describe common properties of two car types while unique properties have been assigned to the car type by a key A3. We again use rules and thus inferencing to solve such problems. FORALL X, Part, Type X:Car[carType->>Type; has_part->>Part]
5 Conclusion In a real-life industrial project, viz. in the automotive industry at a car manufacturer, we have shown that ontologies may very well be used to enhance business processes and to integrate different information sources. In our case the ontology represents knowledge about (complex) relationships between different parts which may automatically be exploited in configuring test cars. This reduces the communication effort between the mechanical engineers, and reduces the error rate in configuring test cars. For this task the ontology is attached to the legacy systems of the manufacturer and thus accesses up-to-date information about parts and configurations. We have shown that our ontology engineering environment OntoStudio supports not only the comfortable development of ontologies but with the integrated mapping tool OntoMap also an easy to learn tool to attach ontologies to different information sources. Our semantic guide is based on our ontology run-time environment and inference engine OntoBroker which is based on F-Logic. This semantic guide is a prototype which is currently evaluated at our customer. It has been shown that it accelerates the configuration of test cars at our customer and thus accelerates the development of new cars as well. This will reduce time-to-market in the end.
References 1. M. Kifer, G. Lausen, and J.Wu. Logical foundations of object-oriented and framebased languages. Journal of the ACM, 42; (1995) 741–843 2. A. Van Gelder, K. A. Ross, and J. S. Schlipf. The well-founded semantics for general logic programs. Journal of the ACM, 38(3); July (1991) 620–650 3. S. Decker, M. Erdmann, D. Fensel, and R. Studer. OntoBroker™: Ontology based access to distributed and semi-structured information. In R. Meersman et al., editor, Database Semantics: Semantic Issues in Multimedia Systems. Kluwer Academic, (1999) 4. M. Kifer and E. Lozinskii. A framework for an efficient implementation of deductive databases. In Proceedings of the 6th Advanced Database Symposium, Tokyo, August (1986) 109–116 5. Andreas Maier, Mike Ullrich, and Hans-Peter Schnurr. Ontology-based Information Integration in the Automotive Industry. Technical report, ontoprise whitepaper series, (2003)
1040
H.-P. Schnurr and J. Angele
6. Y. Sure, M. Erdmann, J. Angele, S. Staab, R. Studer, and D. Wenke. OntoEdit: Collaborative ontology development for the semantic web. In Horrocks and Hendler [HH02], (2002) 221-235. 7. S. Decker, D. Brickley, J. Saarela und J. Angele: A Query and Inference Service for RDF. In Proceedings of the W3C Query Language Workshop (QL-98), Boston, MA, 3.-4. Dezember, (1998) 8. T. Bernold. Product life: from design to disposal : life-cycle engineering: the key to risk management, safer products and industrial environmental strategies. In International Conference on Industrial Risk Management, Elsevier,.Zürich, (1990) 9. D. Kreuz. Formale Semantik von Konnektoren. PhD thesis, Technische Universitaet Hamburg (1999) 10. Y. Sure, S. Staab, J. Angele. OntoEdit: Guiding Ontology Development by Methodology and Inferencing. In: R. Meersman, Z. Tari et al. (eds.). Proceedings of the Confederated International Conferences CoopIS, DOA and ODBASE 2002, October 28th - November 1st, 2002, University of California, Irvine, USA, Springer, LNCS 2519 , (2002)1205-1222. 11. Richard Fikes. Ressource Description Framework (RDF). http://www.stanford.edu/ class/cs222/slides2/RDF.PDF. (2002) 12. Steffen Staab, Michael Erdmann, Alexander Mädche, Stefan Decker. An extensible approach for Modeling Ontologies in RDF(S). In Knowledge Media in Healthcare: Opportunities and Challenges. Rolf Grütter (ed.). Idea Group Publishing, Hershey USA / London, UK. December (2001) 13. Mittal, S., Frayman, F. Towards a generic model of configuration tasks. In Proceedings of IJCAI'89, (1989).
The Concept Object Web for Knowledge Management James Starz, Brian Kettler, Peter Haglich, Jason Losco, Gary Edwards, and Mark Hoffman ISX Corporation, 4301 N. Fairfax Dr. Suite 370, Arlington, VA 22203, USA {jstarz, bkettler, phaglich, jlosco, gedwards, mhoffman}@isx.com
Abstract. The Semantic Web is a difficult concept for typical end-users to comprehend. There is a lack of widespread understanding on how the Semantic Web could be used in day-to-day applications. While there are now practical applications that have appeared supporting back-end functions such as data integration, there is only a handful of Semantic Web applications that the average Google user would want to use on a regular basis. The Concept Object Web1 is a prototype application for knowledge/intelligence management that aggregates data from text documents, XML files, and databases so that end-users can visually discover and learn about knowledge object (entities) without reading documents. The application addresses limitations with current knowledge/intelligence management tools giving end-users the power of the Semantic Web without the perceived burden and complexity of the Semantic Web.
1 Introduction Since the creation of the Semantic Web there have been a large number of tools created that have proven its theoretical use and provided the infrastructure for application development. However, there have been very few Semantic Web applications that would be acceptable to most end users. There are many reasons this is the case as the technology is still emerging, but the foremost reason is that is currently difficult to do. Only recently have the underlying infrastructure tools matured to be used in real applications. Additionally, almost no end user will ever want to see OWL, URIs, ontologies, and the rest of the backbone of the Semantic Web. Our experience with building and integrating Semantic Web applications has shown us the difficulties of providing functionality to users that do not care that the application uses the Semantic Web. The Concept Object Web, built on top of ISX’s Semantic Object Web™ [6], is a prototype application for knowledge/intelligence management that tries to address many of the challenges of making a user friendly and useful Semantic Web application. The Semantic Object Web approach extends the Semantic Web by focusing on how users and software agents can more easily 1
Demo available at http://semanticobjectweb.isx.com
Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729 , pp. 1041 – 1049, 2005. © Springer-Verlag Berlin Heidelberg 2005
1042
J. Starz et al.
access and exploit information about specific entities in the world – people, places, events, etc. – that is semantically integrated from multiple distributed, heterogeneous sources. The underlying framework is used by a number of deployed applications. The Concept Object Web is based on a hybrid of features from these deployed applications using the Semantic Web. This paper describes the basic functionality of the Concept Object Web and how it leverages the power of the Semantic Web. We discuss a number of features of the system and describe our lessons learned from implementing them. Of particular interest is how users can use the Semantic Web to manage knowledge. The system addresses issues with resolving co-references of entities across data sources. It takes into account tradeoffs for generating indices of disparate data stores for fast retrieval and inference. The paper includes Semantic Web tradeoffs on the process of gathering semantically-grounded content, indexing information, performing searches, visualizing results, discovering and browsing information, and tracking data pedigree.
2 Motivation and Requirements Though there are many great tools for doing search and discovery, they often place a heavy burden on users to eventually read documents or view database records. Users have become quite willing to accept these limitations because in most cases they are not required to read more than a few documents to find the information they are looking for. Google™ works very well for the majority of users because of this assumption. In many real applications, such as business intelligence, the assumption simply does not hold. There do exist tools, such as Endeca®2 and Siderean™3, that do a very good job of providing typical users with the ability to perform guided searches. These may provide a better way to navigate to a smaller set of documents that would be required for an end user to read. In all of these cases, if the user wants to know all the details about an object in the document they have no choice but to read all of the documents, even if the documents themselves are mostly repetitive. The Concept Object Web approach is to gather information from documents using automated, and when possible human, extraction of entities and facts. Additional information can come from other heterogonous sources such as databases. This information can then be represented semantically and many extraction tools are now supporting this functionality out of the box. In this setting, common URI identifiers will not automatically be given to entities, so similar object must be resolved, best they can, into a single view using existing lexical and graph matching algorithms. At this point in the process all of the information has uniform identification, as well as mappings to ontologies. This information can now be stored in a knowledge base. All of the information in the populated knowledge base can now be shown to the user for a specific knowledge object, an instance of an ontological class. Instead of reading 10 documents about a person, a user could view the aggregated information from these 10 documents in a single view. The end user can essentially read all of the 2 3
http://www.endeca.com http://www.siderean.com
The Concept Object Web for Knowledge Management
1043
documents about an entity without reading all the documents4. The source material is retained for reference and duplicate information is rolled up. This approach has obvious advantages over other search techniques, but end users are more accustomed to reading documents and simple searching techniques. The next section describes how we bridge the gap to allow keyword search users to utilize a Semantic Web application for knowledge/intelligence management.
3 The Concept Object Web Application To motivate how the Concept Object Web is relevant to knowledge/intelligence management, we present a thread of a user that highlights the functionalities of the system. This example is followed by the technical approach involved highlighting the differences between other applications and the lessons learned during development. 3.1 Example Consider an analyst who is researching some suspicious activities in the Ukraine. When the analyst starts using the Concept Object Web they are presented with a sparse page with a familiar keyword search box. In this example the user makes a query for “political murders Ukraine”. The result of the keyword based search, shown in Figure 1, is a display of document metadata relevant for that query and a series of entities that are mentioned in the document collection for the query results. For the keyword query, 36 documents were returned. Along with the summary of each document, the user may view the knowledge objects, class instances, that appear in each document. The knowledge objects from the individual documents in the result set form the knowledge object display at the bottom of the screen. These entities were grouped into three customizable categories which correspond to classes in an ontology. The knowledge object portion of the display shows the occurrence count of knowledge objects that appear in the result set. In this example, the Ukraine Parliament occurs 6 times in our initial result set. This is somewhat interesting given our initial keyword key word query was “political murders Ukraine” and that parliament is one of the most frequent occurring organization in the set. The initial query can be refined by clicking on the occurrence count for parliament from the previous figure. The query now consists of a keyword query and a semantic query that requires a certain entity, parliament in this case, to appear in the result set. The result of this refined query is a set of 6 documents that have document metadata and knowledge objects as before. The user could read those six documents, but COW provides other capabilities for exploring the information space. As was the case with the initial query, Leonid Kuchma is the most occurring Person in the document set. It may be of interest to find out more about Kuchma before proceeding. This can be done by clicking on the knowledge object link. The figure below shows the information known about Leonid Kuchma. 4
The work in this paper was based on this concept introduced by Joseph Rockmore of Cyladian Technological Consulting.
1044
J. Starz et al.
Fig. 1. This screen shows results for a keyword query. It includes document metadata, constrained to show three results for this picture, and knowledge objects for faceted search. The user can refine the queries using these facets or navigate to the knowledge objects themselves. The column on the left shows functions for regular users at the top and for an administrator of the system at the bottom.
This knowledge object aggregates all of the semantic information about this entity and represents it with pointers back to the source document as well as providing information about when and how each fact was obtained. Most of the assertions composing this object were created via natural language processing over the document corpus. As these assertions are just Semantic Web statements, they may come from other sources such as markup tools or relational databases. At this point users can navigate among knowledge objects to discover new information. Additional visualizations are available supporting graph-oriented views. The application also supports a number of common Semantic Web capabilities, such as graph-based searching and pattern detection agents. For the example, the user simply navigates among related knowledge objects. The user quickly finds that Kuchma is accused of being involved in multiple murders. Both murders are accused by Mykola Melnychenko with the evidence being secret audio records. With further investigation, the accuser is a relative with Kuchma’s rival Victor Yanukovych and associated with a Russian FSB agent. An analyst will be able to determine that Kuchma is being framed for these two events
The Concept Object Web for Knowledge Management
1045
Fig. 2. This knowledge object displays relations and attributes for the entity. Each of the assertions displayed has metadata, which can be hidden, describing the source of the information. In this display, assertions have come from multiple sources and tools. The assertions from different sources may confirm or refute each other. The viewers tab is used for other graphical representation of the information. The actions tab allows users to edit and create knowledge objects. The tools tab is used to launch agents to look for predetermined patterns.
From our initial query concerning “political murders Ukraine” the Concept Object Web lets you refine the query with facets until you arrive at documents and knowledge objects of interest. The example discovery involves only a few hops. In the case above the human is critical in the loop to correlate information about two recordings, described textually. This could not be determined solely by a Semantic Web reasoning system. One of the key components of the Concept Object Web is to use semantics when possible, but fall back on the expertise of the user when necessary. Pointers are always available back to the source documents so users can read the original documents if they need to. 3.2 Technical Approach This section describes the technical details of the system and how we dealt with the tradeoffs of Semantic Web capabilities in a knowledge/intelligent management domain. 3.2.1 System Architecture The architecture leverages tools that generate semantic markup to feed text and semantic indexing repositories. ISX’s SPARKAL was used for the Semantic Web
1046
J. Starz et al.
“Secret audio recording” Initial Semantic Search: “political murder Ukraine”
POINTS TO
evidence
Gongadze Murder Viktor Yanukovych relatives
Leonid Kuchma
accused of
accuser Mykola Melnychenko associates
Alexander Litvenenko Velyashkevych Beating
works for
evidence “Audio recording”
Russian FSB
Fig. 3. This shows a fictitious discovery in the system concerning the interactions of Leonid Kuchma and Mykola Melnychenko. The keyword search leads to knowledge objects that help the human correlate information about the entities. In the above figure, the textual evidence is critical to the human’s discovery. These types of situations cannot easily be solved by using Semantic Web technologies in isolation.
knowledge base portion and Apache’s Lucene [1] was used to incorporate keyword and faceted search. As documents or databases are ingested, the Lucene index must be populated with the semantically-grounded information that results from inference in the knowledge base [4]. We chose arbitrary fields to populate for faceted search based on our ontologies, but you could conceivably take a more dynamic approach. 3.2.2 Search and Discovery Over the years we have found that most users are simply not comfortable with Semantic Web style queries. This could probably be said about relational databases as well, but they are generally much more restrictive in terms of numbers of tables and fields versus ontology classes and properties. For usability, it seemed the text box was a better alternative. At that point, we could have let users search directly for knowledge objects rather than documents. We feel the use of facets, useful in their own regard, provides a conceptual jumping off point to viewing knowledge objects. The use of the facets allows the users to see how the document metadata could be leveraged. 3.2.3 Navigation and Visualization Showing knowledge objects creates a number of difficulties. The most prominent of these is determining which information should be displayed to the end user. The current Concept Object Web displays all recent assertions, but other strategies are valuable. Of particular interest is aggregating data into higher abstraction levels allowing the users the ability to drill down on the information they care about while still
The Concept Object Web for Knowledge Management
Semantic Search Tool
1047
Knowledge Object Browser
Semantic Portal Framework
Text Index
Text Index Engine (Lucene) Text Documents
Semantic Index Engine Text Entity Extractor
Knowledge Object Repository
OWL Markup
OWL Ontologies
Reference Data
Semantic Markup Tool
Fig. 4. This is the high-level architecture for COW. Text documents are indexed and processed by an entity extractor for semantic index. The portal framework provides multiple strategies for searching and discovering information.
seeing a comprehensive view of the information. There are many commercial products and research efforts that can be leveraged for visualizing graphs and networks. The Concept Object Web primarily uses a simple web based display. Our techniques try to ensure objects have names. The first name asserted for that object will be used as the visual handle for that label. This consistency of names has been found to be extremely important. Though many objects do not have easily determined names, such as events, these unnamed objects are not terribly useful in this type of application and are usually hidden from users. To help guide navigation in the webbased view we have chosen ontological information to show in tool tip form. This has proven to help users learn information about objects within their results set without necessarily refining their query. For other navigation and visualization Inxight’s StarTree™ and Graphviz are used. 3.2.4 Markup Generation Markup can come from databases, XML, and text. There are increasing numbers of tools for managing relational databases as though they were semantically-grounded. Additionally, techniques are prevalent for turning XML into RDF/OWL. Text is particularly difficult to obtain markup for. Automated entity/fact extractors can provide a partial set of entities and facts, but it will miss and misclassify many entities and relations. There are a number of research-oriented tools for allowing humans to author semantic markup. These tools are good for advanced users who need to create small amounts of markup, but they can be difficult to use. The Concept Object Web can leverage all of these types of markup despite the fact that the automated extraction may be errorful. In this application, our ontologies were developed to constrain the amount of inference that is performed. The intention is to limit the propagation of faulty data through inference. We also attempted to build our
1048
J. Starz et al.
application around classes of objects that the entity extractor is good at extracting. For the Concept Object Web, Lockheed Martin’s Aeroswarm [8] was used to perform the automated extraction. To perform full exploitation of text markup, manual tools are required. The Concept Object Web application also utilizes ISX’s Semantic Markup Tool [7]. This tool leverages the use of the automatically generated markup as well as templates to aid the user. These templates act as ontological views that quickly constrain the complexity of the ontology while providing users with the ability to quickly mark up documents. Though manual creation of the markup requires resources, we have seen problems where organizations have decided the benefits were worth the cost of human effort. 3.2.5 Co-reference Resolution One of the keys to integrating information across data sources is the ability to perform co-reference resolutions across the sources. This is a very challenging problem that is not easy to address. We have found that seeding our knowledge bases with reference data containing basic information that can be used during the co-reference process is helpful. In the Concept Object Web we seeded our system with names of popular figures for our data corpus. This data set included entity aliases and some basic information that could be used to determine identical objects. Our co-reference algorithm primarily depended on entity name matching using syntactic and phonetic cues. We used the assumption that most entities have unique names. More sophisticated graph matching could have provided better resolution performance, but for our corpus the simplifying assumptions worked sufficiently. Due to our use of automated markup generation, most entities being co-referenced had very few properties and relationships making sophisticated algorithms ineffective. Co-reference resolution is an active area of research that cannot be covered here. Our experiences have shown us that generic algorithms for graph matching need to be supported with custom algorithms for entity types. For instance, there may be completely different algorithms for co-referencing entities and people. Syntactic similarity algorithms may work well for co-referencing people, but will lead to many false positives in co-referencing dates. We have found that each algorithm beyond name matching provides a diminishing return. Semantic Web application developers should take into account the characteristics of the data set and the required correctness for resolving duplicate entities.
4 Related Work Since there are too many tools supporting knowledge/intelligence management to mention in this space, I will only refer to those that are using the Semantic Web. Most Semantic Web applications or components could easily fit into the knowledge/intelligence management framework described in the Concept Object Web. In fact, it shares many similarities to components from EU-funded research projects, such as the Information Society Technologies program, and DARPA’s DAML project
The Concept Object Web for Knowledge Management
1049
[3]. It also leverages popular tools such as Jena [9] and Sesame [2] that were developed under research programs. In terms of some popular Semantic Web knowledge management applications, there are a number of interesting applications that cover different portions of the space. SWAD-Europe [11] has produced a number of interesting Semantic Web Portal applications. They have similarities to our work, but we focus on the notion of viewing integrated knowledge objects, particularly from text data sources. Haystack [10] is comparable but leans more towards allowing clients manage their own information spaces. In our opinion tools similar to Haystack are complementary to the Concept Object Web. Semantic Search [5] does a nice job of describing integrating Semantic Web with regular search, but doesn’t discuss some of the details mentioned in our work.
5 Conclusions Though the Semantic Web is still emerging it is now clear that some of the barriers are being broken down to support everyday application. The Concept Object Web is an example of a new paradigm of knowledge/intelligence management tools that leverage the powers of the Semantic Web complementing the human to perform their knowledge management tasks. In this application, we believe there is added value in using the semantics to help aggregate the information and present the integrated view to users.
References 1. Apache Lucene. http://lucene.apache.org. 2. Broekstra, J., Kampman, A., and van Harmelen, F. Sesame: A Generic Architecture for Storing and Querying RDF. Published at the International Semantic Web Conference 2002, Sardinia, Italy. 3. The DARPA Agent Markup Language, http://www.daml.org. 4. Finin, T., Mayfield J., Fink, C., Joshi, A., and Cost R. Information Retrieval and the Semantic Web. Proceedings of the 38th International Conference on System Sciences (2005). 5. Guha, R., McCool, R., Miller, E., Semantic Search. WWW2003, Budapest, Hungary. 6. Kettler, B. et al. The Semantic Object Web: An Object-Centric Approach to Knowledge Management and Exploitation on the Semantic Web. ISX Corporation Whitepaper. Presented as a poster at the 2nd International Semantic Web Conference (ISWC 2003). http://www.semanticobjectweb.isx.com. 7. Kettler, B., Starz, J., Miller, W., Haglich, P. A Template-based Markup Tool for Semantic Web Content. Submitted to the 4th International Semantic Web Conference (ISWC 2005). 8. Lockheed Martin 2005. Lockheed Martin AeroSWARM tool. http://ubot.lockheedmartin. com/ubot/hotdaml/aeroswarm.html. 9. McBride, B. Jena: Implementing the RDF Model and Syntax Specification. Semantic Web Workshop, WWW2001. 10. Quan, D., Huynh D., and Karger, D. Haystack: A Platform for Authoring End User Semantic Web Applications in ISWC 2003. 11. SWAD-Europe, http://www.w3.org/2001/sw/Europe/.
The Personal Publication Reader Fabian Abel1 , Robert Baumgartner2,3, Adrian Brooks3, Christian Enzi2 , Georg Gottlob2,3 , Nicola Henze1 , Marcus Herzog2,3, Matthias Kriesell4 , Wolfgang Nejdl1 , and Kai Tomaschewski1 1
Research Center L3S & Information Systems Institute, University of Hannover {abel, henze, nejdl, tomaschewski}@kbs.uni-hannover.de 2 DBAI, Institute of Information Systems, Vienna University of Technology {baumgart, enzi, gottlob, herzog}@dbai.tuwien.ac.at 3 Lixto Software GmbH, Donau-City-Strasse 1/Gate 1, 1220 Vienna, Austria {baumgartner, brooks, gottlob, herzog}@lixto.com 4 Inst. f. Math. (A), University of Hannover [email protected]
Abstract. This application demonstrates how to provide personalized, syndicated views on distributed web data using Semantic Web technologies. The application comprises four steps: The information gathering step, in which information from distributed, heterogenous sources is extracted and enriched with machine-readable semantics, the operation step for timely and up-to-date extractions, the reasoning step in which rules reason about the created semantic descriptions and additional knowledge-bases like ontologies and user profile information, and the user interface creation step in which the RDF-descriptions resulting from the reasoning step are interpreted and translated into an appropriate, personalized user interface. We have developed this application for solving the following real-world problem: We provide personalized, syndicated views on the publications of a large European research project with more than twenty geographically distributed partners and embed this information with contextual information on the project, its working groups, information about the authors, related publications, etc.1 Keywords: web data extraction, web data syndication, personalized views.
1
Introduction
In today’s information society, the World Wide Web plays a prominent role for disseminating and retrieving information: lots of useful information can be found in the web, from train departure tables to consultation hours, from scientific data to online auctions, and so on. While this information is already available for consumption by human users, we lack applications that can collect, evaluate, 1
This research has partially been supported by REWERSE - Reasoning on the Web (www.rewerse.net), Network of Excellence, 6th European Framework Program.
Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 1050–1053, 2005. c Springer-Verlag Berlin Heidelberg 2005
The Personal Publication Reader
1051
combine, and re-evaluate this information. Currently, users retrieve online content in separate steps, one step for each information request, and evaluate the information chunks afterwards according to their needs: e.g. the user compares the train arrival time with the starting time of the meeting he is requested to participate in, etc. Another common scenario for researchers is that a user reads some scientific publication, gets curious about the authors, other work of the authors, on related work targeting on similar research questions, etc. Linking these information chunks together is a task that can currently not be performed by machines. In our application, we show how to solve this information integration problem for the latter mentioned “researcher scenario”. We show, how to 1. extract information from distributed and inhomogeneous sites, and create semantic descriptions of the extracted information chunks, 2. maintain the web data extraction to ensure up-to-date information, 3. reason about the created semantic descriptions and ontological knowledge, 4. and create syndicated, personalized views on web information. The Personal Publication Reader (PPR) extends the idea of Semantic Portals like e.g. SEAL [4] or others with the capability of extracting and syndicating web data from various, distributed sites or portals which do not belong to the ownership of the application itself.
2
Extraction and Annotation with Semantic Descriptions
In our application, the web pages from which we extract the information are maintained by partners of the research project REWERSE, thus the sources of the information are distributed and belong to different owners which provide their information in various ways and formats (HTML, Java-script, PHPgenerated pages, etc.). Moreover, in each list, authors, titles and other entities are potentially characterized in a different way, and different order criteria are enforced (e.g. by year or by name). Such a web presentation is well suited for human consumption, but hardly usable for automatic processing. Nevertheless, the web is the most valuable information resource in this scenario. In order to access and understand these heterogeneous information sources one has to apply web extraction techniques. The idea of our application is to “wrap” these heterogeneous sources into a formal representation based on Semantic Web standards. In this way, each institution can still maintain their own publication list and at the same way we can offer an integrated and personalized view on this data by regularly extracting web data from all member sites. This application is open in the sense that it can be extended in an easy way, i.e. by connecting additional web sources. For instance, abstracts from www.researchindex.com can be queried for each publication lacking this information and joined to each entry. Moreover, using text categorization tools one can rate and classify the contents of the abstracts. Another possibility is to extract organization and person data from the institution’s web pages to inform the ontology to which class in the taxonomy an author belongs (such as full
1052
F. Abel et al.
professor). Web extraction and annotation in the PPR is performed by the Lixto Suite. Web data extraction is a hot topic – for an extensive overview of methods and tools refer to [3]. First, with the Lixto Visual Wrapper [1] for each type of web site a so-called wrapper is created; the application designer visually and semi-automatically defines the characteristics of publication elements on particular web sites based on characteristics of the particular HTML presentation and some possible domain knowledge. After a wrapper has been generated it can be applied to a given web site (e.g. publications of University of Munich) to generate an “XML companion” that contains the relevant information stored in XML using (in this application context meaningful) XML tags.
3
Extraction Maintenance
In the next step, in the Lixto Transformation Server application designer visually composes the information flow from web sources to an RDF presentation that is handed over to the PPR once a week. Then the application designer defines a schedule how often which web source is queried and how often the information flow is executed. Additionally, deep web navigation macros possibly containing logins, cookies and web forms as well as iteration over forms are created. As a next step in the data flow, the data is harmonized to fit into a common structure, and e.g. an attribute “origin” is added containing the institution’s name, and author names are harmonized by being mapped to a list of names known by the system. Finally, the XML data structure is mapped to a pre-defined RDF schema structure. Once the wrappers are in place, the complete application runs without further human interference, and takes care of publication updates. In case future extractions fail the application designers will receive a notification.
4
Reasoning for Syndicated and Personalized Views on Distributed Web Data
In addition to the extracted dynamic information, we maintain data about the members of the research project from the member’s corner of the REWERSE project web site. We have constructed an ontology for describing researchers and their involvement in scientific projects like REWERSE, which extends the known Semantic Web Research Community Ontology (http://ontobroker. semanticweb.org/ontos/swrc.html) with some project-specific aspects. Personalization rules reason about all this dynamic and static data in order to create syndicated and personalized views. As an example, the following rule (using the TRIPLE[5] syntax) determines all authors of a publication: FORALL A, P authors(A, P) <- P[dc:creator -> A]@’http:..’:publications.
In this rule, @’http:..’:publications is the name of the model which contains the RDF-descriptions of the extracted publication informations. Further rules combine information on these authors from the researcher ontology with the author information. E.g. the following rule determines the employer of a
The Personal Publication Reader
1053
project member, which might be a company, or a university, or, in general, some instance of a subclass of an organization (see line three below: here, we query for some subclass (direct or inferred) of the class “Organization” ): FORALL A,I works_at(A, I) <- EXISTS A_id,X (name(A_id,A) AND ont:A_id[ont:involvedIn -> ont:I]@’http:...#’:researcher AND ont:X[rdfs:subClassOf -> ont:Organization]@rdfschema(’..’:researcher) AND ont:I[rdf:type -> ont:X]@’http:...#’:researcher).
Disambiguation of results – here especially resource identification problems caused by varying author names – is achieved by an additional name identification step. For a user with specific interests, for example “interest in personalized information systems”, information on respective research groups in the project, on persons working in this field, on their publications, etc., is syndicated.
5
User Interface Provision
We run the PPR within our Personal Reader framework for designing, implementing and maintaining personal Web Content Readers [2]. These personal Web Content Readers allow a user to browse information (the Reader part), and to access personal recommendations and contextual information on the currently regarded web resource (the Personal part). For the PPR, we instantiated a personalization Web service in our Personal Reader framework which holds the above mentioned rules. An appropriate visualization Web service for displaying the results of the reasoning step (which are provided as RDF documents and refer to an ontology of personalization functionality) has been implemented.
Availability of the Personal Publication Reader The concept of the Personal Publication Reader and its functionality are summarized in a video, and so are the web data extraction and maintenance tasks. All demonstration videos and access to the application itself are available via http://www.personal-reader.de/semwebchallenge/sw-challenge.html.
References 1. R. Baumgartner, S. Flesca, and G. Gottlob. Visual Web Information Extraction with Lixto. In Proc. of VLDB, 2001. 2. N. Henze and M. Kriesell. Personalization Functionality for the Semantic Web: Architectural Outline and First Sample Implementation. In 1st Int. Workshop on Engineering the Adaptive Web (EAW 2004), Eindhoven, The Netherlands, 2004. 3. S. Kuhlins and R. Tredwell. Toolkits for generating wrappers. In Net.ObjectDays, 2002. 4. A. Maedche, S. Staab, N. Stojanovice, and R.Studer. Semantic portal - the seal approach. In D. Fensel, J. Hendler, H. Lieberman, and W. Wahlster, editors, Spinning the Semantic Web, pages 317–359. MIT-Press, 2003. 5. M. Sintek and S. Decker. TRIPLE - an RDF Query, Inference, and Transformation Language. In International Semantic Web Conference (ISWC), Sardinia, Italy, 2002.
DynamicView: Distribution, Evolution and Visualization of Research Areas in Computer Science Zhiqiang Gao, Yuzhong Qu, Yuqing Zhai, and Jianming Deng Department of Computer Science and Engineering, Southeast University, China {zqgao, yzqu, yqzhai, jmdeng}@seu.edu.cn Abstract. It is tedious and error-prone to query search engines manually in order to accumulate a large body of factual information. Search engines retrieve and rank potentially relevant documents for human perusal, but do not extract facts, or fuse information from multiple documents. This paper introduces DynamicView, a Semantic Web application for researchers to query, browse and visualize distribution and evolution of research areas in computer science. Present and historical web pages of top 20 universities in USA and China are analyzed, and research areas of faculties in computer science are extracted automatically by segmentation based algorithm. Different ontologies of ACM and MST classification systems are combined by SKOS vocabularies, and the classification of research areas is learned from the ACM Digital Library. Query results including numbers of researchers and their locations are visualized in SVG map and animation. Interestingly, great differences of hot topics do exist between the two countries, and the number of researchers in certain areas changed greatly from the year 2000 to 2005.
1
Introduction
The web is increasingly becoming the primary source of research areas to modern researchers. With millions of pages available from thousands of web sites, finding the distribution and evolution of research areas in different countries and regions is a problematic task. Imagine that a young Chinese researcher, who has just received his PH. D degree in artificial intelligence, is planning his future research. He may want to know how many people are doing relative researches, such as machine learning, multi-agent system, knowledge representation, etc. He may also want to examine history and prognosticate tendency of machine learning. Additionally, if he intends to be a visiting scholar in USA in the near future, finding differences of hot topics between the two countries is rather helpful. However, browsing web sites, extracting related information and analyzing this information is too time consuming for individuals. Therefore, we develop DynamicView to tackle this challenge. In the following of the paper, we begin with the introduction of major components of DynamicView in Section 2. In Section 3, we describe key services. Related works are discussed briefly in Section 4. Lastly, conclusions and ongoing works are summarized in Section 5. Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 1054–1058, 2005. c Springer-Verlag Berlin Heidelberg 2005
DynamicView: Distribution, Evolution and Visualization of Research Areas
2
1055
Major Components
Crawler. Hub pages (faculty lists) are found by human intervention, and the Crawler searches and stores the homepage of each faculty by link analysis. Top 20 universities in USA are chosen mainly according to the ranking of US News 1 , but not the exactly same. Top 20 universities in China are selected in accordance with the ranking of Ministry of Education of China 2 , with a few universities excluded whose web pages could not be accessed (May, 2005). Historical web pages of top 20 universities in USA are downloaded from the Web Archive 3 . Extraction Engine. English pages are processed automatically, while Chinese ones by hand due to its complexity. Extraction results of research areas, names of researchers and universities are stored into relational databases. Web pages of top 10 universities are browsed manually and 65 cue phrases indicating start positions for information extraction are obtained, such as research areas, research interests, etc. End positions may be character ’.’, html tag , end of file, or the position where the window size exceeds 300. Meanwhile, 1274 pattern phrases used for KMP algorithm are obtained. Combining cue phrases and KMP algorithm with segmentation of pages for each faculty, the average performance of our algorithm reaches 68.00% recall and 73.11% precision. Ontology Learner. The ACM digital library 4 is utilized to learn classification of research areas. Each research area is input as a keyword, and top 60 papers returned with primary and additional classifications are used as training samples. Three cases of classification distribution may occur. 1) If one peak exists, the peak classification is the answer. 2) If more than one peak exist, and they belong to the same super classification, the super classification is the answer. 3) If more than one peak exists but they belong to different super classifications, or there is no peak, the classification is specified by human interaction. For each research area, the following relations are defined in SKOS (Simple Knowledge Organisation System) 5 vocabularies: skos:prefLabelENG, skos:prefLableCHN, skos:altLabelENG, skos:altLabelCHN, skos:narrowerACM, skos:narrowerMST, skos:broaderACM and skos:broaderMST. ENG means the label is expressed in English, and CHN in Chinese. ACM refers to the ACM Computing Classification System (1998)6 , with MST to classification and code of disciplines GB/T 13745/92 by Ministry of Science and Technology, China. Query Processor. Users may query by country (USA or China), ontology (ACM or MST), hot topics and history. Note, users have to install SVG Viewers 7 to see SVG (Scalable Vector Graphics)8 maps and animation. 1 2 3 4 5 6 7 8
http://www.usnews.com http://www.cdgdc.edu.cn/zhxx/index.jsp http://www. archive.org http://portal.acm.org/dl.cfm http://www.w3.org/TR/swbp-skos-core-guide/ http://www.acm.org/class/1998/ccs98.html http://www.adobe.com/svg/viewer/install/main.html http://www.w3.org/Graphics/SVG/
1056
3
Z. Gao et al.
Key Services
Distribution of researchers in different countries and areas based on different ontologies. Given as an example, the number of researchers in artificial intelligence is shown in Fig.1, which are 327 (USA, ACM), 315 (USA, MST), 125 (China, ACM) and 169 (China, MST), respectively.
Fig. 1. Distribution of researchers in artificial intelligence according to ACM (left) and MST (right) ontologies in USA (top) and China (bottom)
Distribution of hot topics in different countries. Top 10 hot topics are deduced from original research areas with synonym relations, as depicted in Fig. 2 (top). Grey color refers to USA and pink color China. Surprisingly, the 1st
Fig. 2. Distribution of researchers in top 10 hot topics (top) in USA (left) and China (right), as well as evolution of hot topics (bottom) of operating system (left) and machine learning (right)
DynamicView: Distribution, Evolution and Visualization of Research Areas
1057
and 4th hot topics in two countries are the same: artificial intelligence and software engineering. But the other 8 hot topics are totally different. It seems that researchers in USA prefer theory and foundation, including machine learning, computer architecture, programming languages, distributed systems , operating systems, robotics, computer graphics and computer vision. By contrast, Chinese researchers emphasize application, including data mining, databases, computer networks , information security, data warehousing, pattern recognition, network security and image processing. Evolution of hot topics from the year 2000 to 2005. The number of researchers in some research areas does not change significantly such as operating systems. Meanwhile, The number of researchers in other areas such as machine learning has increased nearly 2 times, as demonstrated in Fig. 2 (bottom).
4
Related Works
CS AKTive Space [1] provides a way to explore the UK computer science research domain across multiple dimensions for multiple stakeholders, from funding agencies to individual researchers. Flink system [2] extracts, aggregates and visualizes online social networks from a number of information sources including web pages, emails, publication archives and FOAF profiles. However, D ynamicView faces a much larger challenge, namely to extract and demonstrate research areas of computer science in different countries, languages, ontologies and over time. To the best of our knowledge there is no well-established approach for this task.
5
Conclusions and Ongoing Works
D ynamicView is designed for researchers of computer science to visualize the distribution and evolution of research areas in top 20 universities of USA and China. Research areas are extracted automatically by segmentation based algorithm with the performance of 68.00% recall and 73.11% precision. In order to combine different ontologies of ACM and MST, SKOS vocabularies are extended. Classifications of research areas are learned from the ACM Digital Library by analyzing the peaks of classification distribution. Except for artificial intelligence and software engineering, the other 8 hot topics in the two countries are different. The number of researchers in some areas such as machine learning has changed greatly in the past 6 years. In the near future, we will design a link grammar based information extraction algorithm to detect new areas9.
Acknowledgments This work is supported in part by National Key Basic Research and Development Program of China under Grant 2003CB317004, the NSF of Jiangsu Province, China, under Grant BK2003001, Hwa-Ying Culture and Education Foundation as well as Ministry of Education of China under Grant 6809001001. 9
http://xobjects.seu.edu.cn/DynamicView/index.html
1058
Z. Gao et al.
References 1. Nigel R. Shadbolt, Nicholas Gibbins, Hugh Glaser, et al.: Walking Through CS AKTive Space: A demonstration of an integrated Semantic Web Application. Journal of Web Semantics, volume 1, issue 4. 2004 2. Peter Mika: Flink: Semantic Web Technology for the Extraction and Analysis of Social Networks. Journal of Web Semantics, volume 3, issue 2. 2005
Oyster - Sharing and Re-using Ontologies in a Peer-to-Peer Community Ra´ul Palma1 and Peter Haase2 1
Ontology Engineering Group, Laboratorio de Inteligencia Artificial, Facultad de Inform´atica, Universidad Polit´ecnica de Madrid, Spain 2 Institute AIFB, University of Karlsruhe, Germany
Abstract. This paper presents Oyster, a Peer-to-Peer system for exchanging ontology metadata among communities in the Semantic Web. We describe how Oyster assists researchers in re-using existing ontologies, and how Oyster exploits semantic web techniques in data representation, query formulation, query result presentation to provide an online solution to share ontologies.
1 Introduction Currently, ontology re-use is rather difficult, as it is hard to find and share ontologies available among the community. This leads to the problem of having many isolated ontologies created by many different parties. Besides the costs of the duplicate efforts this also hampers interoperability between ontology-based applications. Oyster1 is a Peerto-Peer application that exploits semantic web techniques in order to provide a solution for exchanging and re-using ontologies. To achieve this, Oyster implements a proposal for a metadata standard, so called Ontology Metadata Vocabulary (OMV)2 [4] which is based on discussions and agreement in the EU IST thematic network of excellence Knowledge Web3 as the way to describe ontologies. Exchanging ontology metadata is an interesting use case for a Peer-to-Peer application on the Semantic Web application for the following reasons: The information sources (ontologies) are geographically distributed among the community, and developers are willing to share the information about the ontologies they created provided they do not have to invest much work in doing so, while at the same time they are able to mantain the ownership of their ontologies. As a Peer-to-Peer system, Oyster further benefits from the following characteristics: no need for a centralized server (thus avoiding a bottleneck for both computational performance and information update), robustness against failure of any single component, and scalability both in data volumes and the number of connected parties. Finally, since ontologies can be represented in different languages (such as OWL[5], DAML+OIL[1], RDF-S[2]), Oyster provides the possibility to exchange heterogeneous information through the use of the metadata standard. 1 2 3
Oyster is freely available for download under http://oyster.ontoware.org/ The OMV ontology is available at http://ontoware.org/projects/omv http://knowledgeweb.semanticweb.org/
Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 1059–1062, 2005. c Springer-Verlag Berlin Heidelberg 2005
1060
R. Palma and P. Haase
2 Oyster Oyster provides an innovative solution for sharing and re-using knowledge (i.e. ontologies) which is a crucial step to enable Semantic Web. The Oyster system has been implemented as an instance of the Swapster system architecture4. In Oyster, ontologies are used extensively in order to provide its main functions (importing data, formulating queries, routing queries and processing answers).
Fig. 1. Oyster screenshot
Creating and Importing Metadata: Oyster enables users to create metadata about ontologies manually, as well as to import ontology files and to automatically extract the ontology metadata available, letting the user to fill in missing values. For the automatic extraction, Oyster supports the OWL, DAML+OIL and RDF-S ontology languages. The ontology metadata entries are aligned and formally represented according to two ontologies: (1) the proposal for a metadata standard OMV which describes the properties of the ontology, (2) a topic hierarchy (i.e. DMOZ topic hierarchy), which describes specific categories of subjects to define the domain of the ontology. 4
http://swap.semanticweb.org/
Oyster - Sharing and Re-using Ontologies in a Peer-to-Peer Community
1061
Formulating Queries: As shown in the left pane of the screenshot, the user can search for ontologies using simple keyword searches, or using more advanced, semantic searches. Here, queries are formulated in terms of these two ontologies. This means queries can refer to fields like name, acronym, ontology language, etc. (using the ontology document metadata ontology) or queries may refer to specific topic terms (using the topic hierarchy i.e. DMOZ). Routing Queries: As shown in the upper left pane of the screenshot, the user may query a single specific peer (e.g. their own computer, because they can have many ontologies stored locally and finding the right one for a specific task can be time consuming, or users may want to query another peer in particular because this peer is a known big provider of information), or a specific set of peers (e.g. all the member of a specific organization), or the entire network of peers (e.g. when the user has no idea where to search), in which case queries are routed automatically in the network. In the latter case, queries are routed through the network depending on the expertise of the peers, describing which topic of the topic hierarchy (i.e. DMOZ) a peer is knowledgeable about. In order to achieve this expertise based routing, a matching function determines how closely the semantic content of a query matches the expertise of a peer [3]. Processing Results: Finally, the results matching query are presented in a result list (c.f. upper right pane in the screenshot). The answer of a query might be very large, and contain many duplicates due to the distributed nature and potentially large size of the Peer to Peer network. Such duplicates might not be exactly copies because the semi structured nature of the metadata, so the ontologies are used again to measure the semantic similarity between different answers and to remove apparent duplicates. Then a merged representation that combines the knowledge from the individual and potentially incomplete items is presented to the user. The details of particular results are shown in the lower right of the screenshot. The user can integrate results of a query into their local repository for future use. This information may in turn be used later to answer queries by other peers. Also, as proposed by OMV, all the specific realizations of an ontology can be grouped by the same base ontology to organize the answer.
3 Ontology Metadata Vocabulary in Oyster Oyster applies semantic web technologies in order to build an online application for exchanging information that will assist users in building applications faster. In particular, it targets to re-using existing ontologies. In order to achieve this objective, Oyster provides an infrastructure for storing, sharing and finding ontologies making use of the proposal for a metadata standard OMV. OMV distinguishes between an ontology base and an ontology document. This separation is based on the observation that any existing ontology document has some kind of core idea (conceptualisation) behind. From an ontology engineering perspective, initially a person develops such core idea of what should be modeled (and maybe how) in his mind. Further, this initial conceptualisation might be discussed with other persons and after all, an ontology will be realised using an ontology editor and stored in a specific format. Over time, there might be created several realisations of this initial conceptualisation in many different formats, e.g. in RDF-S[2] or OWL[5]. Therefore,
1062
R. Palma and P. Haase
an Ontology Base (OB) represents the abstract or core idea of an ontology, so called conceptualisation, and it describes the core properties of an ontology, independent from any implementation details. While an Ontology Document (OD) represents a specific realization of an ontology base, describing properties of an ontology that are related to the realization or implementation. The distinction between an OB and OD leads to an efficient mechanism, e.g. for tracking several versions and evolvements of ontologies as well as for different representations of one knowledge model (conceptualisation) in different languages. OMV also models additional classes required to represent and support the reuse of ontologies by such metadata vocabulary, especially in the context of the Semantic Web. Hence, OMV further models classes and properties representing environmental information and relations such as Person, Organisation, Party, OntologyEngineeringTool, OntologySyntax, OntologyLanguage, OntologyType. For a description of the complete OMV ontology we refer the reader to [4].
4 Conclusion Sharing an re-using ontologies within communities is a critical task, which previously was rather difficult because of the heterogeneity, distribution and diverse ownership of the ontologies as well as the lack of sufficient metadata. In this paper, we have summarized the implementation of Oyster, a semantics-based Peer-to-Peer system for the exchange of ontology metadata, that exactly addresses these challenges. Oyster exploits semantic web technologies to provide a solution for re-using ontologies. It builds on a proposed standard for metadata for describing ontologies. Oyster is already being applied in the Knowledge Web project with partner across the european union. For more information about Oyster, we refer the reader to http://oyster.ontoware.org/. Acknowledgments. Research reported in this paper has been partially financed by the Knowledge Web project FP6-507482. We would like to thank our colleagues for fruitful discussions.
References 1. DAML+OIL (March 2001) reference description, 2001. W3C Note, available at http://www.w3.org/TR/daml+oil-reference. 2. D. Brickley and R. V. Guha. RDF Vocabulary Description Language 1.0: RDF Schema. W3C Rec. 10 February 2004, 2004. available at http://www.w3.org/TR/rdf-schema/. 3. P. Haase, R. Siebes, and F. van Harmelen. Peer selection in peer-to-peer networks with semantic topologies. In Proceedings of the International Conference on Semantics in a Networked World (ICNSW’04), Paris, June 2004. 4. J. Hartmann, R. Palma, Y. Sure, M. Suarez-Figueroa, P. Haase, A. Gomez-Perez, and R. Studer. Ontology metadata vocabulary and applications. In Proc. of the Workshop on Web Semantics (SWWS’05), First IFIP WG 2.12 and WG 12.4 Agia Napa, Cyprus, 2005. 5. M. K. Smith, C. Welty, and D. McGuinness. OWL Web Ontology Language Guide, 2004. W3C Rec. 10 February 2004, available at http://www.w3.org/TR/owl-guide/.
The FungalWeb Ontology: Semantic Web Challenges in Bioinformatics and Genomics Arash Shaban-Nejad, Christopher J.O. Baker, Volker Haarslev, and Greg Butler Dept. of Comp. Sci. and Software Eng., Concordia University, H3G1M8 Montreal, Canada {arash_sh, baker, haarslev, gregb}@cs.concordia.ca
1 Introduction Bioinformatics and genomics cover a wide range of different data formats (i.e. annotations, pathways, structures, sequences) derived from experimental and in-silico biological analysis which are stored, used, and manipulated by scientists and machines. The volume of this data is huge and usually distributed in different locations, and often frequently being updated. FungalWeb is the first project of its kind in Canada to focus on bringing semantic web technology to genomics. It aimed to bring together available expertise in ontologies, multi-agent systems, machine learning and natural language processing to build a tailored knowledgebase and semantic systems of direct use to the scientific discovery process in the domain of fungal genomics [1]. We describe the FungalWeb Ontology which is a large-scale integrated bio-ontology in the domain of fungal genomics using state-of-the-art semantic technologies. The ontology provides simplified access to units of intersecting information from different biological databases and existing bio-ontologies. In particular, the FungalWeb ontology is being used as a core for a semantic web system. This system can be used by human, bioinformatics applications or some intelligent systems for ontology-based information retrieval to provide extended interpretations and annotations. [2]
2 The FungalWeb Ontology Design and Evaluation The FungalWeb Ontology [2] is the result of integrating numerous biological database schemas, web accessible textual resources and interviews with domain experts and reusing some existing bio-ontologies. The Ontology is designed with a high level of granularity and implemented in OWL-DL language to take advantage of the combination of a frame representation of OWL framework and expressive Description Logics (DL). The majority of the terms in the FungalWeb Ontology come from following sources: • NCBI taxonomy database [3]: contains the names of all organisms including fungi. • NEWT: is the taxonomy database maintained by the Swiss-Prot [4]. • BRENDA [5]: a database of enzymes which provides a representative overview of enzyme nomenclature, enzyme features and actual properties. • SwissProt [6]: a protein sequence database providing highly curated annotations, a minimal level of redundancy and a high level of integration with other databases. • Commercial Enzyme Vendors: Companies that retail enzymes provide detailed descriptions of the properties and benefits of their products on their websites. Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729 , pp. 1063 – 1066, 2005. © Springer-Verlag Berlin Heidelberg 2005
1064
A. Shaban-Nejad et al.
The FungalWeb Ontology also reuses existing domain specific bio-ontologies such as Gene Ontology (GO) [7] and TAMBIS [8]. This is done by merging, mapping, sharing common concepts and partially importing instances. By reusing concepts from other generic ontologies, a set of well defined concepts is obtained. The integration is done at two levels: Data and Semantic Integration. Data integration is done by normalizing extracted data into a consistent representation. In order to perform semantic integration these we manually identified the relevant data items and the semantic commonality to bring them in a unified frame of reference. Currently the Ontology contains 3667 concepts, 12686 instances and 157 Properties. Efforts to expand the conceptualization are continuing. Inclusion of more instance data in the knowledgebase allows us to pose richer and more complex queries. Different associative properties were defined to relate individuals of concepts. For example the property “has been reported to be found in” relates an enzyme individual to a corresponding fungal species.
Fig. 1. The major resources included within the FungalWeb Ontology
As shown in Fig.1 most of terminology in the ontology is fungal organisms and fungal enzymes. The classification of fungi presented in the ontology is based on phylum, class, order, family, genus and species. Species are considered as the fungi instances. Enzymes are classified based on catalyzed reactions recommended by the International Union of Biochemistry and Molecular Biology (IUBMB). Enzyme names are defined as the enzyme instances. The evaluation of the ontology is done pragmatically, by assessing the ontology to satisfy the requirements of our application, including determining the logical and semantic consistency. Logical consistency is checked automatically by KR editors and semantic consistency is assisted by the DL reasoner in the identification of correct
The FungalWeb Ontology: Semantic Web Challenges
1065
or miss-classification. Although we sought to validate the biological data and relations by citing their origin (database or literature) or by checking consistency, validation by the domain expert was also necessary. We use RACER [15] as a DL reasoning system with support for T-Box (axioms about class definitions) and A-Box (assertions about individuals) for reasoning on the FungalWeb Ontology and Checking the A-Box and T-Box consistency. On average, Racer solves the posed subsumption problems within fraction of a second. The performance of Racer is highly dependent on the number of individuals and response time grows with the number of individuals. The number of properties does not have an important affect on the response time, but, the number of property fillers has strongest influence on the performance with respect to instance retrieval.
3 Application Scenarios and Semantic Querying We describe real world application scenarios to demonstrate what a bioinformatics application can gain from using ontology-based technologies. We argue for the commercial usage and business feasibility of the ontology by presenting scenarios that show how the diverse needs of the fungal biotechnology manager can be accommodated by semantic querying of an integrated set of data in the ontology. FungalWeb Ontology currently accommodates the application scenarios below [10]. • • • •
Identification of enzymes acting on substrates Identification of enzyme provenance and common taxonomic lineage Identification of commercial enzyme products for enzyme benchmark testing Identifying enzymes with unique properties suited for industrial application
These scenarios are illustrated [10] by posing semantic queries to the FungalWeb knowledgebase using a description logics based query language called nRQL (new Racer Query Language) [11]. nRQL is implemented in Racer with its applicability to OWL Semantic Web repositories to retrieve A-box individuals under specific conditions. nRQL is more expressive than traditional concept-based retrieval languages offered by previous DLs reasoning systems. An example query made to the Ontology: This query retrieves the individuals of vendor name for vendors that sell products containing xylanase enzymes. (RETRIEVE (?x) (AND (?x ?y |http://a.com/ontology#Sells|) (?y ?z |http://a.com/ontology#Contains|) (?z |http://a.com/ontology#Xylanase|) )) Also we use nRQL to retrieve values of annotation properties used to annotate ontological resources. These annotations represent metadata (i.e. comments, creator, date, identifier, source name, source URL, version, etc.) but can not be used for reasoning. This capability can be very useful for the ontology maintenance, versioning and providing proof and trust in a semantic web system. For example the following query retrieves the source(s) for “Enzyme”. (RETRIEVE (|http://a.com/ontology#Enzyme| (TOLD-VALUE (|http://a.com/ontology#Source| |http://a.com/ontology#Enzyme|)))
(BIND-INDIVIDUAL |http://a.com/ontology#Enzyme|))
1066
A. Shaban-Nejad et al.
4 Challenges In the process of employing semantic web technology to develop ontology and a large knowledgebase in the domain of fungal biotechnology, we had to deal with variety of different challenges. Some of the major challenges included; working with highly heterogeneous and volatile data, the integration of ontologies implemented in different languages, with different semantic tools and platforms, and the lack of trustable tools for this purpose. Our ongoing research involves improvement of querying capabilities and using Natural Language Processing (NLP) techniques for ontology update and change management. The project FungalWeb: “Ontology, the Semantic Web and Intelligent Systems for Genomics” is funded by Génome Québec.
References 1. Baker C. J. O., Butler G., and Haarslev V. Ontologies, Semantic web and Intelligent Systems for Genomics. 1st Canadian Semantic Web Interest Group Meeting (SWIG’04) , Montreal, Quebec, Canada (2004). 2. Shaban-Nejad A., Baker C. J. O., Butler G. Haarslev V. The FungalWeb Ontology: Semantic Web Application for Fungal Genomic. 1st Canadian Semantic Web Interest Group Meeting (SWIG’04) , Montreal, Quebec, Canada (2004). 3. National Centre for Biotechnology Information (NCBI) (http://www.ncbi.nlm.nih.gov/). 4. NEWT, UniProt taxonomy browser (http://www.ebi.ac.uk/newt/index.html). 5. Brenda Enzyme Database (http://www.brenda.uni-koeln.de/). 6. SwissProt protein sequence database (http://ca.expasy.org/sprot/). 7. Gene Ontology documentation, (http://www.geneontology.org/doc/GO.doc.html). 8. P.G. Baker, A. Brass, S. Bechhofer, C. Goble, N. Paton, and R. Stevens. TAMBIS: Transparent Access to Multiple Bioinformatics Information Sources. An Overview.In Proceedings of the Sixth International Conference on Intelligent Systems for Molecular Biology (ISMB'98), pages 25-34, California, June 1998. 9. Volker Haarslev, Ralf Möller. RACER System Description. Proceedings of International Joint Conference on Automated Reasoning, IJCAR’2001, R. Goré, A.Leitsch, T. Nipkow (Eds.), June 18-23, 2001, Siena, Italy, Springer-Verlag, Berlin,pp. 701-705. 10. Baker C. J. O., Witte R., Shaban-Nejad A., Butler G., and Haarslev V. The FungalWeb Ontology: Application Scenarios. Eighth Annual Bio-Ontologies Meeting, co-located with ISMB 2005, Detroit, Michigan, USA (2005). 11. M. Wessel, R. Möller. A High Performance Semantic Web Query Answering Engine. International Workshop on Description Logics (DL2005), Edinburgh, Scotland, UK, 2005.
CONFOTO: A Semantic Browsing and Annotation Service for Conference Photos Benjamin Nowack appmosphere web applications, Essen, Germany [email protected] Abstract. CONFOTO1 is a semantic browsing and annotation service for conference photos. It combines recent Web trends with the advantages of Semantic Web platforms. The service offers several tools to upload, link, browse and annotate pictures. Simple forms can be used to create multilingual titles, tags, or descriptions, while more advanced forms allow the relation of pictures to events, persons, ratings, and copyright information. CONFOTO provides tailored and interlinked browsers for photos, people, events, and documents. Remotely maintained photo descriptions can be added to the local knowledge base, data re-use is made possible via customizable syndication functions and a query interface.
1 Introduction CONFOTO is a browsing and annotation service for conference photos. It combines the flexibility of the Resource Description Framework (RDF)[1] with recent Web trends such as keyword-based classification (so-called "folksonomies"[2]), interactive user interfaces[3][4], and syndication of news feeds. The main advantage of utilizing folksonomies is the ease of metadata creation. Online services such as Flickr2 were able to attract a large number of users in a relatively short amount of time. However, simple tagging has its limits, as the retrieval of precise or implicit information is not possible. Additionally, a standardized way to directly re-use data does not exist. RDF, on the other hand, is a framework to create fine-grained annotations, but doesn't enjoy a good reputation in terms of simplicity. CONFOTO is one of the first applications that provides both an end-user-oriented browsing and editing front-end for rich annotations and also a W3C-compliant3 interface[5] to an RDF-based data store. It supports the Semantic Web4 idea by allowing resource descriptions to be imported, created, annotated, combined, exported, and re-purposed.
2 Tools and Features CONFOTO uses a set of wrappers to enable photo and conference data import from several different input formats, e.g. RSS 2.0 feeds from w3photo[6], Atom feeds from 1
http://www.confoto.org/ http://flickr.com/ 3 http://www.w3.org/2001/sw/DataAccess/ 4 http://www.w3.org/2001/sw 2
Y. Gil et al. (Eds.): ISWC 2005, LNCS 3729, pp. 1067 – 1070, 2005. © Springer-Verlag Berlin Heidelberg 2005
1068
B. Nowack
Flickr, or proprietary XML documents from events such ESWC 20055 and XTech 20056. The system can generate and enhance RDF data for uploaded pictures, for image files linked via Web-accessible URLs, and also for photos described in external RDF/XML[7] documents. Semantically, CONFOTO is optimized for information about conferences and photos. However, the RDF model allows any resource description to be freely combined with related objects (e.g. a FOAF[8] file or a list of publications could be associated with a person depicted in a photo). The sections below give an overview of the tools and features currently available at confoto.org. 2.1 Image Upload or Linking Image files can be uploaded via a simple HTML form. A group of uploaded photos can be annotated with associated date, conference, license, copyright, and/or subject information. The system automatically creates image thumbnails and a scaled image for the photo browser. Another option is to not copy already published pictures to the server but to simply add photo URLs to the local RDF store. This is done through CONFOTO's "Link remote images" form which accepts a list of Web locations and allows groupannotations as well. For images which have been described in RDF, the service provides an "Add RDF/XML" form that can be used to import remotely maintained resource descriptions. Again, thumbnails will be created automatically. 2.2 Photo Browser The photo browser is based on a generic RDF viewer which has been adjusted to generate galleries of clickable thumbnails. Several filters can be used to create custom photo sets. Selecting an image opens a details view which shows a larger version of the image and a list of annotations from the RDF store. In case of non-literal annotations that point to related resources (e.g. persons depicted in the selected photo), the browsers provides a list of labels (e.g. titles of publications, or names of persons) and links to other tools such as a person, event, or document browser when available. This functionality is implemented by utilizing inference capabilities of an underlying OWL[9] toolkit[10]. 2.3 Annotators The main difference between CONFOTO and most existing Semantic Web applications is the availability of browser-based annotation forms. Depending on the type of a selected resource, a list of potential relations and attributes is offered to the user. Where possible, the tools support the annotation creation process by interactively suggesting matching resources as shown in Figure 1. This mechanism allows the seamless re-use of data already existing in the RDF store. 5 6
http://www.eswc2005.org/ http://www.xtech-conference.org/2005/
CONFOTO: A Semantic Browsing and Annotation Service for Conference Photos
1069
Fig. 1. Annotator with Suggest-as-you-Type Feature
Annotations can directly be added to the RDF store, whereupon the system's inference scripts are executed, iteratively improving the browsing experience. Annotators are rewarded with enhanced results when they switch back to browsing mode. 2.4 Data Export for Re-use CONFOTO features multiple possibilities to export local data: Each page provides a link to an RDF/XML version of the currently displayed resource(s). Apart from that, machine-readable resource descriptions can be obtained by URIQA[11] requests, and also via a basic SPARQL[12] interface. Finally, as the number of URIQA- or SPARQL-enabled tools is still small, custom photo galleries can be exported as simple RSS 1.0[13] news feeds.
3 Conclusion and Possible Future Work CONFOTO demonstrates the advantages of an RDF-based infrastructure and shows, that end-user-oriented, Web-based annotation tools don't have to be limited to simple tagging, but can also be used to create and augment rich annotations. However, the system is still in an early stage and a lot of things could be improved: To better demonstrate the possibilities of RDF and SPARQL, the browsers need to be extended to offer means for context-specific views such as "all photos taken by this person", or "all events attended by this person".
1070
B. Nowack
CONFOTO maintains provenance information for each annotation. This could be utilized to facilitate navigating the available photos and annotations. The resource browsers support multiple languages, but the ontologies used are currently only available in English. It is planned to translate the labels of selected terms, so that CONFOTO's browsers can be used in different languages.
References 1. Resource Description Framework (RDF). W3C (2004). http://www.w3.org/RDF/ 2. Folksonomy - Wikipedia. http://en.wikipedia.org/wiki/Folksonomy 3. Remote Scripting with IFRAME. Apple Developer Connection (2002) http://developer. apple.com/internet/webcontent/iframe.html 4. Garrett, J. J. Ajax: A New Approach to Web Applications. (2005) http://www.adaptivepath. com/publications/essays/archives/000385.php 5. Clark, K. G. SPARQL Protocol for RDF. W3C. http://www.w3.org/TR/rdf-sparqlprotocol/ 6. w3photo - A Semantic Photo History of the IW3C2 Conferences. http://w3photo.org/ 7. Beckett, D. RDF/XML Syntax Specification (Revised). W3C (2004). http://www.w3. org/TR/rdf-syntax-grammar/ 8. the friend of a friend (foaf) project http://www.foaf-project.org/ 9. Patel-Schneider, P. F., Hayes, P., Horrocks, I. OWL Web Ontology Language Semantics and Abstract Syntax. W3C (2004). http://www.w3.org/TR/owl-semantics/ 10. Nowack, B. OWLCHESTRA: Facilitating the Development and Publishing of Small-Scale Web Ontologies. (2004). http://www.appmosphere.com/prod/media/ owlchestra_demo_esws2004.pdf 11. Stickler, P. URIQA: The Nokia URI Query Agent Model. (2003) http://sw.nokia. com/uriqa/URIQA.html 12. Prud'hommeaux, E., Seaborne, A.: SPARQL Query Language for RDF. W3C (2005). http://www.w3.org/TR/rdf-sparql-query/ 13. RDF Site Summary (RSS) 1.0. http://web.resource.org/rss/1.0/spec
Author Index
Abel, Fabian 1050 Ackland, Ross 816 Alani, Harith 829 Allemang, Dean 844 Analyti, Anastasia 21 Angele, J¨ urgen 1029 Ankolekar, Anupriya 37 Antoniou, Grigoris 21, 216 An, Yuan 6 Au, Tsz-Chiu 52 Avesani, Paolo 67 Baclawski, Kenneth 944 Baget, Jean-Fran¸cois 82 Balke, Wolf-Tilo 491 Baker, Christopher J.O. 1063 Basili, Roberto 97 Battle, Steven A. 987 Baumgartner, Robert 1050 Benjamins, V.R 1002 Bernstein, Abraham 112 Biasuzzi, Chistian 872 Blacoe, Ian 653 Bl´ azquez, M. 1002 Borgida, Alex 6 Brass, A. 786 Brooks, Adrian 1050 Buitelaar, Paul 593 Butler, Greg 1063 Cabral, Liliana 171 Cameron, Mark 816 Cammisa, Marco 97 Christophides, Vassilis Collins, Trevor 127 Contreras, J. 1002 Corby, Olivier 247 Dam´ asio, Carlos Viegas d’Aquin, Mathieu 142 De Troyer, Olga 578 Dean, Mike 974 Deng, Jianming 1054 Ding, Li 156 Ding, Zhongli 563
506, 607, 685
21
Domingue, John 171 Donati, Emanuale 97 Drummond, Nick 745 Edwards, Gary 1041 Ehrig, Marc 186 Enzi, Christian 1050 Ermolayev, Vadim 201 Esplugas-Cuadrado, Javier
987
Fang, Weijian 801 Ferraro, Massimo 872 Finin, Tim 156 Flouris, Giorgos 216 Fonti, Roberto 872 Friedrich, Gerhard 232 Galizia, Stefania 171 Gandon, Fabien 247 Gangemi, Aldo 262 Gao, Zhiqiang 1054 Garc´ıa-Castro, Ra´ ul 277 Garg, Shishir 858 Ghita, Stefania 293 Giboin, Alain 247 Giereth, Mark 308 Gilardoni, Luca 872 Giunchiglia, Fausto 67 Goble, Carole 1, 323 Goderis, Antoon 323 G¨ ohring, Anne 112 G´ omez-P´erez, Asunci´ on 277 Goswami, Amit 858 Gottlob, Georg 1050 Grimm, Stephan 987 Gronnier, Nicolas 247 Grosof, Benjamin 974 Grosso, William 974 Groth, Paul 801 Guigard, Cecile 247 Guo, Yuanbo 338, 758 Haarslev, Volker 1063 Haase, Peter 353, 1059 Haglich, Peter 446, 1041
1072
Author Index
Hasegawa, Tetsuo 902 Heflin, Jeff 338, 758 Hendler, James 461 Henze, Nicola 1050 Herzog, Marcus 1050 Heymans, Stijn 368 Hitzler, Pascal 383 Hodgson, Ralph 844 Hoffman, Mark 1041 Hongsermeier, Tonya 887 Horridge, Matthew 745 Horrocks, I. 786 Huang, Zhisheng 353, 398 Huylebroeck, J´er´emy 858 Huynh, David 413 Jaganathan, Senthil 858 Jaiswal, Anuj Rattan 537 Janik, Maciej 431 Joshi, Anupam 156 Kalfoglou, Yannis 829 Karger, David 413 Karvounarakis, Grigoris 685 Kashyap, Vipul 887 Katrenko, Sophia 732 Katz, Yarden 461 Kaufmann, Esther 112 Kawamura, Takahiro 902 Keberle, Natalya 201 Kettler, Brian 446, 1041 Khushraj, Deepali 916 Kiefer, Christoph 112 Knublauch, Holger 974 Kochut, Krys 431 Koffina, Ioanna 607 Kokar, Mieczyslaw M. 944 Kolari, Pranam 156 Kollias, Stefanos 624 Kolovski, Vladimir 461 Koubarakis, M. 506 Kriesell, Matthias 1050 Kumar, Arun 476 Kurakake, Shoji 959 Kuter, Ugur 52 Lassila, Ora 916 Lefort, Laurent 816 L´eger, Alain 928 Letkowski, Jerzy J. 944
Li, Qi 887 Lieber, Jean 142 Lithgow-Smith, Ben 638, 653 Lord, Phillip 323, 786 Losco, Jason 1041 L¨ oser, Alexander 491 Magiridou, M. 506 Martos, I. 1002 Matheus, Christopher J. 944 Matzke, Wolf-Ekkehard 201 Mazzocchi, Stefano 413 Mika, Peter 522 Miles, Simon 801 Miller, William 446 Mitra, Prasenjit 537 Mittal, Sumit 476 Morales, Alfredo 887 Moreau, Luc 801 Motik, Boris 548 Moyaux, Thierry 638 Mulholland, Paul 127 Mullan, Pramila 858 Musen, Mark 974 Mylopoulos, John 6 Nagano, Shinichi 902 Naganuma, Takefumi 959 Napoli, Amedeo 142 Nau, Dana 52 Navarro, D. 1002 Nejdl, Wolfgang 293, 491, 1050 Nixon, Lyndon J.B. 928 Nowack, Benjamin 1067 Noy, Natasha F. 537 O’Connor, Martin 974 O’Hara, Kieron 829 Ohsuga, Akihiko 902 Paiu, Raluca 293 Palma, Ra´ ul 1059 Pan, Rong 156, 563 Paolucci, Massimo 37 Parsia, Bijan 461 Pat´ on, D. 1002 Paurobally, Shamimabi 638 Peng, Yun 156, 563 Plessers, Peter 578 Plexousakis, Dimitris 216
Author Index Polikoff, Irene 844 Preist, Chris 987 Qasem, Abir 758 Qu, Yuzhong 1054 Quilitz, Bastian 491 Rahman, Joel 816 Rector, Alan 745 Rodrigo, L. 1002 Sahtouris, S. 506 Salla, R. 1002 Sattler, Ulrike 323, 786 Sauermann, Leo 1016 Schnurr, Hans-Peter 1029 Schreiber, Guus 732, 773 Schutz, Alexander 593 Schwarz, Sven 1016 Seidenberg, Julian 745 Serfiotis, Giorgos 607 Shaban-Nejad, Arash 1063 Shadbolt, Nigel 829 Shchekotykhin, Kostyantyn 232 Shvaiko, Pavel 928 Slavazza, Piercarlo 872 Spector, Alfred Z. 4 Srivastava, Biplav 476 Staab, Steffen 186, 491 Stamou, Giorgos 624 Starz, James 446, 1041 Stevens, R. 786 Stoilos, Giorgos 624 Stuckenschmidt, Heiner 353, 398 Sure, York 186, 353, 716 Sycara, Katia 37 Tamma, Valentina 638, 653 Tannen, Val 607 Taylor, Kerry 816 Tempich, Christoph 491
Tena, P. 1002 Theoharis, Yannis 685 ter Horst, Herman J. 668 Tomaschewski, Kai 1050 Tu, KeWei 702 Tu, Samson 974 Turi, D. 786 Ueno, Kouji
902
van Aart, Chris 638 van Hage, Willem Robert 732 van Harmelen, Frank 353 Van Nieuwenborgh, Davy 368 V¨ olker, Johanna 716 Vermeir, Dirk 368 Vladimirov, Vladimir 201 Vrandeˇci´c, Denny 383, 716 Wagner, Gerd 21 Wang, Hai 745 Wang, Sui-Yu 758 Weitzner, Daniel J. 5 Wielemaker, Jan 773 Wielinga, Bob 773 Williams, Stuart K. 987 Wolstencroft, K. 786 Wong, Sylvia C. 801 Wooldridge, Michael 638, 653 Xiong, Miao
702
Yatskevich, Mikalai Yu, Yang 563 Yu, Yong 702
67
Zdrahal, Zdenek 127 Zhai, Yuqing 1054 Zhang, Jie 702 Zhang, Lei 702 Zhu, HaiPing 702
1073