Knowledge-Based Systems 24 (2011) 427–443
Contents lists available at ScienceDirect
Knowledge-Based Systems journal homepage: www.elsevier.com/locate/knosys
Knowledge sharing in dynamic virtual enterprises: A socio-technological perspective Pingfeng Liu a,b,⇑, Bijan Raahemi a, Morad Benyoucef a a b
Telfer School of Management, University of Ottawa, 55 Laurier, E., Ottawa, Canada ON K1N 6N5 School of Economics, Wuhan University of Technology, 122 Luoshi Road, Wuhan 430070, China
a r t i c l e
i n f o
Article history: Received 28 January 2010 Received in revised form 12 December 2010 Accepted 12 December 2010 Available online 17 December 2010 Keywords: Knowledge sharing Virtual enterprise Agent society Semantic ontology Human centered solution
a b s t r a c t The success of a virtual enterprise depends largely on the effective collaboration of its members in orchestrating their knowledge, skills, core competences and resources, in order to enhance competitive capabilities and respond better to business opportunities. In this paper we address the challenges of knowledge sharing in dynamic virtual enterprises. We take a socio-technological approach by proposing a human-centered knowledge sharing solution and architecture. Specifically, we propose a knowledge resource space model to represent heterogeneous knowledge resources, both explicit and implicit. We then introduce a knowledge sharing community model and adopt an agent based solution to perform the functions of knowledge sharing among members of a dynamic virtual enterprise. Our solution incorporates the concepts of agent society and semantic ontology. Knowledge sharing in dynamic virtual enterprises is performed with three types of ties: knowledge agent to knowledge agent, knowledge agent to knowledge item, and knowledge item to knowledge item. We measure agent-to-agent ties by preference correlation using the contribution degree of one agent to another and the preference similarity degree between two agents. We define a semantic view to show agent-to-item ties and use semantic links in the knowledge resource space model to reflect item-to-item ties. We also elaborate the co-evolution mechanism of collective intelligence across enterprises throughout the lifecycle of a dynamic virtual enterprise. A case study is presented to validate our approach. Ó 2010 Elsevier B.V. All rights reserved.
1. Introduction Entities such as individuals, groups, enterprise units or entire organizations, although maybe geographically dispersed, can collaborate with each other to fulfill their common goals by exploiting the latest developments in network technologies, and pooling together their resources and competences. A virtual organization (VO) represents an organizational structure of inter-personal or inter-organizational collaboration supported by virtual networks. VO’s are assuming an increasingly prominent role against the background of today’s dynamic environment [31]. The definition of a virtual enterprise (VE) was put forward by LM Camarinha-Matos and Afsarmanesh [4] as a temporary alliance of enterprises that comes together to share skills or core competencies and resources in order to better respond to business opportunities, and whose cooperation is supported by computer networks. VE’s can be classified as static or dynamic [17]. A static VE integrates business entities in outsourcing in a rather static way. A dynamic VE is formed, ⇑ Corresponding author at: School of Economics, Wuhan University of Technology, 122 Luoshi Road, Wuhan 430070, China. E-mail addresses:
[email protected] (P. Liu),
[email protected] (B. Raahemi),
[email protected] (M. Benyoucef). 0950-7051/$ - see front matter Ó 2010 Elsevier B.V. All rights reserved. doi:10.1016/j.knosys.2010.12.004
managed and monitored by a leader who is one of the enterprise members and is able to select partners while forming a VE [6]. However, the success of a dynamic VE depends largely on the effective orchestration of the skills, knowledge, core competences and core resources of its members to offer value-added benefits throughout the VE’s lifecycle. With the aid of virtual networks, business activities are usually conducted automatically by online applications. With the division of labor and specialization of core competences, the execution of those business activities often involve inter-organizational cooperation, which results in the exchange and creation of knowledge associated with the business activities. The successful outcome of teamwork in a dynamic VE relies on how well the members are able to share and create knowledge across disciplinary, spatial and/or cultural boundaries either asynchronously or in real-time [27]. Knowledge can be explicit or implicit [24]. Explicit knowledge within an organization can be represented using rules, ontologies, cases, models, data, manuals or other forms. It is usually stored in knowledge repositories which can be directly exploited by knowledge-based systems or humans to solve specific problems. Implicit knowledge, on the other hand, is subjective, experience-based and often context-specific, making it hard to be expressed in a particular language. Studies show that socialization, face-to-face commu-
428
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
nications and dialogue are powerful vehicles for knowledge sharing [31]. Compared to knowledge sharing within an enterprise, knowledge sharing in a dynamic VE is more challenging due to the following considerations: – A dynamic VE represents a dynamic organizational structure where members may join or leave freely, which hinders the establishment and development of a solid infrastructure for knowledge sharing among its members. – Different members might adopt different knowledge management strategies and technologies. The heterogeneity of knowledge representation inhibits direct interaction and exploitation of the shared knowledge. – The risk of losing core competences by sharing knowledge with partners requires a balance between controlling the access to each member’s knowledge resources and opening up these resources to partners so as to maximize the added value of business activities. – Implicit knowledge is mainly stored in the brain of each individual and cannot be handled by knowledge based systems. The social nature of humans needs to be incorporated into the knowledge sharing mechanism to help the right people locate the right knowledge at the right time. Many approaches to knowledge sharing in VO’s have been proposed to tackle the problems listed above from strategic, methodological and technological perspectives. However, those approaches exhibit at least three shortcomings. The first one is that a centralized (instead of distributed) architecture of knowledge sharing and integration is often assumed, resulting in difficulties to adapt to the dynamic structures of VE’s and vulnerabilities to single points of failures. The second is that a process-centered (instead of humancentered) view is adopted, although humans are the active creators and users of the knowledge. The third one is that it still remains unclear how to share tacit knowledge across organizations, although team interactions and face-to-face communications are usually proposed to manage tacit knowledge in an enterprise. The dynamic nature of VE’s calls for new knowledge to be generated to cope with the volatile markets and the ever-changing operating environment. Coming from practice, that new knowledge is mostly dispersed across users interacting with the markets and environment. An organization’s memory embedded in business processes may become an obstacle to acquiring new knowledge for new practices [32]. While it can handle a situation experienced before and work quite well in a relatively static enterprise or VE, it can hardly handle new situations in a timely fashion and be adapted to the agile knowledge sharing in dynamic VE’s. Huang [12] took an evolutionary perspective to address the problem of knowledge creation in a dynamic environment and highlighted that the knowledge creation process is self-organizing and spiral, starting at the individual level and moving up through expanding communities of interactions that cross sectional, departmental, divisions, and organizational boundaries. Huang’s work supports our idea that a human-centered approach incorporating social interactions needs to be developed for knowledge sharing in dynamic VE’s. In this paper, we focus on the socio-technological perspective of knowledge sharing in dynamic VE’s and propose a human-centered knowledge sharing solution and architecture by taking advantage of agent and semantic ontology concepts and technologies. The next section provides an overview of the related work. Section 3 describes the knowledge resource space model and knowledge sharing community model. Section 4 explores the community framework including the agent architecture, and the knowledge resource discovery mechanism, knowledge sharing process, and community evolution throughout the lifecycle of VE’s. Section 5 presents a case study and Section 6 concludes the paper.
2. Related work Since the concept of VE emerged in the early 1990s, there has been much discussion regarding its definition and characteristics. While Kanet et al. [17] proposed that VE’s could be classified into dynamic and static, many authors distinguish VE’s from a mere integration of business entities in outsourcing, and see VE’s as dynamic alliances formed by cooperative partners to quickly respond to the rapidly changing business environment [9]. Some of them use terms such as Agile Virtual Enterprises (AVE’s) [30] or Dynamic Virtual Enterprises [6] specifically to address the agile and dynamic characteristics of VE’s. Kim et al. [19] argued that agility and interoperability are the main requirements for VE’s. VE’s reveal that more complex and dynamic business processes should be considered as assembled service components in order to integrate the collaborative business processes [18]. A basic problem with knowledge sharing in VE’s is where to locate the requested knowledge. Some researchers tried to answer this question by studying the knowledge structure of organizational memory. Beig and Ghavamifar [1] took three interrelated organizational elements of a VO (virtual web platform, virtual web management, and dynamic virtual corporations) into consideration, and proposed four building blocks, namely personal memory, project memory, cultural memory and net-broker memory as the components of a VO’s organizational memory. While some knowledge of those blocks can be coded and stored in knowledge repositories, other (tacit) knowledge remains in the brains of humans. The concept of Transactive Memory System (TMS) was originally employed to describe sets of directories used to locate, allocate and retrieve knowledge in pairs and small groups. Jackson and Klobas [14] conducted a case study revealing that the basic TMS processes and directories appear to be present at an organizational level with observations indicating that the social behavior of personal contacts with the help of directories plays an active role in the transfer of knowledge, especially the tacit one. Yang et al. [37] integrated knowledge maps in the design process of concurrently engineered products. By collecting the relevant knowledge artifacts and locating tacit knowledge sources, design process knowledge maps are specified and used not only for showing which knowledge is relevant to whom at which design stage, but also for guiding designers to access/locate the required knowledge. In this way, knowledge maps facilitate the reuse and sharing of explicit and tacit knowledge in design processes. However, since a typical knowledge map often falls short of a semantic structure of knowledge, an ontology may be required to describe its conceptual content and formalize its domain in order to clearly regulate it and to describe and define its structure, its rules and restrictions [6]. Agent, service and ontology technologies are widely used in knowledge integration within VE’s. According to Camarinha-Matos and Afsarmanesh [5] and Li and Xiao [20], agent societies seem to be the most promising approach for the development of VE management. Agent-based modeling has become an increasingly attractive methodology in modeling various social and natural complex systems thanks to the four distinct characteristics of agents: autonomy, interactivity, reactivity and proactiveness [34]. Bergamaschi et al. [2] developed a system composed of a Collaborative Project Management component supported by a Project Collaborative Portal as the user interface. The Integration Framework is implemented by means of a multi-agent system supporting information sharing and querying, and web services to guarantee the interoperability of the software components. He et al. [11] put forward Knowledge Management Sphere (KMSphere) to explore important aspects of service-oriented and ontology-driven knowledge management on the grid to provide uniform mechanisms for semantic-based access to distributed data repositories
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
in data-intensive environments. Ganzha et al. [10] proposed an agent-based VO where personalized information delivery is facilitated through ontological demarcation and semantic reasoning. The roles in the VO are analyzed as to whether to be undertaken by agents or by humans. Cheng Leong et al. [7] described some key issues in implementing data integration in VE’s using semantic web services. The architecture of the proposed infrastructure adopts a mediated ontology approach to data integration where each data source is described by its own ontology, and translations between different ontologies are done by means of mediation. Due to the semantic reasoning capability of ontologies, they are also exploited in knowledge access control. Chen [6] suggested an ontology-based knowledge sharing model and a multiple-layer knowledge representation framework. He further developed knowledge access control methods for VE’s, including an ontology-based access control model, an authorization propagation model for knowledge sharing, and a knowledge access control policy language framework. Furthermore, cognitive models and artificial intelligence are incorporated into agents or software components so that they can mimic human cognitive behavior for learning knowledge, sharing knowledge, or interacting with humans intelligently. Mahalakshmi and Geetha [23] proposed an approach for learning new knowledge by argumentative reasoning in artificial knowledge societies. They presented an ontology model, namely NORM, to represent cognitive knowledge. Through argumentative reasoning based on NORM, an agent updates the knowledge base with the information obtained from the trusted opponent during the argumentation process. Fujita et al. [8] explored intelligent human centric computing that can mimic a specific human cognitive behavior. They exploited cognitive analysis technologies, especially facial and voice analysis technologies, to achieve the best engagement between a human user and a software application. Burden [3] explored the challenges of deploying an embodied AI in a virtual world and how the Turing Test relates to robotars in virtual worlds. He developed a technical architecture for deploying chatbot driven avatars within the Second Life virtual world. This architecture comprises four main elements: an AIML (Artificial Intelligence Markup Language) derived chatbot engine (called Discourse), a higher level brain, a virtual world, and the Second Life virtual world server and client system. Most enterprise-based knowledge management systems require a corporate infrastructure to operate and are generally inflexible in supporting instant, ad hoc and intensive collaborations. In the new economy, collaborations are rapidly changing from within organizational boundaries to across organizational boundaries, hence peer-to-peer (p2p) knowledge management is proposed to extend sharing between individuals with sharing within groups of peers [35]. Knowledge sharing based on p2p is believed to be more suitable for VE’s due to p2p’s intrinsic nature of being adaptive to dynamic organizational structures. Wang et al. [33] examined the knowledge sharing characteristics and roles of Communities of Practice (CoP) and developed a p2p knowledge sharing architecture that matches the behavioral characteristics of CoP members. They also proposed a p2p knowledge sharing tool that enables members of a CoP to voluntarily share and retrieve knowledge more effectively. To improve the performance of resource discovery in a p2p knowledge management system, techniques are developed to restrict the search to small groups (i.e., communities) instead of the whole p2p network. One such technique consists on forming community topologies through the self-organization of peers based on their interests. Peers dynamically adjust their configuration and gradually move to the right community as their interests change. This mechanism leads to a flexible and scalable community formation technique [15]. Social network behavior is incor-
429
porated into p2p knowledge systems so that peer nodes learn from previous searches and no additional overhead is required to obtain extra knowledge from neighboring nodes [21]. Therefore, the common interests of peers can be determined and recommendation of knowledge can be made to the peer who needs it [13]. Finally, semantic ontology concepts have also been incorporated into p2p knowledge systems to realize semantic community overlays [16]. Although p2p systems provide a flexible and agile infrastructure for knowledge sharing in VE’s, differences exist between the structure of the pure p2p systems mentioned above and the structure of a VE which comprises allied enterprises. Both organizations and individuals in a VE can be treated as nodes of a collaborative network. However the social relationship of individuals interacting with each other while affiliated with an organization must be considered. In this paper, we advocate a human-centered knowledge sharing approach, imitating human social behavior while minimizing the risk of losing core competences to competing organizations. 3. Knowledge sharing model 3.1. Knowledge resource space model Knowledge sharing is too often hampered by the heterogeneity of knowledge representation in VE’s since different nodes of the collaborative network may adopt different knowledge representation mechanisms. Note that ontology has been used to annotate explicit knowledge resources. To ensure an unambiguous understanding of knowledge resources among members of a VE, a uniform knowledge representation model needs to be developed for both explicit and implicit knowledge. To address this problem, we propose a knowledge resource space model based on the works of Zhuge [39,40]. We define our knowledge resource space model in VE’s as follows: Definition 1. A knowledge resource space is represented by a three-dimensional space KS (Owner, Category, Location) where KS is the name of the unique knowledge resource space of a VE with a dimension denoted by jKSj. Owner refers to who owns the knowledge resource item (KRI) in the knowledge resource space. Its value can be represented as the domain name of the enterprise plus an individual identifier which is network node ID (for explicit knowledge) or personal ID (for implicit knowledge). Category is the knowledge class from the domain ontology constructed based on the corresponding industry’s best practices. Category can be divided into subcategories corresponding to the domain ontology’s subclass relationship. Location is where the KRI is stored. It can be represented by the Uniform Resource Identifier [7] of the explicit KRI or personal contact information of the implicit KRI. Given the values of the three dimensions, each KRI, which can be a document, database file, electronic sheet, or some implicit knowledge held by a person, corresponds to a point in the threedimensional knowledge resource space. If we set the value of one dimension to ‘‘null’’, then we get a mapping relation from a three-dimensional to a two-dimensional space. For example, ‘‘(null, Category, Location)’’ means all KRI’s falling in the class ‘‘Category’’ and located at ‘‘Location’’. We can further obtain a mapping relation from a three-dimensional to a one-dimensional space by setting the values of two dimensions to ‘‘null’’. For example, ‘‘(null, Category, null)’’ means all KRI’s falling in the class ‘‘Category’’, no matter who owns them and where they are located. Definition 2. A model of KRI extending a knowledge resource space is represented as a triple hID, SD, SLi where:
430
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
ID is the coordinate of the KRI in the knowledge resource space. SD is the semantic description of the KRI within the domain ontology. SL is the semantic link reflecting the semantic relationship between the current KRI and other KRI’s. With the semantic link, the user of the current KRI can easily navigate to locate other related KRI’s. Zhuge [38] defined the types of semantic links between active documents as Similar-to, Sequential, Reference, SubType, Instance, CauseEffective, and Implication, while Chen [6] analyzed the relations between products, roles, projects, processes and tasks in a VE from a knowledge perspective. Based on their work, we define the semantic links between the classes in a domain ontology for knowledge sharing as one of the following types: sc 0 Subclass, denoted as sc(d, d0 ) or d ! d , where d is a subclass of d0 . The subclass link is neither reflexive nor symmetric but transitive, sc 0 sc 00 0 sc 00 i.e., d ! d ; d ! d ) d ! d holds. eq 0 Equivalence, denoted as eq(d, d0 ) or d ! d , where d is an equiva0 lent class or concept to d . The equivalence link is reflexive, symeq eq 0 eq 0 0 eq metric and transitive, i.e., d ! d; d ! d ) d ! d; d ! d ; eq 00 0 eq 00 d ! d ) d ! d hold. po 0 Partof, denoted as po(d, d0 ) or d ! d , where d is a part of d0 . The partof link is neither reflexive nor symmetric but transitive, i.e., po 0 po 00 0 po 00 d ! d ; d ! d ) d ! d holds. is 0 Intersection, denoted as is(d, d0 ) or d ! d , where d intersects with 0 d . The intersection link is not transitive but reflexive and symmetis is 0 0 is ric, i.e., d ! d; d ! d ) d ! d hold. cp 0 Complement, denoted as cp(d, d0 ) or d ! d , where d is a comple0 ment of d . The complement link is neither reflexive nor transitive cp 0 0 cp but symmetric, i.e., d ! d ) d ! d holds. it 0 0 Instance, denoted as it(d, d ) or d ! d , where d is an instance of 0 the class d . The instance link is not reflexive, symmetric nor transitive. sq 0 Sequence, denoted as sq(d, d0 ) or d ! d , where d should be learned or done after d0 . The sequence link is neither reflexive nor sq 0 sq 00 0 sq 00 symmetric but transitive, i.e., d ! d ; d ! d ) d ! d holds. rf 0 0 Reference, denoted as rf(d, d ) or d ! d , where d refers to or further explains d0 . The reference link is neither reflexive nor symmetrf rf 0 0 rf 00 00 ric but transitive, i.e., d ! d ; d ! d ) d ! d holds. In a way analogical to that mentioned in Zhuge [38], the properties of the above links and the reasoning rules shown in Table 1 are exploited to infer the implicit semantic links between KRI’s. Upon annotating a KRI, its semantic links with other KRI’s can be obtained automatically from the domain ontology based on the values of their ID’s in the ‘‘Category’’ dimension. As a result, a KRI can be expressed uniformly by the following template: KRI template {
[Alias: a unique name of string in the knowledge resource space] [SD: the metadata about the KRI through annotation by domain ontology] [SL { ... }] } In the above template, ID must be provided by the owner of the KRI while Alias, SD and SL may be provided selectively by him/her. The expression of a KRI in the form of a KRI template instance is referred to as Conceptual Instance of KRI (CIKRI) and is stored in the knowledge base of the node which owns or knows the KRI.
Table 1 Reasoning rules for implicit semantic links. No.
Rules
Rule Rule Rule Rule Rule Rule Rule
1 2 3 4 5 6 7
sc(d, d0 ), sc(d, d0 ), sc(d, d0 ), sc(d, d0 ), sc(d, d0 ), sc(d, d0 ), sc(d, d0 ),
eq(d0 , d00 ) ) sc(d, d00 ) po(d0 , d00 ) ) po(d, d00 ) is(d0 , d00 ) ) is(d, d00 ) cp(d0 , d00 ) ) cp(d, d00 ) it(d0 , d00 ) ) it(d, d00 ) sq(d0 , d00 ) ) sq(d, d00 ) rf(d0 , d00 ) ) rf(d, d00 )
Rule Rule Rule Rule Rule Rule Rule
8 9 10 11 12 13 14
eq(d, d0 ), eq(d, d0 ), eq(d, d0 ), eq(d, d0 ), eq(d, d0 ), eq(d, d0 ), eq(d, d0 ),
sc(d0 , d00 ) ) sc(d, d00 ) po(d0 , d00 ) ) po(d, d00 ) is(d0 , d00 ) ) is(d, d00 ) cp(d0 , d00 ) ) cp(d, d00 ) it(d0 , d00 ) ) it(d, d00 ) sq(d0 , d00 ) ) sq(d, d00 ) rf(d0 , d00 ) ) rf(d, d00 )
Rule 15 Rule 16 Rule 17
po(d, d0 ), sc(d0 , d00 ) ) po(d, d00 ) po(d, d0 ), eq(d0 , d00 ) ) po(d, d00 ) po(d, d0 ), sq(d0 , d00 ) ) sq(d, d00 )
Rule Rule Rule Rule
18 19 20 21
is(d, d0 ), is(d, d0 ), is(d, d0 ), is(d, d0 ),
Rule Rule Rule Rule
22 23 24 25
cp(d, d0 ), cp(d, d0 ), cp(d, d0 ), cp(d, d0 ),
Rule Rule Rule Rule Rule Rule Rule
26 27 28 29 30 31 32
it(d, d0 ), it(d, d0 ), it(d, d0 ), it(d, d0 ), it(d, d0 ), it(d, d0 ), it(d, d0 ),
sc(d0 , d00 ) ) is(d, d00 ) eq(d0 , d00 ) ) is(d, d00 ) po(d0 , d00 ) ) is(d, d00 ) it(d0 , d00 ) ) is(d, d00 ) sc(d0 , d00 ) ) cp(d, d00 ) eq(d0 , d00 ) ) cp(d, d00 ) po(d0 , d00 ) ) cp(d, d00 ) it(d0 , d00 ) ) cp(d, d00 )
sc(d0 , d00 ) ) it(d, d00 ) eq(d0 , d00 ) ) it(d, d00 ) po(d0 , d00 ) ) po(d, d00 ) is(d0 , d00 ) ) is(d, d00 ) cp(d0 , d00 ) ) cp(d, d00 ) sq(d0 , d00 ) ) sq(d, d00 ) rf(d0 , d00 ) ) rf(d, d00 )
Rule 33
sq(d, d0 ), eq(d0 , d00 ) ) sq(d, d00 )
Rule 34 Rule 35
rf(d, d0 ), eq(d0 , d00 ) ) rf(d, d00 ) rf(d, d0 ), po(d0 , d00 ) ) rf(d, d00 )
The corresponding KRI can be located easily and rapidly using the value of the ‘‘location’’ dimension of each CIKRI’s ID. As far as implicit knowledge resources are concerned, the personal contact information is provided in the value of the ‘‘location’’ dimension of each CIKRI’s ID. A CIKRI can be transformed into an XML file or stream to be exchanged between network nodes. As Fig. 1 shows, the knowledge resource structure consists of three layers: physical knowledge resource layer, conceptual knowledge resource layer and knowledge sharing layer. The three layers are detailed as follows, starting from the bottom of the figure: – Physical knowledge resource layer. At this layer all KRI’s are stored on nodes which reside on the same enterprise network or across different enterprise networks. Due to the heterogeneity of knowledge representation in a VE, it is difficult to share KRI’s among users directly, especially across different enterprises. – Conceptual knowledge resource layer. This layer consists of the knowledge resource space and semantic link network. By annotating KRI’s into CIKRI’s, all the knowledge resources are mapped into a uniform knowledge resource space. A semantic link network is formed based on the semantic link relationship among KRI’s, which can guide users to easily explore, locate and obtain the knowledge resources they want. – Knowledge sharing layer. Knowledge searching and sharing are based on CIKRI’s from the conceptual knowledge resource layer. With the semantic relationships among CIKRI’s stored on each node, the semantic ties among different nodes as well as among different KRI’s can be established and exploited to promote knowledge sharing among users in a VE. The detailed mecha-
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
nism of knowledge searching and sharing will be discussed in Section 4. 3.2. Knowledge sharing community model Service oriented architecture (SOA) has become the mainstream method for integrating business processes, especially those across organizations. Agent societies have been identified as the most promising approach for developing VE management. We believe it is reasonable to deploy agent wrapping tasks (or activities) as services on network nodes to establish a community model. A dynamic VE can be seen as a collection of agents collaborating to achieve a particular goal. Generally, a dynamic VE consists of a core facility (main contractor) and member facilities (sub-contractors) [36], a structure that corresponds to the goal oriented community where, upon receiving a request from customers, a core agent will define its goal based on its expertise. This goal is then broken down into tasks (sub-goals), and the appropriate agents capable of carrying out the tasks are located by the core agent using optimization methods or constraint satisfaction theory [25]. Upon locating the appropriate agents, the core agent invites them to join the community to accomplish the assigned tasks in a predefined sequence. An agent in the community may further break down its task into activities which are generally mapped into services performed by agents (components or individuals). These agents must interact with other agents within the same enterprise or across other enterprises in the VE to obtain the required information and knowledge. While a process-centered view assumes that knowledge is embedded in the business process by associating a central knowledge repository with the business process, we argue that this view can hardly handle the dynamic situation where business undertakers and operation environments are subjected to rapid changes. In dynamic VE’s, knowledge is mostly dispersed across agents, especially those interacting with the markets and environments. An agile knowledge provision method needs to be developed to complement, if not replace, the process-centered method. To counter this problem and facilitate knowledge sharing among members of a VE, a knowledge sharing community model is designed. As Fig. 2 shows the knowledge sharing community model is composed of three levels: the physical agent society, the knowledge sharing virtual community and the goal oriented VE. The three levels are detailed as follows, starting from the bottom of the figure:
431
– Physical Agent Society. Organizational structures must be taken into consideration to construct an agent society infrastructure based on the interconnected local area networks of each member of the VE. Centralized security control architecture is usually adopted by the organization to place the access to its core knowledge assets under strict control to protect itself from losing core competences to rival organizations. In our model, a physical agent society, i.e., a multi-agent system (MAS), is constructed for each member of the VE. In each member enterprise of the VE, there is an administration agent that acts as the enterprise’s gatekeeper responsible for security control and message routing. An agent is free to contact agents within its enterprise. However, when an agent interacts with agents from other enterprises, the message will be routed to the local administration agent who then routes it to the administration agent of the enterprise where the target agent resides. The administration agent of the target enterprise performs the security control at the message level before routing the message to the target agent within its enterprise. The access control at the object level is performed by the administration agent when access to knowledge objects is requested by agents from other enterprises. The role based security control model such as the one proposed by Chen [6] can be adopted to control access at the object level. By implementing security control at both the message and object access levels through each enterprise’s administration agent, the protection of core competences is guaranteed. The security control mechanism at the physical agent society level remains transparent to the upper two levels. In an enterprise, each agent registers itself with the administration agent who is also responsible for orchestrating tasks and activities as well as keeping the organization memory updated by loading CIKRI’s and their corresponding KRI’s from agents into the central knowledge repository of the enterprise. – Knowledge sharing virtual community. To improve the efficiency of knowledge resource discovery, all agents in the VE are self-organized into communities. In our community model, no administration node is adopted. Imitating the ‘‘personal contact’’ social behavior, agents with similar interests (i.e., with the supply or demand of the same class of knowledge) are clustered into the same community in which specific agents may act as information gatekeepers or directory service providers. This is possible assuming that those agents have enough information on who can provide what knowledge. An agent may reside in none, one, two or more
Fig. 1. Knowledge resource layer structure.
432
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
Fig. 2. Knowledge sharing community model.
communities. If all agents reside in no community then no community has been formed yet. If there is more than one community and each agent resides in different communities then all the communities are isolated from each other. If an agent resides in more that one community then those communities in which the agent resides are connected. The detailed method of community formation and knowledge resource discovery is discussed in Section 4.
ities of agents that it is connected to, and satisfies the knowledge needs of those agents by imitating human social behavior in sharing knowledge with each other. Fig. 3 illustrates the architecture of the agent which consists of four levels, namely knowledge sharing space, knowledge base, functional modules and interface. The four levels are described below.
– Goal oriented VE. A dynamic VE consists of n enterprises, with Enterprise1, the dominant member of the VE, being the core that will break the goal down into tasks and assign them to members of the VE. As mentioned above, a service oriented approach is adopted by wrapping the relevant business resources as services and mapping tasks to them. Enterprise1 is responsible for coordinating the resulting process and ensuring the quality of service. Each agent in the goal oriented community operates as the gatekeeper for its enterprise. It publishes the available business resources with the gatekeeper of the core enterprise. It also pools the available business resources in its enterprise or forms another VE if business resources from other partners are needed. In each enterprise member of the VE, the gatekeeper coordinates the collaboration of agents to fulfill the assigned task. The service providers need to interact with other agents in the VE to obtain the relevant information and knowledge involved in performing their activities. Instead of searching the whole VE’s knowledge resource space, a service provider can search relevant communities in which agents with knowledge resources of the same kind or with the same interests are located.
4.1.1. Knowledge sharing space Knowledge sharing space is a specific folder where all explicit knowledge resources are stored, or a human brain where all implicit knowledge resources are located which the agent would like to share with others. The knowledge sharing spaces of all agents constitute a distributed knowledge repository.
4. Community framework 4.1. Agent architecture A software agent is deployed on each network node to perform the knowledge sharing functions based on concepts similar to social networks. Each agent understands the preferences and capabil-
4.1.2. Knowledge base Four types of knowledge are stored in the knowledge base. The first is the domain ontology which will be referred to by the modules of contribution evaluation, semantic matching and semantic annotation. The second consists of the semantic reasoning rules (shown in Table 1) by which the implicit semantic links between KRI’s will be inferred. The third is the topic based subscription list which indicates the interests of other agents in certain topics. By subscribing to certain topics on a target agent, the source agents will be informed of any newly obtained CIKRI’s or any changes in CIKRI’s on those topics. The fourth is made of the CIKRI’s which are semantically annotated instances of the local KRI’s owned by the agent or remote ones the agent knows. The CIKRI repository in the knowledge base is organized into a tuple space hCIKRI, Provider, Weight, Contributioni. The description of the items that compose the CIKRI’s tuple is presented next: – CIKRI is the conceptual instance of a KRI which is represented with the KRI template. – Provider is the name or address of the agent which provides the information on the current conceptual instance of the knowledge resource. The provider may be the same as the owner of
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
the KRI if the agent in which the CIKRI is stored happens to possess the corresponding KRI. – Weight is the importance degree of the KRI corresponding to the current CIKRI evaluated by the user. – Contribution is the contribution degree of the KRI corresponding to the current CIKRI evaluated by the user. 4.1.3. Functional modules There are six functional modules within the agent, namely Semantic Explorer, Knowledge Recommendation, Access Control, Contribution Evaluation, Semantic Matching and Semantic Annotation. – Semantic Explorer (SE) presents the semantic view (which will be elaborated in Section 4.2.2) of the agent to the user. Through SE the user can explore local CIKRI’s and their corresponding KRI’s as well as the semantic links among those CIKRI’s. The user can also search CIKRI’s with a certain topic and have access to the corresponding KRI’s. SE provides an interface for the user to perform user-machine interactive tasks. – Knowledge Recommendation (KR) processes the query for knowledge on certain topics from the user of the current agent or another querying agent, and returns the locally found results to the user or forwards the query to other known agents if the needed results cannot be reached locally. KR supports the mechanism of pulling and pushing knowledge resources wanted by agents as most recommender systems do. With the pulling mechanism the responding agent returns the found knowledge to the querying agent upon request. With the pushing mechanism the responding agent remembers the preferences of the querying agent and actively sends it the knowledge its needs. – Access Control ensures that the knowledge is obtained under proper authority by adopting the ontology-based access control model proposed in Chen [6]. When a querying agent visits the objects (i.e., the KRI’s) on a target agent, the target agent will consult with its administration agent to check if the querying agent has the rights to access the objects. At the same time the access control at transportation level is exerted by the administration agent of each physical agent society to ensure
433
only accesses from trusted domains (i.e., the trusted physical agent societies) are allowed. Only when the access to the knowledge at both transportation level and object level is granted, can the KRI on the target agent be obtained by the querying agent. – Contribution Evaluation enables a user to evaluate the contribution degree and importance of a KRI to him/her. In the knowledge base each CIKRI has two ratings associated with it: contribution degree and weight. There are five possible values for the contribution degree: ‘‘very strong’’, ‘‘strong’’, ‘‘neutral’’, ‘‘weak’’, and ‘‘very weak’’, which are translated by the system into scores of 5, 4, 3, 2, 1, respectively. There are three levels for weight: ‘‘very important’’, ‘‘important’’, ‘‘not important’’, which are translated by the system into scores of 1, 0.5 and 0.1, respectively. The ratings of weight can be given at topic level or CIKRI level. If they are given at topic level, then a new CIKRI will be assigned a default weight corresponding to the topic at the time it is added to the knowledge base. Using the two measures, the contribution in knowledge of one agent to another can be calculated using Eqs. (3) and (4) presented in Section 4.2.3. – Semantic Matching calculates the semantic similarity between different knowledge topics, which are the classes in the domain ontology, and finds the CIKRI equivalent or most semantically similar to a given topic. It also calculates the preference correlation between two agents using Eq. (5) presented in Section 4.2.3. – Semantic Annotation helps the user insert, update and delete the annotation of local KRI’s with the aid of the domain ontology and maintains the semantic links among local CIKRI’s. The annotated content has been discussed in Section 3.1. When a CIKRI is deleted from the CIKRI repository, all the semantic links between it and other CIKRI’s are deleted simultaneously. Each agent is obligated to annotate its local non-annotated KRI’s. If the annotated KRI is in the form of explicit knowledge, the value of both owner dimension and location dimension of ID is set to domain name of its enterprise plus agent identifier. Otherwise the value of owner dimension is set to domain name of its enterprise plus personal contact information instead of agent identifier. A user
Fig. 3. Architecture of the agent.
434
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
can also use agent to annotate semantic descriptions of a KRI, as well as semantic links among different CIKRI’s besides those inherited from domain ontology automatically. 4.1.4. Interface Agents communicate with each other through an interface which provides three functions: Register, Query and Response. They are described next: – The Register function can be invoked on a random or targeted agent when a new agent wants to join the virtual knowledge sharing community, or when an agent wants to subscribe to or unsubscribe from a certain topic with another agent. When a new agent joins the community, it can choose to subscribe its interests with a random agent because no other agent knows its interests yet. The Register function is also invoked on the administration agent when a new agent wants to register with its agent society. – An agent tries to obtain the required knowledge on a certain topic by invoking the Query function of another agent which is most likely to possess the wanted knowledge or know who possesses it. Obtaining the knowledge resource is completed in two steps: (1) the CIKRI with the requested topic is queried; (2) the corresponding KRI, whose location is indicated by the returned CIKRI, is requested. – The Response function is invoked on the querying agent by another agent to return the queried knowledge. Depending on the Query, either CIKRI or KRI is returned. The access control is performed on the target agent to ensure the KRI is obtained under proper authority. 4.2. Knowledge sharing mechanism 4.2.1. Rationale The content index and search mechanism play an important role in the realization and efficiency of resource discovery in distributed systems. Risson and Moors [28] conducted a thorough survey of search methods that define robust p2p networks. They pointed out that a p2p index can be classified as local, centralized or distributed; as non-forwarding or forwarding; and as semanticfree or semantic. The knowledge resource space model adopted in our proposed solution provides a semantic context for distributed physical knowledge resources. Each agent not only keeps the indexes of its own knowledge resources, but also those it knows are owned by other agents so that it can forward the query to the known agents when it does not own the queried resources. We therefore opted for a distributed, semantic and forwarding index. As for the querying methods, we imitate the human social behavior by which three kinds of social ties are established, namely agent-to-item, item-to-item and agent-to-agent. The agent-to-item ties indicate the preferences of an agent. The CIKRI repository of an agent formulates its semantic view. By knowing all or part of the semantic view of other agents, an agent may know which two agents are similar in preferences, so knowledge can be recommended using collaborative filtering techniques [26]. The item-to-item ties are reflected by the semantic links between the items. Those ties can help an agent navigate easily to the other knowledge items it requires. Finally, the agent-to-agent ties are formed by social behavior rules as follows: – The more times an agent obtains knowledge from another agent successfully, the more strengthened the social ties between them should be. – The more alike the preferences of two agents are, the more strengthened the social ties between them should be.
– An agent has a limited social memory. That is an agent may forget the old social ties as more new ties are established. – To reduce network traffic, only a limited time to live (TTL), i.e., a limited number of knowledge resource query transfers from agent to agent, is allowed. The limited TTL is also called allowed hop times. 4.2.2. The semantic view of agent As mentioned above, each conceptual instance of a KRI has a coordinate in the knowledge resource space where the ‘‘category’’ dimension consists of the classes from the domain ontology. In the domain ontology, the semantic links among those classes are also defined by domain experts. When a KRI is annotated as a CIKRI, the ‘‘category’’ dimension of the KRI is assigned a value from the domain ontology. By looking up the semantic links in the domain ontology, the semantic links among the CIKRI’s can be annotated automatically by the agent. With the semantic links of CIKRI’s that an agent stores in its knowledge base, the agent can formulate its local semantic view as follows: Definition 3. A semantic view of an agent is defined as a directed graph G = hV, Ei, where: V is the set of CIKRI’s in the knowledge base of the agent, and E is the set of the semantic links among those CIKRI’s. 4.2.3. Correlation between agents Correlation between agents is measured with agent contribution degree and agent preference similarity degree. An agent’s interests in topics are calculated according to the CIKRI’s stored in its knowledge base. 4.2.3.1. Calculation of interests in topics. Just as people in social communities are interested in one or more topics, an agent exhibits its interest in one or more topics with its semantic view. The interest of an agent in a given topic is measured by the maximum semantic similarity degree between the topic and its CIKRI’s. With the classes and the semantic links between those classes being defined, the domain ontology can also be viewed as a directed graph G⁄ = hV⁄, E⁄i, where V⁄ is the set of all the classes and E⁄ is the set of the semantic link relations between the classes. For each ei 2 E⁄, a weight is given to measure the semantic similarity degree between two vertexes connected by it in accordance with its semantic link types as follows:
wei ¼
1
if STðei Þ is Equiv alence
a 0 < a < 1; if STðei Þ is not Equiv alence
where ST(ei) is the semantic link type of edge ei. Given class ci and class cj, the semantic similarity degree between them in the domain ontology can be calculated using Eq. (1):
sij ¼ simðci ; cj Þ ¼ max Rl 2R
Y
wlk
ð1Þ
Rlk 2Rl
where R is the set of all the paths in the domain ontology through which ci can arrive at cj, Rl is the lth path in R, Rlk is the kth edge in path Rl and wlk is the weight of Rlk. The direction of the edge is not taken into consideration here. Floyd’s algorithm [29] (discussed in operations research) can be used to find the path of maximum weight between any two nodes. Given the semantic view of agent a, we can calculate its interest in topic t using Eq. (2):
Iat ¼ max simðci ; ct Þ ci 2C a
ð2Þ
where Ca is the set of classes (i.e., the values of the ‘‘Category’’ dimension) of all CIKRI’s on agent a, ct is the class of topic t, sim(ci, ct) is calculated using Eq. (1).
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
4.2.3.2. Agent contribution degree. To measure how successfully agent j obtains knowledge from agent i, the Agent Contribution Degree (ACD) of agent i to agent j is defined using Eq. (3):
ACDij ¼
K X
wijk r ijk
ð3Þ
k¼1
where K is the total number of CIKRI’s in the CIKRI repository on agent j with the provider being agent i; wijk is the weight of the kth CIKRI agent j rates with its provider being agent i; rijk is the contribution of the kth CIKRI agent j rates with its provider being agent i. Furthermore, given a topic t, the Agent Contribution Degree in Topic t (ACDT) of agent i to agent j is defined using Eq. (4):
ACDT ijt ¼
K X
wijk r ijk skt
ð4Þ
435
Remote requests are obviously subject to the verification of access rights. In the case of implicit knowledge, the contact information of the knowledge holder is presented to the user so that the user can communicate with the knowledge holder to obtain the implicit knowledge. In the situation where no knowledge resources of that topic can be found by the semantic explorer, the user can issue a query to the agent to search the knowledge sharing virtual community instead of its own repository. Upon a topic-based request from the user, the querying agent must decide which agent it should send the query to. If the recipient agent has been specified by the user then the query is delivered to that specific agent by the querying agent. Otherwise, the querying agent performs a local search and/or a community search to obtain the knowledge resource. The main program code (part of it is pseudo-code to avoid redundancy) of the knowledge sharing process is given in the appendix.
k¼1
where K, wijk, rijk bear the same meaning as in Eq. (3); skt is the semantic similarity degree between topic t and the topic of the kth conceptual instance with the provider being agent i. skt is calculated using Eq. (1). 4.2.3.3. Agent preference similarity degree. The preferences of an agent are reflected by the topics of the CIKRI’s it stores. Due to the distributed nature of agent society, there is no central node that is aware of the full preferences of all agents. However, from the CIKRI’s it stores, an agent may know that two or more agents show similar preferences. We adopted the method proposed by Pingfeng et al. [26] to calculate the preference similarity degree between agent i and agent j. Suppose that in an agent’s CIKRI repository there are M conceptual instances with the provider or owner being agent i and that there are N conceptual instances with the provider or owner being agent j. Use sim(ai, aj) to denote the semantic similarity between the preference of agent i and that of agent j. Let sim(ai, aj) = 0. The semantic similarity matrix of the two agents’ preferences is:
0
sp11 B sp B 21 SP ¼ B B .. @ .
sp12 sp22 .. .
.. .
sp1N sp2N .. .
spM1
spM2
spMN
1 C C C C A
where spmn = sim(Tm, Tn), calculated using Eq. (1). Tm is the topic of the mth conceptual instance with the provider or owner being agent i while Tn is the topic of the nth conceptual instance with the provider or owner being agent j. We obtain the maximum sgmn from the matrix and then delete the row and column where the maximum sgmn is located. Let sim(pi, pj) = sim(pi, pj) + spmn. We repeat this process until there is no element left in the matrix SP. Finally we obtain the semantic similarity between ai and aj by Eq. (5):
simðai ; aj Þ ¼ simðai ; aj Þ= minðM; NÞ
ð5Þ
4.3. Knowledge sharing process If a user wants to explore the knowledge of a certain topic, he/she can use the semantic explorer to display the local semantic view of knowledge resources. A topic based search mechanism is provided by the agent to let the user search and locate knowledge resources of a certain topic by looking up the topics of local CIKRI’s. If the target CIKRI is found, the user can issue a request to get the corresponding KRI’s from the local knowledge sharing space or from remote sharing spaces as the value of Location dimension of ID in CIKRI indicates.
4.4. Community evolution When the old task is performed and a new task emerges as the changing market demands, the old VE might be dissolved and a new VE established. As knowledge sharing is concerned in such a situation, the knowledge sharing community evolves as VE’s go through their lifecycle: pre-creation, creation, operation, and dissolution. The result of the evolution is an infrastructure that can augment knowledge workers and improve organizations’ collective intelligence [22]. Our approach achieves this result by the community evolution mechanism under the community framework. The community evolution throughout phases of the VE’s lifecycle is described as follows: – Pre-creation phase. In this phase, enterprises, including the core enterprise and its partners, have not been pooled together and connected with each other to form a dynamic VE yet. Note that the physical agent society of each enterprise exists before the creation of a VE. By annotating the local KRI’s, each agent generates corresponding CIKRI’s and stores them in the local knowledge base. At the very early stage of bootstrap, each agent has no knowledge about who has what knowledge within its enterprise. However, agents get to know each other gradually after some random search for knowledge resources or pushing knowledge resources based on interests, and virtual communities are formed within an enterprise by the correlation of each agent’s semantic view. – Creation phase. In this phase, the core enterprise selects partners and they connect with each other to form a dynamic VE. After the core enterprise has selected its partners, the administration agent of each partner (called partner administration agent, PAA) is registered with that of the core enterprise (called core administration agent, CAA). Then CAA assigns PAA’s the subtasks and sends them the relevant knowledge resources in the form of CIKRI’s, which will guide PAA’s to obtain corresponding KRI’s. At the same time, PAA’s are requested to register the necessary knowledge resources concerned with the subtasks in the form of CIKRI’s with CAA. After that CAA pools corresponding KRI’s in those PAA’s knowledge sharing spaces respectively. Each PAA breaks the assigned subtask down into activities which can be performed by members within its enterprise. If this is the first VE that has ever been created, then no agent of an enterprise, except the CAA and PAA’s, has knowledge of those across other enterprises in the VE up to now. Virtual communities evolve with semantic ties being established between CAA and PAA’s. – Operation phase. In this phase, members of the VE interact with each other to perform the business operations. In the process of business operation, an agent starts a knowledge searching process to obtain the needed KRI’s as required by the implementa-
436
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
tion of the assigned activities. As explained in Subsection 3.2, if the wanted KRI cannot be obtained in the local enterprise, the topic-based query of KRI will be transferred to agents across other enterprises by the administration agents of both the querying enterprise and the recipient enterprise. Since PAA’s only know CAA right after the creation phase, the queries of PAA’s might be transferred to CAA which in turn will transfer the queries to agents in its enterprise or one of the other PAA’s depending on the queried topic. With more queries transferred from one PAA to another through the brokering of CAA, PAA’s will get to know each other gradually so that some queries will be transferred between them directly. In the same way, agents across enterprises get to know each other with more knowledge queries issued and answered. At the same time implicit knowledge has better chances of being externalized as more communications on implicit knowledge lead to the possibility of it being codified by tapping the potential of social interactions. The agents’ semantic views evolve dynamically with the knowledge sharing process. So does the knowledge sharing virtual community. – Dissolution phase. In this phase a VE is dissolved after the task is performed. However, each agent and the knowledge sharing virtual community formed by its semantic view will not go extinct. When a new VE is created, an agent can still ask other agents in its virtual communities for help. It is obvious that there will be an ‘‘accumulation effect’’ in knowledge sharing with more ties between agents being established. By sharing knowledge with each other, each agent coevolves with other agents to adapt to the rapidly changing environment, resulting in improved collective intelligence in an enterprise no matter how dynamic a VE may be. 5. Case study
the ontology. MySQL (http://www.mysql.com) is used as repository for the agent’s knowledge base. 5.2. Knowledge sharing mechanism 5.2.1. Domain ontology To promote knowledge sharing and to ensure the unambiguous understanding of knowledge among members of the VE, a domain ontology for the company’s best practices is developed using Protégé [43]. Fig. 4 shows part of the classes developed in the domain ontology. The project consists of subtasks which are subdivided level by level and described with the class ‘‘Task’’ (see for example ‘‘OnSite’’ in Fig. 4). Some subtasks must be finished before other subtasks are started, so ‘‘Sequence’’ relationship is defined between class ‘‘Task’’ and class ‘‘Task’’. Based on the specialties involved, the project is divided into nine areas described by class ‘‘Major’’. Each subcontractor, described with the class ‘‘Organization’’, has its own specialties in one or several Majors and undertakes one or more subtasks. ‘‘Part of’’ relationship is defined between class ‘‘Major’’ and class ‘‘Organization’’, as well as between class ‘‘Task’’ and class ‘‘Organization’’. Class ‘‘EquipmentMaterials’’ describes all the equipment and materials involved in the project. ‘‘Partof’’, ‘‘Intersection’’ or ‘‘Complement’’ relationship is defined between class ‘‘EquipmentMaterials’’ and class ‘‘EquipmentMaterials’’ to show that a piece of equipment/materials may be part of another one, two pieces of equipment/materials have the same part, or one piece of equipment/material is necessary for another one to function normally. Since equipment and/or materials as well as specialties are required to accomplish a subtask, ‘‘Reference’’ relationship is defined between class ‘‘EquipmentMaterials’’ and class ‘‘Task’’, as well as between class ‘‘Major’’ and class ‘‘Subtask’’. Those semantic links among top level classes in the domain ontology are shown in Fig. 5.
5.1. Background To validate our approach, we conducted a case study at CNBMEEC, which is a Chinese company in the line of undertaking cement-plant-construction projects both domestically and overseas. The company has less than 100 employees although its annual turnover has reached one hundred million US dollars in the last 5 years. The company has established its core competences in coordinating its partners and various resources to satisfy customers’ needs in cement plant construction. Upon signing a contract, the company pulls its partners together to form a VE to undertake the project. Its partners include designers, suppliers and subcontractors in various fields. Designers are responsible for designing the cement plants. Suppliers provide the equipments and materials required in building cement plants. Subcontractors undertake the subtasks of the project such as installing machinery. With a long standing experience within its industry, the company has formed standard practices to considerably improve its efficiency. However, changing environments necessitate the development of new knowledge and skills. Forms of operation for domestic projects cannot be put directly into practice for overseas projects. The progress of projects is too often delayed by improper techniques and operations taken by the company and its partners, while most mistakes can be avoided by sharing past experiences and newlylearned skills with each other in an agile way to quickly adapt to new environments. Evidently, the company is aware that it is vital to share the information, experience and knowledge among members of the VE as they cooperate in executing the various tasks of the project. The approach presented in this paper is taken by CNBMEEC to promote knowledge sharing in the VE. The knowledge sharing agent system is developed with Eclipse (http://www.eclipse.org) based on JADE [41]. Jena [42] is used to query and operate
5.2.2. Knowledge sharing process CNBMEEC has knowledge on the specifications of the project, subtask assignment, experiences and lessons learned on some subtasks of the projects previously undertaken. Suppliers have knowledge on the supplied equipment and services involved. Each subcontractor has knowledge on the subtask it has undertaken previously and is undertaking currently, as well as expertise in its field. At the VE creation stage, each PAA registers itself with CAA, the administration agent of CNBMEEC, by invoking the ‘‘register’’ interface of CAA. CAA then invokes the ‘‘register’’ interface of each PAA to subscribe its interests in topic ‘‘Organization’’ to request the knowledge about enterprise capabilities and qualifications from each partner. At the time of assigning subtasks to partners, CAA generates, for each partner, a document on the specifications of the subtask and annotates it as a CIKRI with the domain ontology before forwarding it to the corresponding partner by invoking the ‘‘Response’’ interface of PAA. We take one of the subcontractors as an example to explain how our approach works for knowledge sharing in a dynamic VE. This subcontractor is assigned the subtask of ‘‘LimestoneCrushingTranspoMechanics’’. PAA of this subcontractor, called PAA1 in the following, further assigns the subtask to agent1 of this subcontractor by forwarding the knowledge on subtask to it. From the developed domain ontology, we can obtain the semantic links involved in the subtask ‘‘LimestoneCrushingTranspoMechanics’’ as shown in Fig. 6. The subtask of ‘‘LimestoneCrushingTranspoMechanics’’ consists of ‘‘GrindingMachineryInstalling’’, ‘‘FeedingMachineryInstalling’’, ‘‘TransportationMachineryInstalling’’, ‘‘FluidMachineryInstalling’’ and ‘‘DustCollectionMachineryInstalling’’. So ‘‘Partof’’ relationship is denoted between each of them and ‘‘LimestoneCrushingTrans-
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
437
Fig. 4. Excerpt from the domain ontology for CNBMEEC.
poMechanics’’. To finish the subtask, the undertaker needs both the information of machinery itself and the relevant specialties in installing it. So ‘‘Reference’’ relationship is denoted between ‘‘Mechanics’’ and ‘‘LimestoneCrushingTranspoMechanics’’, as well as between the corresponding subclasses. The ‘‘Reference’’ relationship is also denoted between subclasses of ‘‘MechanicalEquipment’’ and corresponding subclasses of ‘‘LimestoneCrushingTranspoMechanics’’. At the initiating stage, agent1 has annotated locally two KRI’s into CIKRI’s categorized under class ‘‘MechanicsGrindingMachinery’’ and ‘‘HammerCrusher’’ respectively and those KRI’s are learned by the subcontractor from its past operation experience. Agent1 only knows PAA1 with a CIKRI categorized under the class ‘‘LimestoneCrushingTranspoMechanics’’ with the provider being PAA1. The user of agent1 evaluates the CIKRI with a weight of 1 and a contribution degree of 1. The knowledge searching user interface of agent1 shown in Fig. 7 presents the semantic view of agent1 at this stage. On the left of the user interface are local CIKRI’s categorized under different classes. The class names in gray color mean that there is no CIKRI categorized under them or their subclasses yet. On the right of the user interface are the searching frame, the semantic links of CIKRI’s categorized under the selected class, as well as ID and SD of the selected CIKRI (in green color). From the subtask specification, agent1 knows that it needs to install the equipments ‘‘HammerCrusher’’, ‘‘PlateFeeder’’, ‘‘RubberBelt-
Conveyor’’, ‘‘PulsedBagDustCollector’’ and ‘‘CentrifugalVentilator’’. Even though there is a description of the abovementioned equipments in the subtask ‘‘document’’, agent1 wants more details about them to make sure everything works as planned. Although agent1 has once locally annotated a CIKRI under the category ‘‘HammerCrusher’’, it is an instance involved in a subtask undertaken before and the user is not satisfied with the local searching result. So community searching is launched. The knowledge about ‘‘HammerCrusher’’ is searched first. To calculate the semantic similarity between two classes, the weights of different semantic link types need to be given explicitly. In our case study we set those weights according to our experience, as Fig. 8 shows. The ACDT of PAA1 in topic ‘‘HammerCrusher’’ is calculated using Eq. (4) as follows:
ACDT P1HammerCrusher ¼ 1 1 simðLimestoneCrushingTranspoMechanics; HammerCrusherÞ ¼ 0:7 0:7 0:8 0:7 ¼ 0:27 Since ACDTP1HammerCrusher P b (b is set to 0.2 in our case study), agent1 adds itself into the transferring list and increases hop times by 1 before it sends the query to PAA1. There are only two CIKRI’s residing in PAA1 for the time being. One is categorized under class ‘‘LimestoneCrushingTranspoMechanics’’ with the provider being CAA, and another is categorized under class ‘‘Organization’’ with the provider
Fig. 5. Semantic links among top level classes in the domain ontology.
438
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
Fig. 6. Semantic links involved in ‘‘LimestoneCrushingTranspoMechanics’’.
being itself. PAA1 cannot satisfy the user of agent1 by local searching. So PAA1 launches community searching. The ACDT of CAA in topic ‘‘HammerCrusher’’ is calculated using Eq. (4) as follows:
ACDT CPHammerCrusher ¼ 1 1 simðLimestoneCrushingTranspoMechanics; HammerCrusherÞ ¼ 0:7 0:7 0:8 0:7 ¼ 0:27 Since ACDTCPHammerCrusher > b, PAA1 appends itself to the transferring list and increases hop times by 1 before it forwards the query to CAA, which performs access rights verification first to ensure that only CIKRI’s related to the assigned subtask of agent1 are sent
back to it before CAA performs local searching. Since suppliers have already sent information on equipments to CAA, CAA finds at least one CIKRI categorized under the class ‘‘HammerCrusher’’ which has the highest semantic similarity degree with the queried topic. The CIKRI’s found are sent back to agent1 one by one. Agent1 gets one CIKRI categorized under the class ‘‘HammerCrusher’’ from CAA and the corresponding KRI through the value of the ‘‘Location’’ dimension of the CIKRI. The user of agent1 rates it by giving it a weight of 1 and a contribution degree of 1 for the corresponding KRI satisfies his needs. Agent1 informs CAA of the satisfying result and CAA stops searching. PAA1 also stops searching at a success message received from CAA.
Fig. 7. Knowledge searching user interface of agent1.
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
439
ACDT P1MechanicsFeedingMachinery ¼ 1 1 simðLimestoneCrushingTranspoMechanics; MechanicsFeedingMachineryÞ ¼ 0:56
Fig. 8. Semantic similarity weights for different semantic link types.
The knowledge about ‘‘PlateFeeder’’ is then searched. Community searching is launched on agent1 for the same reason stated above. Now agent1 also knows CAA. The ACDT of PAA1 and CAA in topic ‘‘PlateFeeder’’ are calculated respectively using Eq. (4) as follows:
ACDT P1PlateFeeder ¼ 1 1 simðLimestoneCrushingTranspoMechanics; PlateFedderÞ ¼ 0:7 0:8 0:7 ¼ 0:39
ACDT C1PlateFeeder ¼ 1 1 simðHammerCrusher; PlateFedderÞ ¼ 0:7 0:8 0:7 0:7 0:8 0:7 0:7 ¼ 0:11 Since ACDTP1PlateFeeder > b, agent1 adds itself to the transferring list and increases hop times by 1 before it sends the query to PAA1. In the same way as responding to query on topic ‘‘HammerCrusher’’, PAA1 transfers the query to CAA. CAA sends the CIKRI of ‘‘PlateFeeder’’ to agent1. So agent1 gets the corresponding KRI and the user evaluates it by giving it a weight of 1 and a contribution degree of 1. Agent1 informs CAA of the satisfying result, and both CAA and PAA1 stop searching. In the same way, knowledge about equipments ‘‘RubberBeltConveyor’’, ‘‘PulsedBagDustCollector’’ is obtained. But when it comes to obtaining knowledge about equipment ‘‘CentrifugalVentilator’’, the process is a little different. For now, the ACDT of CAA in topic ‘‘CentrifugalVentilator’’ is greater than that of PAA1 for more ties have been established between agent1 and CAA. Agent1 sends a query on topic ‘‘CentrifugalVentilator’’ to CAA first. Although the query is routed by PAA1 at the message level, PAA1 does not perform the function of knowledge searching. Agent1 gets satisfying result from CAA and CAA stops searching. Now, agent1 wants to find the relevant knowledge to solve the problem it runs into when installing the ‘‘PlateFeeder’’. The user explores the ontology and expands the class ‘‘Major’’ and its descendants to find that the class ‘‘MechanicsFeedingMachinery’’ should cover the knowledge he needs. Subsequently, a query for knowledge on the topic ‘‘MechanicsFeedingMachinery’’ is issued by the user. Since no local knowledge can satisfy the needs of the user, a community search is launched. Same as above, a search based on the contribution degree is performed first. The ACDT of CAA and PAA1 in topic ‘‘MechanicsFeedingMachinery’’ is calculated respectively using Eq. (4) as follows:
ACDT C1MechanicsFeedingMachinery ¼ 1 1 simðHammerCrusher;MechanicsFeedingMachineryÞ þ 1 1 simðPlateFeeder;MechanicsFeedingMachineryÞ þ 1 1 simðRubberBeltConv eyor;MechanicsFeedingMachineryÞ þ 1 1 simðPulsedBagDustCollector;MechanicsFeedingMachineryÞ þ 1 1 simðCentrifugalVentilator;MechanicsFeedingMachineryÞ ¼ 1:06
Agent1 adds itself to the transferring list before it sends the query to CAA which performs a local search first. However, the local search results cannot satisfy the user’s needs. Therefore CAA performs community searching. The ACDT in ‘‘MechanicsFeedingMachinery’’ of each agent in the CIKRI repository of CAA is calculated using Eq. (4). The calculated results show that an agent of subcontractor5 (referred to as agent5 in the following) has the highest ACDT among the list of agents whose ACDT’s in ‘‘MechanicsFeedingMachinery’’ are no less than b. CAA appends itself to the transferring list and increases hop times by 1, then transfers the query to agent5 through message routing by PAA5 (PAA of subcontractor5). PAA5 performs an access rights check before it routes the query to agent5. Since agent1 is a partner of agent5, agent1 is allowed to query the knowledge on the queried topic. Agent5 performs a local search and returns to agent1 the CIKRI’s in the ordered list one by one for which the semantic similarity degree (with the queried topic MechanicsFeedingMachinery) is no less than a. Agent1 then requests the corresponding KRI’s and the user of agent1 judges if it is satisfying. Agent1 is lucky to obtain a satisfying KRI corresponding to the second item in the ordered list from agent5. The user of agent1 evaluates the weights and contribution degrees of the newly obtained CIRKI as 1 and 1 respectively. Agent1 adds the CIKRI to its CIKRI repository and informs agent5 of the success. Then agent5 stops searching and sends a success message to CAA, which stops searching. Supposing that no local result of agent5 satisfies the user of agent1, agent5 will perform community searching. The process continues in a recursive way until agent1 obtains the satisfying result or the hop times has reached the maximum times allowed. The CIKRI’s viewing user interface shown in Fig. 9 presents the semantic view of agent1 after the KRI’s wanted by agent1 have been obtained. 5.3. Results and discussion Each user across member enterprises of a dynamic VE exploits the knowledge sharing socio-technological mechanism provided by the agent-based solution to offer and obtain the relevant knowledge it needs in performing its tasks. The case study shows that each user can get the wanted knowledge effectively from his/her counterparts both within his/her enterprise or across other enterprises of the dynamic VE. Virtual communities are formed through the connections among agents established during the knowledge sharing process. Some agents, such as CAA, evolve into hub agents that connect different communities and transfer knowledge queries among those communities, as they know more information on who owns what knowledge. However, some users complain that they have to evaluate more KRI’s than they want to, before they get the wanted KRI. The reason for this is that there might be many KRI’s categorized under the same class. Take the class ‘‘HammerCrusher’’ as an example. There are instances of it with different specifications, such as processing capabilities. When agent1 queries knowledge under class ‘‘HammerCrusher’’, CAA sends all the instances it knows one by one to agent1 until the user of agent1 finds the wanted instance or all the instances are evaluated. Users have to evaluate many unwanted KRI’s though they are topic-relevant. So a pure topic-based searching cannot guarantee high efficiency in an environment where there are many instances categorized under the same class. This can be improved by extending the topic based searching mechanism into a topicand-attribute based searching mechanism, which makes more
440
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
Fig. 9. CIKRI’s viewing user interface of agent1.
accurate matching and reduces the number of KRI’s that need to be evaluated. 6. Conclusions and future work Knowledge sharing among members of a dynamic VE plays a key role in its competence. VE’s can be formed or dissolved, but the three kinds of ties, especially the agent-to-agent ties, can be sustained to help users locate and obtain the needed knowledge in an agile way instead of referring to the central knowledge repository. New knowledge may not exist in the central knowledge repository for it takes time to incorporate new knowledge into the organization’s memory. Furthermore, the organization’s policy may not cope with knowledge sharing across enterprises, which is required for operating dynamic VE’s. In dynamic environments such as those of VE’s, each individual user is an active knowledge user as well as a knowledge creator. We believe that the concept of social web will change the way of managing knowledge both within and across enterprises just as the Internet has changed the way enterprises interact with each other. This motivated us to take a socio-technological approach to propose a human-centered knowledge sharing solution and architecture in order to promote knowledge sharing in dynamic VE’s. In this paper, the problems and characteristics of knowledge sharing in a dynamic VE are analyzed. A knowledge resource space model and a knowledge sharing community based on agent society are proposed to solve those problems and promote the efficiency of knowledge sharing in dynamic VE’s. By extending the knowledge resource space model proposed in this paper, the KRI template is adopted to represent heterogeneous knowledge resources to provide a uniform conceptual resource layer for the uniform semantic interactions among agents. The knowledge sharing community model comprises three layers: physical agent society, knowledge sharing virtual community and goal oriented VE. Any knowledge required by members to perform the assigned tasks in the goal oriented VE is acquired through the knowledge sharing virtual community. The framework of the knowledge sharing virtual community is elaborated in two aspects. The first aspect is an agent on each network node to perform the functions of knowledge representation, browsing, searching and sharing, as well as knowledge resource access control. The second is a knowledge resource dis-
covery mechanism. Three kinds of ties (agent-to-item, item-toitem and agent-to-agent) are explored for the knowledge resource discovery process. The agent-to-item ties are reflected by the semantic view of the agent. The item-to-item ties are reflected by the semantic links among them. The agent-to-agent ties are formed by simulating social behavior. The agent-to-agent ties are measured by preference correlation using two criteria. One is the contribution degree of one agent to another while the other is the preference similarity degree between two agents. The main program code for knowledge sharing process is presented in the appendix. The evolution mechanism of virtual communities both within an enterprise and across other enterprises throughout the lifecycle of a dynamic virtual enterprise is also elaborated. The case study validates our approach. In our future work, the following problems need to be solved to improve the work presented in this paper. Since a pure topic based searching cannot guarantee high efficiency in an environment where there are many instances categorized under the same class, we need to develop a topic-and-attribute-oriented searching mechanism to make more accurate semantic matching based on the topic-oriented searching mechanism proposed in this paper. We will also conduct a performance analysis and cross analysis on different parameters such as weights of semantic link types, threshold values for contribution degree and preference similarity. Besides, since trust is always a key issue in information sharing, we need to extend our solution to address it. To ensure that the evolving semantic view of each agent is consistent with its mapped knowledge resources, we also need to improve the evolution mechanism of agents by incorporating the synchronization mechanism of the information on the existing status of knowledge resources into our framework. To improve the efficiency of implicit knowledge sharing, we need to integrate instant messaging tools in our framework so that the contact with the implicit knowledge holder can be established easily when a request for implicit knowledge is issued. Last but not least, to take advantage of the benefits of both human-centered knowledge sharing and process-centered knowledge sharing, we need to extend the functions of the agent to manage the relation between task and knowledge so that when a member in the VO is assigned a task, the relevant knowledge can be obtained intelligently and navigated quickly by the mapping relationships between tasks and knowledge.
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
Appendix A The main program code of the knowledge sharing process (note: part of it is pseudo-code to avoid redundancy): /*Function: this method is executed if recipient agent is specified by user for knowledge search Input: strTopic is the queried topic, agDest is the recipient agent which takes over the process of knowledge search. Output: the query result of int type. There are three values: R_SUCCESS, R_NORESPONSE, R_FAILURE.*/ public int Query (String strTopic, KnowAgent agDest) { //return if user does not specify the recipient agent if (isNull (agDest)) return false; /*generate a transferring list, add current agent ID in transferring list, and increase hop times by 1*/ TransferList tList = InitializeTransferList(); //this method invokes the query interface of agDest return SendQuerytoAgent (agDest, strTopic, tList); }
/*Function: this method implements the query interface of agent. Agent user or other agents invoke this method to get the wanted KRI. Input: strTopic is the queried topic, tList is the transferring list which records what agents have been queried and the transferred times among agents, called hop times. Time-toLive (TTL) is the maximum hop times allowed. Output: the query result of int type. There are three values: R_SUCCESS, R_NORESPONSE, R_FAILURE.*/ public int Query (String strTopic, TransferList tList) { if (!isNull(tList)) /*There is at least one querying agent in the transferring list*/ { /*check if current agent has been in the transferring list. If so, stop further action to avoid endless cycling*/ if (tList.Exists(getAgentID())) return R_FAILURE; /*stop action if the first agent in the transferring list, called query initiating agent, does not have access rights for queried topic*/ else if (!CheckAccessRights(tList.getInitiatingAgentID(), strTopic)) return R_FAILURE; }
441
/*perform random search if both local search and community search failed in obtaining the wanted KRI. Only the query initiating agent performs random search to avoid flooded messages.*/ if (isNull (tList))/*Transferring list has not been generated yet, which means that current agent is the query initiating agent*/ nRet = RandomSearch(strTopic); return nRet; } /*Function: Current agent searches CIKRI’s stored locally and sends relevant ones to the query initiating agent to get corresponding KRI’s till the query initiating agent has obtained a satisfying KRI or the local CIKRI’s are exhausted. Input: strTopic is the queried topic, tList is the transferring list which records what agents have been queried and the transferred times among agents, called hop times. Time-toLive (TTL) is the maximum hop times allowed. Output: the query result of int type. There are three values: R_SUCCESS, R_NORESPONSE, R_FAILURE.*/ private int LocalSearch (String strTopic, TransferList tList) { float fSim; int nResult = R_FAILURE; /*get the minimum valve-value of semantic similarity from environment variables*/ float fAlpha = getContext().getParameter (‘‘SemanticSimilarityValveValue’’); /*generate sorted CIKRI’s in descending order according to their semantic similarity with queried topic*/ for (CIKRI ci: LocalArrayCIKRI)//iterate all the local CIKRI’s { /*calculate semantic similarity between local CIKRI and queried topic using Eq. (1)*/ fSim = CalcSimilarity (ci.getClassName(), strTopic); //only consider ci with similarity greater than fAlpha if (fSim P fAlpha) { put ci with its fSim in a collection cCI; } } Sort cCI in descending order according to fSim; //get the query initiating agent KnowAgent agInitiate; if (isNull(tList)) agInitiate = KnowAgent.FromID(getAgentID()); else agInitiate = KnowAgent.FromID (tList.getInitiatingAgentID()); /*send each CIKRI to the query initiating agent until the user of the query initiating agent obtains a satisfying KRI or the ordered collection is exhausted*/ for (CIKRI ci: cCI) { /*send CIKRI to the query initiating agent, which in turn retrieves the corresponding KRI and the user evaluates if he/she is satisfied with the result.*/ nResult = SendResponsetoAgent(agInitiate, ci); /*stop search if the user of the query initiating agent has got the satisfying result or the query initiating agent has not responded for a long time*/ if (nResult == R_SUCCESS k nResult == R_NORESPONSE) break; } return nResult;
//perform local search int nRet = LocalSearch (strTopic, tList); /*stop search if the query initiating agent has obtained a satisfying KRI or the query initiating agent has not responded for a long time*/ if (nRet == R_SUCCESS k nRet == R_NORESPONSE) return nRet; /*perform community search if local search failed in obtaining the wanted KRI*/ nRet = CommunitySearch (strTopic, tList)) /*stop search if the query initiating agent has obtained a satisfying KRI or the query initiating agent has not responded for a long time*/ if (nRet == R_SUCCESS k nRet == R_NORESPONSE) return nRet; }
442
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
/*Function: search other agents in the community of current agent, i.e., having high ACDT or preference similarity with current agent, till the query initiating agent has obtained a satisfying KRI or the local CIKRI’s are exhausted. Input: strTopic is the queried topic, tList is the transferring list which records what agents have been queried and the transferred times among agents, called hop times. Time-toLive (TTL) is the maximum hop times allowed. Output: the query result of int type. There are three values: R_SUCCESS, R_NORESPONSE, R_FAILURE.*/ private int CommunitySearch (String strTopic, TransferList tList) { float fDgree; boolean bRet = false; int nResult = R_FAILURE; /*Community search can only be performed when hop times in transferring list are no more than TTL*/ if (isNull (tList)) InitializeTransferList(); else if (tList.Timeout())//the hop times has reached the maximum hop times allowed return false; else{ /*add current agent ID in the transferring list and increase hop times by 1*/ tList.AddTransfer(getAgentID()); } /*Start: Search those agents with a high contribution degree in the queried topic.*/ /*get the minimum valve-value of agent contribution degree in a topic ( ACDT) from environment variables*/ float fBeta = getContext().getParameter (‘‘ConributionDegreeValveValue’’); /*generate sorted providers in descending order according to their ACDT*/ Put the providers of the local CIKRI’s in a collection cProvider. for (KnowAgentID kai: cProvider) { /*calculate agent contribution degree in topic strTopic using Eq. (4)*/ fDgree = CalcACDT (kai, strTopic); /*only consider providers with ACDT greater than valve-value*/ if (fDegree P fBeta) { put kai with its fDegree in a collection cKAI; } } Sort cKAI in descending order according to fDegree; /*Issue a query to the agent with the highest ACDT until the user gets the satisfying KRI or the ordered collection is exhausted.*/ for (KnowAgentID kai: cKAI) { KnowAgent agDest = KnowAgent.FromID (kai); //transfer the query to the recipient agent. nResult = SendQuerytoAgent (agDest, strTopic, tList); if (nResult == R_SUCCESS k nResult == R_NORESPONSE) break; } /*stop search if the user of the query initiating agent has got the satisfying result or the query initiating agent has not responded for a long time*/ if (nResult == R_SUCCESS k nResult == R_NORESPONSE)
return nResult; /*End: Search those agents with a high contribution degree in the queried topic.*/ /*Start: Search those agents with high similar preferences.*/ /*get the minimum valve-value of agent preference similarity from environment variables*/ float fGamma = getContext().getParameter (‘‘PrefSimilarityValveValue’’); /*generate sorted providers in descending order according to their preference similarity with current agent*/ for (KnowAgentID kai: cProvider) { /* calculate preference similarity of each provider with current agent using Eq. (5)*/ fDgree = CalcPrefSim(kai, getAgentID()); /*only consider providers with ACDT greater than valve-value*/ if (fDegree P fGamma) { put kai with its fDegree in a collection cKAI; } } Sort cKAI in descending order according to fDegree; /*Issue a query to the agent with the highest preference similarity until the user gets a satisfying KRI or the ordered collection is exhausted.*/ for (KnowAgentID kai: cKAI) { KnowAgent agDest = KnowAgent.FromID(kai); //transfer the query to the recipient agent. nResult = SendQuerytoAgent(agDest, strTopic, tList); if (nResult == R_SUCCESS k nResult == R_NORESPONSE) break; } /* End: Search those agents with high similar preferences.*/ return nResult; } /*Function: the query initiating agent queries random agents aiming to get the wanted KRI. Input: strTopic is the queried topic Output: the query result of int type. There are three values: R_SUCCESS, R_NORESPONSE, R_FAILURE.*/ private int RandomSearch(String strTopic) { int nResult = R_FAILURE; TransferList tList = InitializeTransferList(); /*search randomly until succeeding or reaching maxTryTimes*/ for (int i = 0; i < maxTryTimes; i++){ //get an agent randomly by Ping-Pong messages KnowAgent agRandom = randomAgent(); //send query to that agent nResult = SendQuerytoAgent (agRandom, strTopic, tList); /*stop search if the query initiating agent has obtained a satisfying KRI or the query initiating agent has not responded for a long time*/ if (nResult == R_SUCCESS k nResult == R_NORESPONSE) break; } return nResult; }
P. Liu et al. / Knowledge-Based Systems 24 (2011) 427–443
References [1] L. Beig, A. Ghavamifar, Organizational memory building blocks of virtual organizations, in: 3rd International Conference on Information and Communication Technologies: From Theory to Applications, Publishing, 2008, pp. 1–6. [2] S. Bergamaschi, G. Gelati, F. Guerra, M. Vincini, An intelligent data integration approach for collaborative project management in virtual enterprises, World Wide Web 9 (2006) 35–61. [3] D.J.H. Burden, Deploying embodied AI into virtual worlds, Knowledge-Based Systems 22 (2009) 540–544. [4] L. Camarinha-Matos, H. Afsarmanesh, The virtual enterprise concept, in: Proceedings of the IFIP TC5 WG5.3/PRODNET Working Conference on Infrastructures for Virtual Enterprises, Publishing, 1999, pp. 3–14. [5] L. Camarinha-Matos, H. Afsarmanesh, Virtual enterprise modeling and support infrastructures: applying multi-agent system approaches, Multi-Agent Systems and Applications (2001) 335–364. [6] T.-Y. Chen, Knowledge sharing in virtual enterprises via an ontology-based access control approach, Computers in Industry 59 (2008) 502–519. [7] A. Cheng Leong, R. Gay, O. Sourina, Data integration for virtual enterprise in cyberworlds, in: 2005 International Conference on Cyberworlds, Publishing, 2005, pp. 395–398. [8] H. Fujita, J. Hakura, M. Kurematu, Intelligent human interface based on mental cloning-based software, Knowledge-Based Systems 22 (2009) 216–234. [9] Z. Fuqing, H. Yi, Y. Dongmei, A multi-objective optimization model of the partner selection problem in a virtual enterprise and its solution with genetic algorithms, The International Journal of Advanced Manufacturing Technology 28 (2006) 1246–1253. [10] M. Ganzha, M. Paprzycki, M. Gawinecki, C. Badica, E. Popescu, P. Myon-Woong, Adaptive information provisioning in an agent-based virtual organizationpreliminary considerations, in: 2007 International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, Publishing, 2007, pp. 235– 241. [11] H. He, S. Zhongzhi, C. Yong, Q. Lirong, Service-oriented knowledge management on virtual organizations, in: The Fifth International Conference on Computer and Information Technology, Publishing, 2005, pp. 1050–1054. [12] J.-J. Huang, The evolutionary perspective of knowledge creation – a mathematical representation, Knowledge-Based Systems 22 (2009) 430–438. [13] Y. Huang, N. Contractor, Y. Yao, CI-KNOW: recommendation based on social networks, in: The 9th Annual International Digital Government Research Conference, Publishing, 2008, pp. 27–33. [14] P. Jackson, J. Klobas, Transactive memory systems in organizations: implications for knowledge directories, Decision Support Systems 44 (2008) 409–424. [15] T. Jiuyang, Z. Weiming, X. Weidong, T. Daquan, S. Junfeng, Self-organizing service-oriented peer communities, in: Advanced International Conference on Telecommunications/International Conference on Internet and Web Applications and Services, Publishing, 2006, pp. 99–103. [16] L. Juan, V. Son, Ontology-based clustering and routing in peer-to-peer networks, in: Sixth International Conference on Parallel and Distributed Computing, Applications and Technologies, Publishing, 2005, pp. 791–795. [17] J. Kanet, W. Faisst, P. Mertens, Application of information technology to a virtual enterprise broker: the case of Bill Epstein, International Journal of Production Economics 62 (1999) 23–32. [18] C.-H. Kim, Y.-J. Son, T.-Y. Kim, K. Kim, K. Baik, A modeling approach for designing a value chain of virtual enterprise, International Journal of Advanced Manufacturing Technology (2006) 1025–1030. [19] T. Kim, S. Lee, K. Kim, C. Kim, A modeling framework for agile and interoperable virtual enterprises, Computers in Industry 57 (2006) 204–217.
443
[20] H. Li, R. Xiao, A multi-agent virtual enterprise model and its simulation with Swarm, International Journal of Production Research 44 (2006) 1719–1737. [21] L. Liu, N. Antonopoulos, S. Mackin, Social peer-to-peer for resource discovery, in: 15th EUROMICRO International Conference on Parallel, Distributed and Network-Based Processing, Publishing, Naples, Italy, 2007, pp. 459–466. [22] P. Maglio, J. Bailey, D. Gruhl, Steps toward a science of service systems, Computer 40 (2007) 71–77. [23] G.S. Mahalakshmi, T.V. Geetha, Argument-based learning communities, Knowledge-Based Systems 22 (2009) 316–323. [24] I. Nonaka, A dynamic theory of organizational knowledge creation, in: E.S. David (Ed.), Knowledge, Groupware and the Internet, Publishing, Boston, 2000, pp. 3–42. [25] T.J. Norman, A. Preece, S. Chalmers, N.R. Jennings, M. Luck, V.D. Dang, T.D. Nguyen, V. Deora, J. Shao, W.A. Gray, N.J. Fiddian, Agent-based formation of virtual organisations, Knowledge-Based Systems 17 (2004) 103–111. [26] L. Pingfeng, N. Guihua, C. Donglin, Exploiting semantic descriptions of products and user profiles for recommender systems, in: 2007 IEEE Symposium on Computational Intelligence and Data Mining, Publishing, 2007, pp. 179–185. [27] L. Rasmussen, A. Wangel, Work in the virtual enterprise: creating identities, building trust, and sharing knowledge, AI & Society 21 (2007) 184–199. [28] J. Risson, T. Moors, Survey of research towards robust peer-to-peer networks: search methods, Computer Networks 50 (2006) 3485–3521. [29] W. Robert, Algorithm97 (shortestpath), Communication of the ACM 5 (1962) 345. [30] J. Sarkis, S. Talluri, A. Gunasekaran, A strategic model for agile virtual enterprise partner selection, International Journal of Operations and Production Management 27 (2007) 1213–1234. [31] L. Sheng-Cheng, W. Yu-Min, D.Y. Shee, A conceptual framework of transactive networks system, in: The 41st Hawaii International Conference on System Sciences, Publishing, 2008, pp. 1–10. [32] R. Vandaie, The role of organizational knowledge management in successful ERP implementation projects, Knowledge-Based Systems 21 (2008) 920–926. [33] C.-Y. Wang, H.-Y. Yang, S.-C.T. Chou, Using peer-to-peer technology for knowledge sharing in communities of practices, Decision Support Systems 45 (2008) 528–540. [34] J. Wang, K. Gwebu, M. Shanker, M.D. Troutt, An application of agent-based simulation to knowledge sharing, Decision Support Systems 46 (2009) 532– 541. [35] Y. Wei-dong, Z. Ming, Research on knowledge management framework based on peer-to-peer computing, in: Third International Conference on Intelligent Information Hiding and Multimedia Signal Processing, Publishing, 2007, pp. 313–316. [36] R. Yaman, S. Moussa, Virtually formed manufacturing enterprises, Assembly Automation 26 (2006) 287–298. [37] Q. Yang, B. Song, W. Lu, Y. Zhang, Integrating knowledge maps in design process configurations for concurrently engineered product development, Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture 221 (2007) 431–445. [38] H. Zhuge, Active e-document framework ADF: model and tool, Information and Management 41 (2003) 87–97. [39] H. Zhuge, Resource space grid: model, method and platform, Concurrency and Computation Practice and Experience 16 (2004) 1385–1413. [40] H. Zhuge, Y. Xing, Integrity theory for resource space model and its application, Advances in Web-Age Information Management (2005) 8–24. [41] Java Agent DEvelopment Framework, March 12, 2009. . [42] Jena – A Semantic Web Framework for Java, March 26, 2009. . [43] The Protégé Ontology Editor and Knowledge Acquisition System, March 23, 2009. .