Integrating Community Services - A Common Infrastructure Proposal Michael Koch, Martin S. Lacher Technische Universit¨at M¨unchen, Munich, Germany fkochm,
[email protected]
Abstract Computer based community systems can provide powerful support in knowledge transfer, both in the direct exchange of information and in finding people to exchange information with. Several such information exchange and expert finding services have already been implemented. The problem of current approaches is, that they are not able to exchange data with each other. User profile information and contributed information have to be entered separately for every community-based information system. So, what one system has learned is not available for other systems. In this paper we present our ideas for a community services infrastructure as an enabling technology for further integration of community related services.
1 Introduction As more and more users and more and more services come on the Internet, users are finding themselves increasingly overwhelmed with the available information. It has become difficult to find relevant information and to make informed choices about what is relevant and of good quality and what is not. One solution to this problem involves delivery of highly customized and personalized information to end users. This can be done (semi-)automatically using information about the interests and about the context of a user (user profile). In most of the work done in the fields of Information Retrieval and Information Filtering the user is modeled in isolation and this model is matched against meta information of the documents (content based filtering). Other systems try to overcome problems with the externalizing of interests or the creation of document meta data by making use of correlations among users and ratings by different users ((automated) collaborative filtering). Explicitly asking experts for their recommendations is another way to acquire information. To support people finding these experts, again user profile information is needed. For acquiring user profile information, for doing basic information filtering, and for finding experts,
communities are a good place to look at: People who share some interest usually are better resources for information than non correlated sources. People who share some interest are a good preselection for finding experts in this area. Currently a lot of so called ‘online communities’ are emerging (Figallo 1998; Hagel & Armstrong 1997). These are Web sites dedicated to one topic where a user signs up explicitly and which the user visits from time to time. During the visits the user participates explicitly by publishing information or comments. Some of the sites are sponsored and maintained by companies, others are set up by noncommercial groups. The idea with online communities is to provide a platform where people can meet other people and can exchange information. One problem of current approaches is, that they lack the possibility to exchange data with each other: 1 A user has to log on to different online communities manually and provide his profile information again and again. There is no possibility to distribute new information to different communities in one step. Information gained by one community cannot be used by another. So there is a need for standards, need for common scalable infrastructure and for categorization schemes. In this paper we first briefly review possibilities of community support in knowledge transfer (Section 2 and 3) and then present our ideas for the infrastructure (Section 4). In Section 5 we present two ongoing projects that make use of this infrastructure.
2
Communities
In general a community is a group of people who share some interest or belong to the same context. 1 The exchange problem and the problem of reusing user profiles is not a unique problem to community support systems, but a general problem in disconnected information systems.
So a community can be seen as a describing identity for a set of people. Mynatt et al. concretize a bit more: ”[A community] is a social grouping which exhibit in varying degrees: shared spatial relations, social conventions, a sense of membership and boundaries, and an ongoing rhythm of social interaction” (Mynatt et al. 1997). Examples for communities are all students in a university department, all inhabitants in a neighborhood or all people interested in collaborative filtering. Looking at different examples of real life communities, one can roughly distinguish communities formed by people who are interested in the same topic and communities of people who share some kind of common environment. The first kind of communities is called ‘communities of interest’, the latter ‘communities of practice’. Communities of Practice are communities made up of people who interact on a regular basis (Wenger 1998). Characterizing is that the people have worked together some time; what glues them together is a sense of purpose and a need to exchange information (Brown & Shillner 1995).
News- and Chat-systems (including different kinds of community networks) provide a place to meet and a communication medium. Buddy-systems like ICQ or the AOL Instant Messenger provide detailed awareness information. Online communities provide a place to communicate, awareness and a rich functionality for storing and retrieving (community) information. Recommender systems like MovieCritic2 , Knowledge Pump (Glance, Arregui, & Dardenne 1998; 1999) or Jester (Goldberg et al. 1999) do matchmaking on the basis of a user profile and then provide recommendations based on ratings of other community members. Other systems like Referral Web (Kautz, Selman, & Shah 1997) and Yenta (Foner 1997; 1999) are focused towards expert finding and explicit matchmaking. The problem with all these systems is, that they are not connected. Usually a person is member of several communities. People have to enter their profile information and community information again and again and have to visit several places and interact with them.
4 3 Community Support As already mentioned in the introduction, (virtual) communities are a good place to look at for getting filtered information and for finding experts. According to this the idea behind community support is firstly to provide a means where people can exchange their questions and comments. Secondly, the knowledge about common interests in a community and the information in the community members user profiles can be used for information filtering and support for individual and collaborative tasks of community members.
3.1
Basic Concepts
Communities may be supported in three different ways. In the following list we summarize the basic support concepts: 1. Provide a medium for communication and for exchange of information and comments. This information may be collected and stored for later reference and retrieval. 2. Discover and visualize relationships (membership in the same community, existence of common interests). This can support people in finding possible cooperation partners for direct interaction. The goal is to help people finding other people that may help them (matchmaking, expert finding). 3. Usage of the knowledge about relationships to perform (semi-)automatic filtering and personalization. The community helps to reduce the search and enable to deal with the information overload.
3.2
Existing Community Support Tools
There are already several systems that are implementing aspects of these basic support concepts.
Community Support Infrastructure
A community support infrastructure has to support communication among different communities and between user and communities. Support has to enable users to contribute both profile information and content to communities easily. In this section we propose an agent based infrastructure with agents that are organized in personal and community agencies. Information that is private to the user is administered in the user agencies which are located near the user, and team and community relevant information is administered in the community agencies. The main reasons for the separation beneath scalability are the higher trust of users if the users information stays near them, the possibility of reuse if user information is available from a user managed location, possibility to control/monitor usage of own profile information, possibility to define different access rights for the profile information.
4.1
Agents
Basis of our infrastructure is a software agent platform. The agent paradigm provides a good modularization scheme as well as for loose coupling among functional components (agents). This assures an open architecture and easy integration of future components. Communication among agents is done using FIPA ACL, the agent communication language defined by 2
See http://www.moviecritic.com/
FIPA3 . An agent communication language defines the basic structure of messages between agents with precisely defined syntax, semantics and pragmatics 4. This makes it possible to use the language to communicate between independently designed software agents. So the basic infrastructure primarily takes care of modularization and communication among the modules (agents). Additional parts of the infrastructure are a standard (LDAP/X.500) directory service for finding agents and a set of security components that take care of authorization and access right checking.
4.2
User Agency
The user agency provides means for managing the user profile and for requesting and posting information from and to community agencies. It consists of the profile agent, the knowledge pump agent and the awareness agent. Additionally, there can be user portal agents, matchmaking agents and more. The profile agent keeps a qualification/interest profile of the user. The profile stores demographic information, relationship information, ratings, and links to information contributed to communities. Since this information should be applicable for different services and communities there is a need for general structures and schemas. Therefore, we are currently investigating shared ontologies. A shared ontology provides a concept of the team knowledge domain. According to this concept, the existing knowledge of the user can be classified and respective knowledge nodes can be marked as existent or non-existent. The awareness agent watches the user’s work context. Observed user actions may be published to other agents in the personal or community agency (via the event agent). Additionally, a work context and a work plan may be inferred from the information and stored in the user profile. This context and plan may be used to request information for the user or to personalize displayed information. The awareness agent itself is part of a larger awareness infrastructure including awareness agents in the community agencies. The knowledge pump agent requests the work context and further profile information from the profile agent. From this information it determines what information may be helpful for the user to perform the current task. The knowledge pump sends a request for this information to different information sources including the communities. The functionality of a knowledge pump is shown by the example of the Xerox Knowledge Pump in (Glance, Arregui, & Dardenne 1998; 1999). 3 Foundation for Intelligent Physical Agents; for more information see http://www.fipa.org/ 4 For the semantics and pragmatics part agent communication languages usually make use of speech act concepts.
4.3
Community Agency
The main task of a community agency is to support information exchange. It provides functions to publish information and comments, to request published information and comments either through a query (pull) or through a subscription (push). Thereby, information is content, meta information on content and information about the users. Other agents in the community agency may make use of the information to provide recommendations (meta information exchange) or perform automated and non-automated collaborative filtering. In our agency we have implemented one agent that calculates user correlations and another one that makes use of these correlations to calculate recommendations. The general concept behind this idea are dedicated matchmaking agents that find matching users (proactively or on request) and notify the users (or store the information in their user profile). The community agency makes its information available to other agents through the agent infrastructure. Additionally, we have implemented community portal agents that provide HTML portals to users that connect to it with an HTML browser (and authenticate).
5
Cobricks Projects
In the past we have been incrementally implementing this architecture in the IMC group 5 and in the Cobricks project 6 . The goal of the Cobricks project is to build a set of agents supporting information flow by exploiting community concepts and user profile information. Two sub-projects currently on the way inside Cobricks are of particular interest for the discussed topic: ‘Informationsdrehscheibe Informatik’ and ‘CoMovie’. The project Informationsdrehscheibe Informatik 7 implements an online community for the Informatics department at our university. The basis of the community is an electronic course catalog and functionality to access the information and to use it for planing ones schedules. In addition to this information system functionality the system offers the possibility to publish course annotations and additional information that is relevant for the students or for the department. Access to the community is provided through a web portal. Current activities include providing personalized access to the community. Therefore, we converted the 5 The IMC group is a group of researchers from two universities in Munich who collaborate in building a common infrastructure for ‘Information Management for Communities’. 6 Cobricks = (Software) bricks for supporting communities is a project at Technische Universit¨at M¨unchen. See http://www11.in.tum.de/proj/cobricks/ for more information on Cobricks. 7 See http://drehscheibe.in.tum.de/
service to a community agency. The agency stores the course information, annotations on courses, links to further information, messages etc. In addition to that, a list of community members is maintained. Community members provide personal agencies 8 that store basic attributes and interest information about them (user profile). Based on the profile the community agent decides for incoming messages to whom to send them proactively. Additionally, a personalized web portal is offered that shows information that might be of special interest for a particular user. In CoMovie9 we are building an open movie recommender system. Therefore, the collaborative filtering service was split into two parts (agents): The first part calculates correlations from user profile rating information and stores the calculated correlations in the user profiles as interest relations. The second part uses the calculated and other relations from the user profile to recommend movies. From the architectural point of view we have a community agency that stores a user list and movie comments. In addition to storage functionality the agency provides the correlator and collaborative filtering agents. The agency is accessed through a web interface.
6 Conclusion and future work In this paper we briefly outlined the possibilities communities provide for enhanced information management and filtering. For tackling the problem of interoperability among community support systems we introduced an agent-based architecture for building community support systems and presented two projects that are built based on this architecture. More information on our work can be found in (Lacher & Koch 2000) and on the Cobricks web site (http://www11.in.tum.de/proj/cobricks/). Related to this work are some approaches in the web community addressing protocols for exchanging profile information (e.g. P3P and APPEL from the W3C, see http:/www.w3.org/) and the representation of meta-data (e.g. RDF from the W3C). The problem we have not addressed much is categorization of information and interests. Such a categorization has to be flexible enough to be used in different contexts but sharp enough to be used for effective filtering. This is the main topic of our ongoing work. Our first approaches in this area are based on existing work on meta-data and ontologies. Another problem is how the proposed approach integrates with diverse existing community support systems (e.g. various online communities) and with existing user profile repositories (e.g. directory services). Here we are experimenting with different 8 Since not everybody will install his own user profile agent, there is a central user profile agent that can be used to host user profiles. 9 See http://www11.in.tum.de/proj/cobricks/comovie/
gateway or wrapper approaches for making the existing systems agents in our architecture. In this context one has also to mention the problem of common user management which nevertheless addresses privacy issues. Here we are looking at industry solutions like Novell’s Digital Me or Microsoft’s Passport and are setting up a decentralized architecture based on LDAP/X.500 directory services.
References Brown, M. H., and Shillner, R. A. (1995). Deckscape: An experimental web browser. Technical report, DEC Systems Research Center, Palo Alto, CA. Figallo, C. (1998). Hosting Web Communities. Wiley Computer Publishing, New York. Foner, L. N. (1997). Yenta: A multi-agent, referralbased matchmaking system. In First International Conference on Autonomous Agents. Foner, L. N. (1999). Political Artifacts and Personal Privacy: The Yenta Multi-Agent Distributed Matchmaking System. Ph.D. Dissertation, Massachusets Institute of Technology. Glance, N.; Arregui, D.; and Dardenne, M. (1998). Knowledge Pump: Supporting the Flow and Use of Knowledge in Networked Organizations. Springer Verlag, Berlin. Glance, N. S.; Arregui, D.; and Dardenne, M. (1999). Making recommender systems work for organizations. In Proc. Intl. Conf. on Practical Application of Intelligent Agents and Multi-Agents (PAAM). Goldberg, K.; Gupta, D.; Digiovanni, M.; and Narita, H. (1999). Jester 2.0: Evaluation of a new linear time collaborative filtering algorithm. In Intl. ACM SIGIR Conf. on Research and Development in Information Retrieval. Hagel, J., and Armstrong, A. G. (1997). net gain - expanding markets through virtual communities. Harvard Business School Press. Kautz, H.; Selman, B.; and Shah, M. (1997). Referral web: combining social networks and collaborative filtering. Communications of the ACM 40(3):pp. 63–65. Lacher, M. S., and Koch, M. (2000). An agentbased knowledge management framework. In Proc. AAAI Spring Symposium 2000. Mynatt, E. D.; Adler, A.; Ito, M.; and ODay, V. L. (1997). Design for network communities. In Proc. ACM SIGCHI Conf. on Human Factors in Compt. Syst. Wenger, E. (1998). Communities of Practice: Learning, Meaning and Identity. Cambridge University Press.