1 Introduction

Information searching tasks on the web has been regarded as an important challenge on many research areas and communities, e.g., search engines and web-based information systems. There have been many issues to improve the performance of such information searching tasks on the web. For example, many studies on web crawlers have been trying to deal with indexing large-scale web resources which have been linked with each other. In addition, there are some studies to rank the web resources retrieved from a certain query. Thus, we can note that in the context of this information searching tasks, the problematic characteristics of the web environment are (i) a large amount of the information (so called “information overload” problem), and (ii) dynamics of the information on the web.

The main issue that we focus on in this paper is user navigation on the web. This navigation process is a series of interactions between a user and web for finding relevant information (Dömel 1995; Jung 2005). There have been a number of systems exploiting user profiling methods through analyzing explicit and implicit behaviors of each user (e.g., query logs, visiting frequencies, and so on). For example, the personal assistant agent system (Amant et al. 1998) is able to predict next actions of the users, thereby enabling it to perform such actions as proactively prefetching and showing candidate web pages based on the user’s preferences (Lieberman et al. 2001).

However, due to such problematic characteristics of the web, navigation on the web is one of the most lonely and time-consuming tasks (Maes 1994). In contrast to those single user-centered approaches, in this study, we propose an alternative navigation way of supporting collaborations among multiple users in real time. For example, in Fig. 1, Anne can get the relevant information from Jason, because their browsers can detect that they are in the similar context (e.g., “Sweden” and “Stockholm”). Collaborative browsing (hereinafter, co-browsing) proposed in this paper is an approach by which users can exchange knowledge and resources with their like-minded neighbors while searching for information on the web. By online communication between users, they can acquire not only relevant resources, but also many types of user experiences (e.g., heuristics and know-how) from the others, such as how to select and rank the search results, how to make an appropriate sequence of queries, and how to choose the best searching method, as well as providing the other users with their own knowledge. Hence, we expect that improve the performance of information searching on the web can be improved.

Fig. 1
figure 1

Co-browsing among multiple users

To do so, we design a ContextGrid model to compare user contexts and to integrate them for supporting contextual collaborations between users. In the co-browsing system, we have to consider how to recognize current contexts of each user, and, more importantly, how to compare the contexts between two users. These processes are also important for implicitly conducting various tasks, e.g., generating queries, filtering the query results, and recommending relevant results. Particularly, in this study, we focus on analyzing a set of user bookmarks for extracting user interests. The co-browsing system can easily be aware of the current user contexts by matching the current page view to these user interests. Also, for better understanding on recommended information, open API-based mashups are exploited to enrich the recommendations with additional information from various information sources. For example, in Fig. 1, even though Anne has been received relevant information from Jason, it is difficult for her to understand it correctly and efficiently. The system may be able to find out that Jason is in a similar context from his browser illustrating the geographical location of “Stockholm” by using Google map API.Footnote 1

The outline of this paper is as follows. In the following Section 2, we explain background knowledge about co-browsing systems and mashup techniques. Also, several previous studies related to this paper are presented. Section 3 describes how to extract user interests and contexts for co-browsing, and how to enrich the information by using the existing mashups. In Section 4, the architecture of the proposed co-browsing system is presented. After the evaluation of the proposed system is discussed in Section 5, we draw a conclusion of this paper in Section 6.

2 Background and related work

In this section, we explain two main technologies composing the proposed co-browsing system, which are (i) co-browsing, and (ii) mashups. Furthermore, the related systems on these technologies are compared to the system.

2.1 Collaborative browsing

Since Rodden (1991) has classifies co-browsing systems into four classes,Footnote 2 there have been a number of systems for supporting collaborations between people during web browsing. As some traditional co-browsing systems, ARIADNE (Twidale and Nichols 1998), WebWatcher (Joachims et al. 1997), and Let’s Browse (Lieberman et al. 1999) have shown some interesting features. In Let’s Browse, people have to use the infrared sensors for the purpose of detecting the presence of users without any explicit actions, and people can instantly exchange information between them. ARIADNE system has to record all of the searching processes in a digital library (Twidale and Nichols 1998), thus allowing other users this information to be visualized and reused whenever they want.

However, the most significant difference between such co-browsing systems is how to extract user preferences from personal activities. While Let’s Browse and ARIADNE use statistical scheme (e.g., TF-IDF term weighting) to analyze the keyword frequency of the web pages visited by the corresponding users, WebWatcher and BISAgent (Jung 2005) focus on incremental learning approaches from the aggregated user activities. More exactly, BISAgent deals with the extraction of the user contexts through the semantic learning of their activities from a set of bookmarks. Ontology learning process can be conducted by information collected from heterogeneous sources, so that the semantic structure can be retrieved and applied to document management and clustering. Similarly, Magpie (Domingue et al. 2004) has tried to employ semantic web technologies to support co-browsing between users.

2.2 Mashup by open APIs

The mashup is a web application (or a web page) that uses and combines data, presentation or functionalities from two or more sources to create new services. There are various technologies and standards for conducting data presentation and user interactions. Such technologies are HTML/XHTML, CSS, Javascript, Asynchronous Javascript and XML (Ajax). Especially, in case of Web services-based functionality, we can employ open API services, which are based on XMLHTTPRequest (XHR), XML-RPC, JSON-RPC, SOAP and REST, to improve our own web applications.

Recently, a mashup-based web development has been more widely applied in many domains, e.g., healthcare (Cheung et al. 2008; Belleau et al. 2008), geospatial domain (Becker and Bizer 2009; De Longueville 2010), and education (Mason and Rennie 2007). According to ProgrammableWeb,Footnote 3 which is a directory service of mashup applications, about 60% of the current mashups are related to geographical mapping services.

In the area of web browsing application, particularly, rich web applications (RWA) have been developed to call available APIs for collecting various types of information from different sources. They mainly expect that the information might be helpful for the users’ searching tasks on the web.

3 Contextual collaboration

Co-browsing system needs to find out what the corresponding users are currently doing. The user context is the most important information for making relevant connections between users (Koo et al. 2011). In fact, there can be various possibilities to be aware of user contexts from both explicit and implicit use activities. In this study, we focus on only two activities for the user context awareness process. We assume that (i) a set of bookmarks collected by a user and (ii) current web page are related to the user context.

3.1 Contexts from user browsing

In this paper, the current contexts during user browsing can be obtained by matching between the current webpage and a set of bookmarks. This matching process is to find out semantic relationships between the current webpage and a set of bookmarks (Jung 2011a). It means that the system can determine which bookmarks are most semantically related to the current webpage through this matching process. Thereby, personal ontology for each user should be constructed, before the matching.

Definition 1

(Personal ontology (Jung 2008a)) For a given set of annotations \(\mathcal{A}_{\mathcal{I}}\) from a set of bookmarks \(\mathcal{I}\), a personal ontology \(\mathbb{O}\) is represented as

$$ \mathbb{O} := \langle \mathcal{C}, \mathcal{R}, \mathcal{I}, \mathcal{E}_{\mathcal{R}}, \mathcal{A}_{\mathcal{I}} \rangle \label{eq:Ontology} $$
(1)

where \(\mathcal{C}\), \(\mathcal{R}\) and \(\mathcal{I}\) are a set of classes and a set of relations (e.g., equivalence, subsumption, and disjunction) between the classes, respectively. \(\mathcal{E}_{\mathcal{R}} \subseteq \mathcal{C} \times \mathcal{C}\) is a set of relationships between classes, represented as a set of triples \(\{\langle c_i, r, c_j \rangle | c_i, c_j \in \mathcal{C}, r \in \mathcal{R} \}\). Also, \(\mathcal{A}_{\mathcal{I}}\) indicates a set of annotations between a bookmark in \(\mathcal{I}\) and a class in in \(\mathcal{C}\).

However, in practice, it is difficult to automatically build the personal ontologies from a set of bookmarks. Thus, during bookmarking the webpages into a local repository, as shown in Fig. 2, users are asked to create their own personal ontologies, and also to annotate the bookmarks by using the ontologies. In this study, we represent the personal ontology by using OWL2.Footnote 4

Fig. 2
figure 2

Personal ontology from bookmarks. The dotted arrows indicate the semantic annotation of the bookmarks

A personal ontology is extended with subjective descriptions about contents in personal bookmarks. As the users bookmark more webpages, their personal ontologies are incrementally enlarged by adding new classes, merging ontology fragments, and declaring additional matches between classes. User context is represented by using his own personal ontology, while browsing for searching for a certain resource. Note that because the semantic metaphor of the resource might be uncertain and ambiguous, each browsing system is trying to select the most relevant context among all possible candidates and to maximize understandability of neighbors’ systems. We have extended ontology-based context representation (Jung 2008a) in terms of web browsing. The context as a set of concepts can be obtained by a matching function between the personal ontology and the webpage at a certain moment.

Definition 2

(Context) When a user u k visits a webpage w t at time t, his context \(ctx_{k}^{(t)}\) obtained by a matching function \(\mathcal{M}\) is given by

$$ ctx_{k}^{(t)} = \left\{c_i | c_i \in \mathcal{M}\left(\mathbb{O}^{\mathcal{P}}_k, res^{(t)}\right) \right\} \label{Def:Context} $$
(2)

where res (t) is a set of terms which are highly occurred in webpage w. Also, the matching function \(\mathcal{M}\) will be discussed later.

Additionally, the set of terms res (t) from the current webpage can be simply selected if the number of occurrences of a term is more than a certain threshold τ. This threshold will be decided by empirical evaluation.

3.2 Finding neighbors

Once the user contexts are extracted from the user browsing activities, the system has to find only the collaborators who can exchange relevant information with him. It is also based on matching between two user contexts in a same moment. Thus, given two users u i and u j at time t, the matching (Jung 2008b, 2010a, bb) can be simply represented as

$$ \begin{array}{rll} &&\mathcal{M} \left(ctx_{i}^{(t)}, ctx_{j}^{(t)}\right) \\&&\sum\limits_{E \in \mathcal{N}(C)} \pi_{E}^{C}MSim_Y\left(E\left(ctx_{i}^{(t)}), E(ctx_{j}^{(t)}\right)\right) \label{Eq:Matching} \end{array} $$
(3)

where \(\mathcal{N}(C)\subseteq \{E^{1}\dots E^{n}\}\) is the set of all relationships in which classes can be involved (for example, attributes, subclasses, or instances). The weights \(\pi_E^C\) should be normalized (i.e., \(\sum_{E \in \mathcal{N}(C)} \pi_{E}^C = 1\)). Since we restrict the user context in Eq. 2 to class labels (L) and three relationships in \(\mathcal{N}(C)\), which are the superclass (E sup), the subclass (E sub) and the sibling class (E sib), Eq. 3 is rewritten as:

$$ \begin{array}{rll} \label{Eq:ExtendedMatching} &&\mathcal{M} \left(ctx_{i}^{(t)}, ctx_{j}^{(t)}\right)\\ &&\pi_{L}^C sim_L\left(L\left(ctx_{i}^{(t)}\right), L\left(ctx_{j}^{(t)}\right)\right) \\ &&\ \pi_{\rm sup}^C MSim_C\left(E^{\rm sup}\left(ctx_{i}^{(t)}\right), E^{\rm sup}\left(ctx_{j}^{(t)}\right)\right) \\ &&\ \pi_{\rm sub}^C MSim_C\left(E^{\rm sub}\left(ctx_{i}^{(t)}\right), E^{\rm sub}\left(ctx_{j}^{(t)}\right)\right) \\ &&\ \pi_{\rm sib}^C MSim_C\left(E^{\rm sib}\left(ctx_{i}^{(t)}\right), E^{\rm sib}\left(ctx_{j}^{(t)}\right)\right).\\ \end{array} $$
(4)

where the set functions MSim C compute the similarity of two entity collections. Consequently, the matching between two user contexts returns a value in [0, 1]. If it is 1, we assume that they are working exactly same tasks.

As a matter of fact, a similarity between two sets of classes in the user contexts can be established by finding a maximal matching maximizing the summed similarity between both classes:

$$ MSim_{C}(S, S') = \frac{\max(\sum_{\langle c, c'\rangle\in {\rm Pairing}(S, S')} \left( Sim_C(c, c') \right)} {\max \left( |S|, |S'| \right)}, \label{eq:8} $$
(5)

in which Pairing provides any possible matching between these two sets of classes. Finally, the context matching process can find a number of neighbors who are working on the semantically related tasks in real time.

To implement this, in practice, we have exploited a multi-agent based platform where each agent is embedded into each browser of an user.

As shown in Fig. 3, all of the agents have to send the user contexts to facilitator agent which is located in the middle. The facilitator can play an important bridge role among the other agents, once it conduct the context matching process between all possible pairs of users. For example, the facilitator can easily find that ‘Anne’, ‘Tom’ and ‘Hong’ are looking for information about “Sweden”. By the facilitator’s suggestion, these two corresponding agents (or browsers) will open the channel for sharing their views.

Fig. 3
figure 3

A multi-agent based architecture for co-browsing

3.3 Information integration by semantic mashup

The next issue is to integrate various types of web data (e.g., simple textual documents, images, maps, multimedia data, and so on) collected from open APIs. For instance, in Fig. 3, even though the three users ‘Anne’, ‘Tom’ and ‘Hong’ are working similar tasks, it is difficult to detect the user contexts and also more difficult to directly compare them.

To overcome the problem, we have proposed a “semantic mashup” scheme for integrating heterogeneous information from multiple sources. This scheme is based on a set of adapters. The adapter can transform the semantics into the other one which is universally understandable. Thus, the facilitator can efficiently enrich the information by such integration tasks by open APIs. For example, the adapter for a mapping service should be in advance selected for transforming a geographical location (e.g., longitude and latitude) into a city (or a country). Then, the city’s name can be compared to the label of the class in the personal ontologies for conducting the context matching process.

Thus, in this study, we have been focusing on three main types of open APIs, as shown in Table 1. The common task of these adapters is to transform the output of the APIs into a textual form for making them to be comparable.

Table 1 Targeted APIs for adapters

4 Mashup-based co-browsing system

In this section, we want to describe the whole architecture of the proposed mashup-based co-browsing system.

As shown in Fig. 4, the system consists of two main parts which are (i) client-side component and (ii) server-side one. Each client needs to employ the personal agent component which has five modules.

  • Bookmark repository. This is a simple local directory for the bookmark files saved by the user.

  • Browser. Similar to the ordinary web browsers, users can take any activities through this module. It means the users are interacting with the personal agent. For illustrating a number of additional views retrieved from other neighbors, it has employed a tab component.

  • Communication facility. It is indicating all gadgets related to communications. Mainly, in client side, it has a function for generating client socket for the communication.

  • Context monitor and formulator. This module can aggregate all of the user activities (Jung 2009) during browsing. More importantly, it have two sub-modules for formulating the user context.

    • Ontology editor: An important characteristic is that the ontology can import other ontologies and a set of partitioned ontology fragments. For example, some standard (upper-level) ontology can be employed with OWL vocabularies like owl:imports.

    • Semantic annotator: The monitored user activities are matched to the personal ontologies. Also, the saved bookmarks are annotated with semantics from the ontology.

  • Adapter invocator. It is to enrich the information with the resources retrieved buy open APIs. Thus, this can select proper adapter to transform.

Fig. 4
figure 4

The system architecture of mashup-based co-browsing system

As the second part, the service-side component is composed of five modules.

  • Communication facility. It indicates communication features. Especially, server side needs to manage multiple server, simultaneously.

  • Adapter directory. It is a list of adapter. Personal agents from clients can look up this directory to receive the proper adapter for transformation.

  • Yellow page for clients. It is a list of users who want to access this system. Simple authentication process is conducted by this module.

  • Context matcher. It can collect the user contexts from all clients, and try to understand the relationships between the contexts by similarity-based matching.

  • Bookmark cache. It is a simple cache memory for some bookmarks which are frequently used. It is important for improve the scalability of the system with a large number of clients.

To implement this multi-agent based co-browing platform, BISAgent (Jung 2005) has been extended to exchange more relevant resources between users with a number of different open APIs.

5 Evaluation

The proposed co-browsing system has been evaluated by analyzing user feedbacks. We have invited 68 undergraduat students to prove the performance of the proposed system. In order to reduce the scope of their tasks, we asked them to select one questions from ten questions related to “vacation.”, and to answer the question. Thus, they had to seek information related to their contexts.

We have focused on two evaluation issues, which are (i) performance of information searching, and (ii) user satisfaction of information searching.

5.1 Performance of information searching

There were two user groups which are G co (34 students) and G nco (34 students). While G co are allowed to use the proposed co-browsing system for collaboration, G nco was based on single browsing. Surely, students in G nco were used other communication tools, e.g., email, instant messangers, and so on. During two weeks (September 6th to 19th, 2010), they had to collect as many relevant webpages as possible. As shown in Fig. 5, we have found that G co with the co-browsing system shows significantly higher performance than G nco.

Fig. 5
figure 5

Performance of information searching by two user groups G co and G nco

In the initial stage (about 3 days), they were quite similar results. We have realized that the students in G co needed to learn how to use the ontology editor and create their personal ontologies. Once they were good at such tools, the performance of information searching and sharing has been quickly increased.

5.2 User satisfaction

As second evaluation issue, we have asked the students how much they were satisfied with the results which were recommended by the system, in terms of two indicators, (i) recommendation speed and (ii) information enrichment by open APIs.

As shown in Table 2, most of them were satisfied with those two indicators with 82.4% and 94.1%, respectively. After we have asked why two students were not satisfied with the first indicator, we realized that the system bothered the students to build their own personal ontologies, and they felt too difficult on the tasks.

Table 2 User satisfaction

From this user survey, we found that open APIs are the important sources to enrich the simple textual documents (e.g., webpages). Even though we have focused on only the three open APIs, the students have shown very high rate of satisfaction.

6 Concluding remarks and future work

In this paper, we have proposed and evaluated a mahup-based co-browsing systems by using open APIs. To do so, we have defined a novel user context formalization and representation of web browsing processes by deriving relevant semantics from ontologies. Thus, a software agent can automatically realize and understand other users’ contexts by communicating with their agents.

As a conclusion of this work, we have shown that the proposed co-browsing system can efficiently support collaborations among users during searching for information on the web. Particularly, open API have been playing an important role of enriching the information with mapping and photos.

In the future, we are planning to extend the proposed system to various service-oriented domains (Jung 2011b). The first case will be on e-learning area. This area has been regarded as an important problem on blended learning.