=Paper=
{{Paper
|id=Vol-201/paper-7
|storemode=property
|title=Gobbleing Over the Web With Semantic Turkey
|pdfUrl=https://ceur-ws.org/Vol-201/26.pdf
|volume=Vol-201
|dblpUrl=https://dblp.org/rec/conf/swap/GriesiPS06
}}
==Gobbleing Over the Web With Semantic Turkey==
Gobbleing over the Web with Semantic Turkey
Donato Griesi, Maria Teresa Pazienza, Armando Stellato
DISP, Università di Roma “Tor Vergata”
{griesi, pazienza, stellato }@info.uniroma2.it
offering clear separation between knowledge data (the WHAT)
Abstract—In this work we introduce Semantic Turkey, a and web links (the WHERE), allowing for innovative
Semantic Extension for the popular web browser Mozilla Firefox. navigation of the acquired information as well as of the pages
Semantic Turkey can be used to annotate information from where it has been collected.
visited web sites and organize this information according to a
personally defined ontology. Clear separation between knowledge
data (the WHAT) and web links (the WHERE) is established into II. RELATED WORKS
the knowledge model of the system, which allows for innovative As an evidence of the great interest for the matter, several
navigation of the acquired information and of the pages where it actions have been undertaken in the last years towards the
has been collected. This paper describes the architecture of the
Semantic Turkey extension for Firefox, discusses its development
realization of so called Semantic Browsing solutions for the
in the context of the FILAS technophore project, shows its most Web. In this section we will briefly recall a few of them.
interesting features and presents our plans for future Haystack [14], developed inside the laboratories of the
improvements of the tool. MIT, was conceived as an application that could be used to
browse arbitrary Semantic Web information in much the same
Index Terms—Semantic Annotation, Semantic Desktop, Web fashion as a Web browser can be used to navigate the Web.
Navigation, Human Computer Interface
Standard point-and-click semantics let the user navigate over
aggregation of RDF repositories from different arbitrary
I. INTRODUCTION
locations. The application is built as an extension for the
W HILE new solutions for Semantic Desktops and
Innovative Browsing of file systems ([13], [22]) are
arising in these days, one of the instruments which is mostly
popular Integrated Development Environment Eclipse [5]; this
choice facilitates extension of the tool thanks to Eclipse
flexible plug-in mechanism, but requires the user to adopt
correlated to WWW – the Web Browser – and which should Eclipse as a platform for browsing the web and collecting data
be more prone to the wind of innovation which is blowing from it: a strong demand to the average user, who would just
from the Semantic Web, remains confined to its old fashioned prefer to rely on his trusted personal web browser and try out
interaction modalities. Despite a few initiatives to extend their other features which are not too invasive for his usual way of
standard functionalities, like Google Notebook [9], web working.
browsers offer now no more than the classical services – for The opposite approach is being followed by Magpie [3],
collecting and organizing bookmarks and for retrieving the which is deployed as a plug-in for the Microsoft Internet
history of past navigation activity – which we have been used Explorer Web Browser. In its first incarnation, Magpie
to in almost a decade. The web is however not the same of ten allowed for semantic browsing, intended as the parallel
years ago: today almost every information can be accessed navigation of purely “exposed” web content and of its
even (if not solely) from the WWW so that every web user is associated semantic layer (an ontology associated to the web
exposed to a huge amount of information which is difficult to resource, which semantically describes its content). Magpie
manage and retrieve. New paradigms are thus necessary to also allows for collaborative semantic web browsing, in that
support web browsing and to aid in collecting and retrieving different persons may gather information from the same web
the data which is observed during navigation. resource and exchange it on the basis of a common ontology.
In this work we introduce Semantic Turkey, a Semantic Recent work on Magpie [4] extended the platform more and
Extension for the popular web browser Mozilla Firefox [6], more towards the vision of the Semantic Web as “an open web
which can be used to annotate information from visited web of interoperable applications” [1], by allowing bi-directional
sites and organize this information according to a personally exchange of information among users and services, which can
defined ontology. Semantic Turkey should not be addressed as be opportunistically located and composed, either manually
a “Semantic Web Browser” (whatever the nature of this term, (web services) or automatically (semantic web services).
which will probably take shape in the next future), but it is From (part of) the same authors of Haystack, comes Piggy-
instead intended as a personal desktop solution for organizing Bank [10], an extension for the Firefox web browser [6] that
and managing the knowledge acquired during web navigation, lets Web users extract individual information items from
an advanced replacement for the traditional “Favorites” menu, within web pages and save them in RDF, replete with
metadata. Piggy Bank then lets users make use of these items empirical observations of Tauscher and Greenberg [19] (also
right inside the same web browser. These items, collected from cited in [3]) which reported the following statistics on the
different sites, can then be browsed, searched, sorted, and types of actions carried out by the typical web user:
organized together, regardless of their origins and types.
- 58% of pages visited are revisits
Piggy-Bank users may also rely on Semantic Bank, a web
- 90% of all user actions are related to navigation
server application that lets them share the Semantic Web - 30% of navigation actions are through the ‘Back’
information they have collected, enabling, as for Magpie, button
collaborative efforts to build sophisticated Semantic Web - less than 1% of navigation actions use a history
information repositories from daily navigation through their mechanism
enhanced web browser. - ~ 5% of navigation actions use bookmarks lists (also
known as “hotlists”, “favorites” etc...)
III. MOTIVATIONS
What emerges is a great need for efficient recovery of
Our research work, funded by the FILAS (Finanziaria Laziale already visited pages (and, more in general, of already
di Sviluppo) agency under contract C5748-2005, has been accessed knowledge), which is not matched by an adequate use
focused on innovative solutions for browsing the web and for of the available instruments (back buttons are only useful if the
organizing the information which is observed during visited page is among the last visited pages in the same
navigation. The interest of the FILAS agency in this project session, which can occur quite often, while the instruments to
has been motivated by their necessity of developing useful recover past knowledge, like history and bookmarks, are
tools for assisting the work of the technophore, a particular scarcely adopted).
figure which has the role of identifying and suggesting
innovative technological solutions for industries. The IV. APPROACH: REQUIREMENTS AND DESIGN GOALS
technophore’s effort is devoted to improve the business
We thus focused on finding innovative solutions for collecting,
processes of companies involved in a technology innovation
managing and retrieving data observed during web navigation.
phase, as well as to suggest or promote new market directions
Our key goal was to overcome the limited usability of
for their activity. These suggestions walk through the
bookmarks lists, which:
discovery of proper technological solutions and possibly of the
identification of the right contacts (academic institutions, - see weblinks as first class citizens. They can be
research centers or even other companies) which reveal to be categorized by implicitly adding them to a bookmarks
of interest for the objectives of the company. folder, but they are no way separated from the
The technophore has generally an high level education and a knowledge they represent. More links could be related
wide expertise in a given knowledge domain, though to the same subject, but there is no way to represent
originality of mind, creativity and attitude to research are key this, except considering the subject as a folder itself,
aspects of his profile, as he is often exposed to strongly thus betraying the intended equation:
underspecified demands, where the problem must be identified folder = category. Also, in some cases, it could be
even before solutions, and where interesting clues may emerge important to identify the portion of a page which
from unexpected information sources. contains the relevant information which caused it to be
bookmarked (e.g., “John Doe” is cited in a long web
In our interviews with one of the technophores working for
document which is very generic and not directly related
the FILAS agency, unexpected aspects emerged putting
to John Doe; we would like to take note of the page, but
serious doubts on the kind of contribution we could make to
still maintain the focus on the real subject of our
aid their work: the interviewed technophore told us that she interest and immediately recognize where it has been
often got ideas by listening to the radio, or by watching a given identified).
spot on the TV (which were often unrelated to her original - do not foresee any kind of multiple categorization. Any
investigation), or simply by reading web sites and mailing lists. folder cannot belong to two or more different folders (a
In many cases, good ideas were also accompanied by rapid kind of multiple inheritance between categories), nor
flashbacks over things seen “somewhere” and “somewhen” in can any single weblink belong to more than one folder
the past, but which were difficult to recall. No intelligent (multiple instantiation).
system could be able to behave in such a fashion, suggesting - as a consequence of the two above, single knowledge
new ideas or interacting with such a wide variety of media (the resources cannot assume any kind of structure. It is not
scenario is very similar to the Semantic Web vision described possible to further characterize a weblink, or to relate it
by Tim Berners-Lee et al. in [1]), but, limiting to the Internet with other ones (except putting them in the same
media, we could surely support technophores over the folder/category).
“where/when have I seen it?” aspect which is also fundamental Our project headed towards the development of a sort of
for their work, and which often involves a lot of time required
to retrieve the desired information.
Our experience is aligned with the outcomes of the
“semantic notepad”1 offering basic functionalities for: of the functionalities of a well assessed, stable and complete
software for web browsing, and a non invasive offer for the
1. capturing information from web pages, both by
user, who can still use his web browser he has been acquainted
considering the page as a whole, as well as by
annotating portions of their text with.
2. editing a personal ontology for categorizing the The second layer, the service layer, is realized through a
annotated information and, possibly, to exchange collection of Java Web Services, published through the Web
information with other people. This ontology may also Server “Jetty” [11]. Jetty is implemented entirely in Java, and
be used in different contexts: for example, a personally the architecture foresees its use as an embedded component.
populated FOAF ontology [7] could be used as a This means that the Web Server and the Web Application run
contact list, possibly exporting it to the personal mail in the same process, without interconnection overheads and
browser other sort of complications. This solution also allows for a
3. navigating the structured information as an underlying flexible use of the tool, since it can both be adopted as a
semantic net which, populated with the many completely autonomous web browser extension, as well as a
relationships which bind the annotated objects personal access point for collaborative web exploration and
between them, eases the process of retrieving the annotation: in the latter case, a centralized solution is being
knowledge which was buried by the past of time. For adopted, in which every clients communicate with the same
example, a user could discover that two persons which Jetty server.
he has kept track of in separate sessions (by annotating The third layer, the persistence layer, is constituted by the
their presence and some aspects of their profiles component for managing the ontology, which is written in the
appearing in visited web pages), work in the same OWL language [15]. It has been realized by using Sesame [2]
place, or have any kind of connection he would not
and the OWLIM plugin [12]. Sesame is an open source RDF
recall with any kind of traditional
database with support for RDF Schema inference and
bookmarking/annotation service. This feature is
querying. Since the Knowledge Model of Semantic Turkey is
described in detail in section VI on User Interaction.
4. Clearly separates the business model from the user expressed in the OWL Lite [16] dialect of the Web Ontology
interface, by adopting a “knowledge service” Language, the OWLIM plugin has been employed to provide
architecture. This way, the same architecture could be OWL Lite reasoning to the Sesame component.
exploited for an enhanced personal web browser as A. The three layers
well as for a shared environment for collaborative
The following sections describe more in detail the three
semantic tagging of web pages.
layers which constitute the architecture of Semantic Turkey
In this sense, Semantic Turkey differentiates from similar, 1) Presentation Layer: As previously mentioned, the
previously described, tools, as it offers a lightweight structure, presentation layer has been realized as an extension to the web
which completely exploits the interface of the hosting web browser Firefox. The User Interface has been created through
browser (with respect to, for example, the complex HTML a combined use of the XML User Interface Language XUL
interface of Piggy-Bank) and which grants the user maximum [25], XBL [23] and Javascript language.
(and easy) control over its personal knowledge model (while The User Interface extension physically appears as a
Magpie adopts ontologies which have been defined sidebar, containing the ontology tree, which may be shown on
elsewhere). Our experience with and feedback received by the the left side of the window by selecting dedicated “ontology”
FILAS technophores have been completely successful, in that item added in “Tools” menu. The icons that represent the
they felt Semantic Turkey as a really ease-to-use add-on to nodes of the tree distinguish between classes and instances that
their traditional web browser, with an intuitive interface and belong to the ontology.
immediate response. The ontology is loaded/updated through calls to the server,
carried out using the Ajax [8] technique: the data – in XML
V. ARCHITECTURE format – is thus mainly exchanged between the two layers in
The architecture of Semantic Turkey consists in a web an asynchronous way, to preserve good performance and to
application, designed using a three layer approach. not penalize the activity of the browser.
The first layer, the presentation layer, has been developed as The extension has also an other prerogative, which is not an
an extension for the web browser Firefox. Everything ordinary feature of the presentation layer: it has to assure that
regarding user interaction is directly managed by the Firefox the web server is being loaded as an embedded component, at
extension, thanks to a solution directly integrated in the the start of the browser process. To do that XPCOM [24]
browser. This approach has two main advantages: total reuse components, written in JavaScript, have been developed for
linking the chrome part and the Java part.
1
“Taccuino” is the italian translation of the term “Notepad”. In our lab, we In order to load the Java component, the Simile Java Firefox
hate so much the silly Italian expression “Taccuino Semantico” (Semantic Extension [18] has been used. This component permits to load
Notepad) that we started to use any kind of misspelling of its name, the java classes or jar packages, instantiate objects and to invoke
funniest (and most used) of which was “Tacchino Semantico” (Semantic
Turkey). The rest is history…
static methods or methods of the object previously instantiated.
Figure 1: Semantic Turkey Architecture
At the start of the browser process, after loading the java is being performed, in order to decouple the data model with
components (the java server code and the required libraries), a its manifestation in the presentation layer.
static method is being invoked with the role of instantiating the The majority of invocations to the server are being
web server. This solution makes it possible to install all the completed in an asynchronous way, so that, independently
application simply as a Firefox extension, without configuring from the workload that is subjected the server, the browser can
other software. continue to respond to the user. This is a crucial issue for the
2) Service / Persistence layer: This layer offers services usability of the application: expensive computations blocking
which may be invoked through http requests submitted normal behavior of the browser would otherwise not be
according to the Ajax paradigm, thus enabling communication tolerated by the user.
between the client (Firefox extension) and the server. The Besides supporting the communication with the client, the
server receives the requests coming from the client by GET or service layer provides the functionalities for definition,
POST http calls, carries out the operations associated to these management and treatment of the data. Several objects are
calls, and in case replies with an XML response. If a call described through an ontological model (see next section), to
implies the return of a XHTML page, a XSLT transformation represent both pure conceptual knowledge as well as
Figure 2: Annotating concepts from a web page and establishing relationships between them
application required information. abstracts from the storage device used (in-memory storage,
Finally, the service layer also provides another important disk-based storage, RDBMS) and takes care of inference.
functionality linked with the presentation layer. It allows for From the architecture perspective the Access APIs are the
the capability of visiting the ontology through a graph view, most important component. These APIs provide high-level
using the TouchGraph library [21]. TouchGraph is an open access functionality to client applications, either locally or
source tool for visualizing networks of interrelated remotely (over HTTP or RMI).
information. It renders networks of information concepts as Sesame can thus be deployed as an RDF database, with
interactive graphs that lend themselves to a variety of persistence in an RDBMS, or as a Java library for embedded
transformations. By engaging with the visual image, a user is use in applications. This last modality has been employed for
able to navigate through large networks of information and to the definition of the architecture. In our case, the ontology data
explore different ways of arranging the network's components is, by default, handled in memory and stored in the (local) File
on the screen. System, but it is possible to easily switch to the database
In order to access TouchGraph from presentation layer, it storage backend for managing very large ontologies. Also, the
has been used an apposite java applet, present in the library. ontology repository may be located in a different site, thus
Since the applet must be loaded on the server side, a specific offering different possibilities for decentralizing the
Java servlet has been written. The servlet works like a proxy, application.
redirecting the applet loaded, with the correct parameters, to
B. The Knowledge Model
the client side.
3) Persistence Layer: Sesame provides the abstraction layer The knowledge model of Semantic Turkey is based on four
over ontological data. The foundation of the component is the different layers of ontological knowledge.
Storage And Inference Layer (SAIL). This SAIL is an API that
1. The Application ontology: This ontology contains VI. USER INTERACTION
resources needed by Semantic Turkey to organize, The user may interact with the tree in the ontology panel to
retrieve and present information to the user. modify the ontology, by performing the following operations:
2. The Top Ontology (which owl:import the Application
Ontology): this ontology has originally been conceived 1. Drag and drop of a selection of a text from an html
inside our project for FILAS, and is thought for document displayed in the browser, on the icon that
representing a minimal knowledge which should be represents a class, in order to create an individual of
shared across the different technophores. This that class. The selection will become the ID of the new
ontology can simply be seen as a guideline for driving individual and a new icon will be shown below the
the personal annotations of each of the technophores, selected class.
and could be used as well as a shared ontology for 2. Drag and drop of a selection of text from an html
exchanging information between them. document, on the icon that represents an individual, in
3. The Personal/Domain Ontology (which owl:import order to characterize a property which that individual
the Top Ontology): The third ontological layer allows owns. A specific window will open, prompting the
for a personalized organization of the knowledge user to choose the fitting property. The selection will
which is extracted and collected from the web. become the ID of a new individual that represents the
4. The Knowledge Base (which owl:import the Top instance of the range of the property chosen. If the
Ontology), i.e. the set of instances which populate the selected property is an object property, a new icon will
personal ontology of the user. be created relatively to the range class.
3. Drag and drop of a selection of text from an html
The Application ontology is composed of resources useful
document, on the icon that represents an individual, in
for managing the annotation functionalities. These, among the order to define a further lexicalization for that
others, include the classes: individual. The user can choose, from the same panel
- Annotable identifying the part of the ontology which described before, if the selection characterizes a range
can be annotated by the user of a property or a lexicalization.
- URI which offers links to the visited pages 4. Direct editing of the ontology. In particular it is
- SemanticAnnotation containing the annotations possible to modify the names or delete the created
performed by the user, described by their URL, related classes/individuals The last operation may be
concept etc… performed for the concepts only if they belong to the
domain ontology (as described before). Furthermore a
and the properties: user may create a subclass of a preexisting class,
- has_location linking URLs with Annotable concepts defining new properties besides the ones that are
- observed_lexicalization describing the form with inherited. Lastly, it is possible to directly create new
individuals in the ontology, instead of generating them
which a given object appeared in a specific annotation;
through annotations from the web. All the operations
this property has been preferred to a more precise
are being carried out through specific panels that may
information, like reporting the byte offset of the
be selected by a dedicated menu which can be
annotation inside the page, to make retrieval of the
activated by right clicking on the nodes of the tree, in a
annotated object more robust with respect to minor
way much similar to traditional ontology editing tools,
changes that occurred to the page over time.
like Protégé [17] or TopBraid Composer [20]. By
The Application ontology is invisible to the user and is only offering complete interaction with the ontology via the
exploited by the application to get the proper logic for XUL interface (instead of an HTML interface, like in
administering the upper ontological layers. Resources Piggy-Bank), the user is not diverted from his current
originated from the Top ontology are read-only, and cannot be navigation (i.e. the main browser panel is still focused
deleted as a consequence of any edit operation by the user. In a on the visited web page, which would otherwise be
really general perspective, the Top Ontology could even be left replaced by the HTML UI) and may maintain its
empty (i.e. if there is no supposed shared conceptualization attention over the observed web page.
which must be adopted by users working on a common 5. Add synonyms for the concepts. By the apposite menu,
annotation framework; in this case, each user has to build from which can be activated by right click on the tree
scratch its own conceptualization, which will be thus elements that represent concepts, it is possible to
define other lexicalizations (in different languages) for
constituted by the sole Personal Ontology), or contain general
the ontology concepts.
purpose resources, like the already cited FOAF ontology,
which could be adopted to maintain a list of contacts, possibly As an additional feature, the user may graphically explore
exchanging information with other applications (like a mail the ontology (see
browser or a client for instant messaging). Figure 3), thanks to the SemanticNavigation component. A
Java applet will be loaded on a new tab of the browser,
displaying the graph view of the ontology, allowing the user to
navigate its content. The nodes of the graph will be displayed
Figure 3: Semantic Navigation: recalling ontology and web links for the object “Armando Stellato”
in different manners, according to the nature of the ontological assist their “usual” web navigation with the possibility of
entity: nodes represent classes and individuals while properties annotating observed information, inside an ontological
are represented by the links between the nodes. For clarity of framework, to define a multilayered architecture in which
view, instances are displayed in a different manner compared platform independent software components have been merged
to the classes. Dragging the mouse pointer on a node that (for portability purposes) and to realize and exploit a
represents an instance, it is possible to open a popup window, structured knowledge representation model in which different
which contains the URLs of the pages where that instance has ontologies coexist, still maintaining their independence, while
been annotated. appearing as a personal unique ontological world description
Finally, Semantic Turkey reports to the user, through a to the end user
dedicated status bar, the pages which have been previously The first developed system, based on our prototype of
annotated. When the user visits an already annotated page, an Semantic Turkey, received an enthusiastic feedback from its
icon with the shape of a pencil is being shown in the lower part users (FILAS technophores), which mostly appreciated its
of the browser. If the icon is being clicked, the html text robustness, easiness of use and non-invasive integration inside
entries that represent the past annotations will be emphasized their usual way of searching over the web.
(providing the page still contains those entries) with a light We are now in the direction of refining the overall
background color. architecture to support further needs of sharing different parts
of represented knowledge among different users. This will
VII. CONCLUSIONS require managing concurrent accesses to update different
In this paper Semantic Turkey, a special environment for levels of the ontology. The next short-term objective, which
supporting end users in annotating information caught from we plan to reach in the next few months, is to make Semantic
visited web sites, has been described. Turkey pass from its first release, specifically tailored over
The main objectives have been to allow users to extend and FILAS needs, to a publicly available browser extension, which
will be usable by anyone to semantically annotate web pages. [9] Google Notebook: http://www.google.com/notebook
[10] D. Huynh, S. Mazzocchi & D.R. Karger “Piggy Bank: Experience the
This will require a mechanisms for creating and managing new Semantic Web Inside Your Web Browser”. In proc. of the Fourth
ontologies and/or importing existing ones, and possibly adding International Semantic Web Conference (ISWC05), pages 413-430,
further functionalities for ontology editing. Galway, Ireland, November, 2005
[11] Jetty Java HTTP Servlet Server. http://jetty.mortbay.org/jetty/.
[12] A. Kiryakov, D. Ognyanov & D. Manov OWLIM – a Pragmatic
ACKNOWLEDGMENT Semantic Repository for OWL. In Proc. of Int. Workshop on Scalable
We would like to thank the FILAS agency for supporting Semantic Web Knowledge Base Systems (SSWS 2005), WISE 2005,
New York City, USA, 20 November 2005
our research in the development of the first prototype of [13] Leaftag project: http://www.chipx86.com/wiki/Leaftag
Semantic Turkey. [14] D. Quan and D. Karger. How to Make a Semantic Web Browser. In
Special thanks to the reviewers which gave valuable Proc. Of the Thirteenth International World Wide Web Conference
(WWW2004), New York City, USA, May, 2004
feedback for the final drawing of this paper and useful [15] Web Ontology Language: http://www.w3.org/TR/owl-features/
suggestions for improving our work. [16] OWL Lite Description:
http://www.w3.org/TR/2004/REC-owl-features-20040210/#s3
REFERENCES [17] J. Gennari, M. Musen, R. Fergerson, W. Grosso, M. Crubézy, H.
Eriksson, N. Noy, and S. Tu. The evolution of Protégé-2000: An
[1] T. Berners-Lee, J. Hendler, and O. Lassila, “The Semantic Web: A new environment for knowledge-based systems development. International
form of Web content that is meaningful to computers will unleash a Journal of Human-Computer Studies, 58(1):89–123, 2003
revolution of new possibilities”. Scientific American, 279(5): p.34-43. [18] Simile Java Firefox Extension:
May 2001 http://simile.mit.edu/java-firefox-extension/
[2] J. Broekstra, A. Kampman & F.v. Harmelen I. Horrocks & J. Hendler [19] L. Tauscher, and S.Greenberg. “How People Revisit Web Pages:
(ed.) Sesame: “A Generic Architecture for Storing and Querying RDF Empirical Findings and Implications for the Design of History
and RDF Schema”. Springer Verlag, Proceedings of the First Systems”. International Journal of Human Computer Studies, 2001.
International Semantic Web Conference, Sardinia, Italy, pages 54-68, 47(1): p. 97-138.
July 2002 [20] TopBraid Composer: http://topbraidcomposer.info/
[3] M. Dzbor,, J. Domingue and E. Motta. “Magpie: Towards a Semantic [21] Touchgraph Development Page: http://touchgraph.sourceforge.net/
Web Browser”. In proc. of the 2nd International Semantic Web [22] S. Wheeler. “Tenor: A Contextual Linkage Framework for KDE”
Conference (ISWC03), Florida, USA. downloadable from:
[4] M. Dzbor, E. Motta and J. B. Domingue. “Opening Up Magpie via http://websvn.kde.org/*checkout*/trunk/playground/base/tenor/docs/ten
Semantic Services”. In Proc. of the 3rd Intl. Semantic Web Conference or-architecture.pdf?rev=475778
(ISWC04), November 2004, Japan April 6, 2005
[5] Eclipse Platform Technical Overview: [23] Extensible Binding Language:
http://www.eclipse.org/articles/Whitepaper-Platform-3.1/eclipse- http://www.mozilla.org/projects/xbl/xbl.html
platform-whitepaper.html [24] XPCOM. http://www.mozilla.org/projects/xpcom/
[6] Firefox home page: http://www.mozilla.com/en-US/firefox/ [25] XML User Interface Language (XUL) Project.
[7] Friend Of A Friend Ontology (FOAF): http://xmlns.com/foaf/0.1/ http://www.mozilla.org/projects/xul/
[8] J.J. Garrett. “Ajax: A New Approach to Web Applications”. Feb. 18,
2005
http://www.adaptivepath.com/publications/essays/archives/000385.php