the results for digitizing written text.
34
Finally, it can be argued that the target
problem of many systems (that provide
user services) is simply to grow a large
community of users, for various reasons
(such as personal satisfaction, charging
subscription fees, selling ads, selling
the systems to other companies). Buy/
sell/auction websites (such as eBay)
and massive multiplayer games (such
as World of Warcraft) for instance fit this
description. Here, by simply joining the
system, users can be viewed as implicitly collaborating to solve the target problem (of growing user communities).
The second kind of implicit system
we consider is a piggyback system that
exploits the user traces of yet another
system (thus, making the users of this
latter system implicitly collaborate) to
solve a problem. For example, over time
many piggyback CS systems have been
built on top of major search engines,
such as Google, Yahoo!, and Microsoft. These systems exploit the traces
of search engine users (such as search
logs, user clicks) for a wide range of
tasks (such as spelling correction, finding synonyms, flu epidemic prediction, and keyword generation for ads6).
Other examples include exploiting user
purchases to recommend products,
26
and exploiting click logs to improve the
presentation of a Web site.
19
Cs systems on the Web
We now build on basic system types
to discuss deployed CS systems on the
Web. Founded on static HTML pages,
the Web soon offered many interactive
services. Some services serve machines
(such as DNS servers, Google Map API
server), but most serve humans. Many
such services do not need to recruit users (in the sense that the more the better). Examples include pay-parking-ticket services (for city residents) and
room-reservation services. (As noted,
we call these crowd management systems). Many services, however, face
CS challenges, including the need to
grow large user bases. For example,
online stores such as Amazon want a
growing user base for their services,
to maximize profits, and startups such
as epinions.com grow their user bases
for advertising. They started out as
primitive CS systems, but quickly improved over time with additional CS
features (such as reviewing, rating,
the user interface
should make it
easy for users to
contribute. this is
highly non-trivial.
networking). Then around 2003, aided
by the proliferation of social software
(for example, discussion groups, wiki,
blog), many full-fledged CS systems
(such as Wikipedia, Flickr, YouTube,
Facebook, MySpace) appeared, marking the arrival of Web 2.0. This Web
is growing rapidly, with many new CS
systems being developed and non-CS
systems adding CS features.
These CS systems often combine
multiple basic CS features. For example,
Wikipedia primarily builds a textual KB.
But it also builds a structured KB (via
infoboxes) and hosts many knowledge
sharing forums (for example, discussion groups). YouTube lets users both
share and evaluate videos. Community
portals often combine all CS features
discussed so far. Finally, we note that
the Semantic Web, an ambitious attempt to add structure to the Web, can
be viewed as a CS attempt to share structured data, and to integrate such data to
build a Web-scale structured KB. The
World-Wide Web itself is perhaps the
largest CS system of all, encompassing
everything we have discussed.
Challenges and solutions
Here, we discuss the key challenges of
CS systems:
How to recruit and retain users? Recruiting users is one of the most important CS challenges, for which five major solutions exist. First, we can require
users to make contributions if we have
the authority to do so (for example, a
manager may require 100 employees
to help build a company-wide system).
Second, we can pay users. Mechanical
Turk for example provides a way to pay
users on the Web to help with a task.
Third, we can ask for volunteers. This
solution is free and easy to execute,
and hence is most popular. Most current CS systems on the Web (such as
Wikipedia, You Tube) use this solution.
The downside of volunteering is that it
is hard to predict how many users we
can recruit for a particular application.
The fourth solution is to make users
pay for service. The basic idea is to require the users of a system A to “pay” for
using A, by contributing to a CS system
B. Consider for example a blog website
(that is, system A), where a user U can
leave a comment only after solving a
puzzle (called a captcha) to prove that U
is a human. As a part of the puzzle, we