decentralized and distributed photo sharing on the web

72
Project Report Decentralized and Distributed Photo Sharing on the Web Marian D ¨ ork Computervisualistik Otto-von-Guericke-Universit¨ at Magdeburg Supervisors: Andreas N ¨ urnberger Information Retrieval Group Otto-von-Guericke-Universit¨ at Magdeburg Javier Velasco Mart´ ın Center for Web Research Universidad de Chile February 12, 2007

Upload: lamliem

Post on 28-Dec-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Decentralized and Distributed Photo Sharing on the Web

Project Report

Decentralized and DistributedPhoto Sharing on the Web

Marian DorkComputervisualistik

Otto-von-Guericke-Universitat Magdeburg

Supervisors:

Andreas NurnbergerInformation Retrieval Group

Otto-von-Guericke-Universitat Magdeburg

Javier Velasco MartınCenter for Web Research

Universidad de Chile

February 12, 2007

Page 2: Decentralized and Distributed Photo Sharing on the Web
Page 3: Decentralized and Distributed Photo Sharing on the Web

Abstract

Tagging-based communities allowing users to share, organize, and explore resources such asphotos and bookmarks have pioneered the combination of social networking and resourcesharing. Formerly rather tiresome activities such as annotating information sources havebeen transformed to ways of connecting and interacting with other people. Resource sharingin a community environment allows contributors to engage in conversation, play, and chal-lenges. However, most resource-sharing communities have architectural and institutionalshortcomings due to their usually centralized, restricted, and profit-driven nature. Users donot have control over the community’s policies, functionality, or appearance. The social as-pects created between contributors are locked within a community, while it is usually notpossible to interact with users from other communities.

In this report, a decentralized approach towards photo sharing is introduced allowing forcommunity and conversation while fostering access to shared photos and empowerment ofusers. This concept draws insight from a diverse set of disciplines including information re-trieval, databases, distributed computing, interaction design, and psychology. A web-basedphoto repository is conceptualized employing tagging as a classification scheme. Establishedstandards and protocols of the blogosphere are used to provide for decentralized photo shar-ing in groups.

A prototype photo repository allowing for decentralized photo sharing was implemented.An overview of this software and its functionality is given, and challenges throughout theimplementation phase are presented, including considerations regarding presentation, in-teraction, uploading, syndication, and photo sharing groups. The document ends with asummary and a discussion of the results including an outlook to potential future work.

i

Page 4: Decentralized and Distributed Photo Sharing on the Web

ii

Page 5: Decentralized and Distributed Photo Sharing on the Web

Acknowledgements

The internship project in Santiago and the writing of this technical paper would not havebeen possible if I had not the help and support of many people.

First, I would like to thank my supervisors Javier Velasco and Andreas Nurnberger for pro-viding me with ideas and advice throughout the project.

Special thanks to Claudio L., Francia, Georges, Francisca, Valeria, Julio, Karina, Nelson, Clau-dio G., and Oliver who helped me out in many ways regarding the project and my stay inSantiago.

Many thanks to my Chilean friends Carla, Daniel, Carolina, and Jose making me feel athome in Santiago.

Thanks also to the countless people that program open source software, write articles fora free encyclopedia, and publish so many inspiring blog entries.

Thank you, Uta, for your support and understanding in times of spatial separation – notto mention the insightful advice of an experienced researcher.

Thank you, dear parents, for supporting me in so many ways.

iii

Page 6: Decentralized and Distributed Photo Sharing on the Web

iv

Page 7: Decentralized and Distributed Photo Sharing on the Web

Contents

List of Figures vii

List of Tables ix

List of Abbreviations xi

1 Introduction 11.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Context and Related Work 32.1 Library and Information Science . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.1 Relational Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2.2 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2.3 Entity-relationship Model . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 Information Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3.1 Content-based Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.2 Metadata-based Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 Hypertext and the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.1 World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.2 Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4.3 Web 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5 Web-based Community and Sharing . . . . . . . . . . . . . . . . . . . . . . . . 132.5.1 Psychology of Participation . . . . . . . . . . . . . . . . . . . . . . . . . 132.5.2 Object-centered Sociality . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.6 Decentralized Social Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.6.1 Blogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.7 Designing Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.7.1 User-centered Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.7.2 Software-oriented Design . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Concept of Decentralized and Distributed Photo Sharing 213.1 Centralized Communities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.1 Access and Empowerment . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2 Community and Conversation . . . . . . . . . . . . . . . . . . . . . . . 23

3.3 User Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.1 User Interviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.2 Personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4 Conceptual Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

v

Page 8: Decentralized and Distributed Photo Sharing on the Web

3.4.1 Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.4.2 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.4.3 Decentralization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4 Implementation of Atomique 294.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1 Used Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.1.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.1.3 Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2 Presentation and Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.2.1 Page and Site Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.2.2 Navigational Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2.3 Modificatory User Actions . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2.4 Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2.5 Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3 Photo Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.3.1 Form and Upload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.3.2 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3.3 Resizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.4 Syndication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4.1 Subscribing to Photos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4.2 Generation of Photo Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . 454.4.3 Parsing Photo Feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.5 Photo Sharing Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.5.1 User Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.5.2 Photo Distribution and Integration . . . . . . . . . . . . . . . . . . . . . 49

4.6 Limitations and Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.6.1 Usability and Customization . . . . . . . . . . . . . . . . . . . . . . . . 504.6.2 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.6.3 Community Aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.6.4 Security, Privacy, and Performance . . . . . . . . . . . . . . . . . . . . . 52

5 Summary and Outlook 535.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Bibliography 55

vi

Page 9: Decentralized and Distributed Photo Sharing on the Web

List of Figures

2.1 Scenario for a database system . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Relational model [Cod70] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Entity-relationship digram [Che76] . . . . . . . . . . . . . . . . . . . . . . . . . 52.4 Basic model of an information retrieval system [VR79] . . . . . . . . . . . . . . 62.5 Simple hypertext document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.6 Basic structure of the Word Wide Web . . . . . . . . . . . . . . . . . . . . . . . 92.7 Uniform Resource Locator (simplified) . . . . . . . . . . . . . . . . . . . . . . . 102.8 HTTP: a client/server architecture with optional scripting logic . . . . . . . . 102.9 ”Web 2.0 Meme Map” by O’Reilly [O’R05] . . . . . . . . . . . . . . . . . . . . . 122.10 Factors influencing contribution to online communities, by Wang and Fesen-

maier [WF03] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.11 Two approaches towards web-based community . . . . . . . . . . . . . . . . . 152.12 Web Site Design Method by De Troyer and Leune [TL98] . . . . . . . . . . . . 172.13 “A Berrypicking, Evolving Search” by Bates [Bat89] . . . . . . . . . . . . . . . 182.14 UML use case diagram depicting conversation on a weblog . . . . . . . . . . . 192.15 UML sequence diagram of a simplified HTTP request causing a database query 192.16 Model-view-controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1 Basic techniques of resource sharing . . . . . . . . . . . . . . . . . . . . . . . . 223.2 Accessing, publishing, and organizing resources embedded in a community

context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Steps of user research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 Scenario for photo sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.1 Overview of used technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2 Sequence diagram of Atomique’s basic mode of operation . . . . . . . . . . . 314.3 ERD for relation between photos and tags (attributes simplified) . . . . . . . . 324.4 Schema for relation between photos and tags (simplified) . . . . . . . . . . . . 334.5 Different page segments on wireframe and on actual presentation . . . . . . . 344.6 Site map of photo repository; dashed lines indicate restricted access for visitors 354.7 Content snippets conveying available resources in subsections . . . . . . . . . 364.8 Different ways of visualizing tags . . . . . . . . . . . . . . . . . . . . . . . . . . 374.9 Pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.10 Different types of icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.11 Exemplary confirm message, here before a set is deleted . . . . . . . . . . . . . 384.12 Two exemplary edit forms with corresponding links . . . . . . . . . . . . . . . 394.13 Editing the title of a photo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.14 Attaching tags to a photo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.15 Different types of notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.16 K2 and Atomique side by side . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.17 Upload form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.18 Options for IPTC encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

vii

Page 10: Decentralized and Distributed Photo Sharing on the Web

4.19 Different sizes for different contexts . . . . . . . . . . . . . . . . . . . . . . . . 444.20 RSS feed containing photos viewed by different applications . . . . . . . . . . 454.21 Creating a group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.22 Joining a group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

viii

Page 11: Decentralized and Distributed Photo Sharing on the Web

List of Tables

2.1 Motivation constructs [WF03] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Summarized results from user interviews regarding the goals associated withphoto sharing and the evaluation of Flickr as a photo sharing community . . 25

3.2 Personas with differing characteristics regarding context, goals, and features . 25

ix

Page 12: Decentralized and Distributed Photo Sharing on the Web

x

Page 13: Decentralized and Distributed Photo Sharing on the Web

List of Abbreviations

CBIR Content-based image retrieval

CSS Cascading Style Sheet

DBMS Database management systems

DNS Domain name system

DOM Document Object Model

ERD Entity-relationship diagram

ERM Entity-relationship model

HTML HyperText Markup Language

HTTP Hypertext Transfer Protocol

IR Information retrieval

IRS Information retrieval system

LIS Library and information science

P2P Peer-to-peer

PIF Personal Information Framework

RDF Resource Description Framework

RIA Rich Internet applications

RSS Really Simple Syndication, Rich Site Summary, or RDF Site Summary

TCP/IP Transmission Control Protocol and Internet Protocol (Internet protocol suite)

URL Uniform Resource Locators

UTF Unicode Transformation Format

W3C World Wide Web Consortium

XML Extensible Markup Language

xi

Page 14: Decentralized and Distributed Photo Sharing on the Web

xii

Page 15: Decentralized and Distributed Photo Sharing on the Web

1 Introduction

The following project report is the result of an internship undertaken between May andSeptember 2006 at the Center for Web Research1 in Santiago de Chile. The author has devel-oped a concept of decentralized and distributed photo sharing and implemented a prototypecalled Atomique2.

1.1 Motivation

The personal computer and the World Wide Web have advanced the ways information ispublished, accessed, and organized. Information technology is pervading everyday tasks in-cluding keeping in touch with friends, engaging in online communities, and obtaining newsand entertainment. In recent years, technology has allowed users to become more and moreinvolved in the actual content creation in the Web; photos taken with digital cameras orcamera-equipped cellular phones are published in photo sharing communities. These com-munities constitute a new kind of community based on sharing, exploring, and discussingresources, such as photos, bookmarks, or videos.

These developments have been supported by technological advances. Standard-supportingWeb browsers increasingly allow for a richer user experience, which in combination withfast internet connections transforms static Web pages into interactive applications. The Webis not only a giant collection of interlinked documents anymore, but it becomes a platformon which interactive software provides a broad set of functionalities.

Beyond providing the content users are more and more involved in decision making andmanagement processes of communities allowing for a new quality of democratic partici-pation. Projects receiving broad recognition for their participatory character and societalrelevance include the Wikipedia, the open source community, and the blogosphere. The fun-damental prerequisite for these and similar projects is openness. The Web itself is based onopen, agreed upon standards and protocols providing for innovation.

While resource sharing communities provide different ways to access shared resources,the communities’ architecture and policies are not up for discussion. In contrast to the men-tioned participatory projects, most hosted communities are driven by commercial interestsand not necessarily by participatory values. The user is mostly seen in the role of the con-tent consumer and creator, not the one involved in the management of the community. Thisimplies a lack of control over the accumulated social interaction a community member en-gages in over the time, e.g., comments. In addition, social interaction beyond communityborders is not possible. If a member, for instance, wishes to interact in more than one photo

1http://www.cwr.cl/2http://www.atomique.org/

1

Page 16: Decentralized and Distributed Photo Sharing on the Web

sharing community, she has to create duplicate profiles and upload duplicate photos, sincecompeting community providers do not seek interoperability. Furthermore, the centralizedcharacter of hosted communities puts the operators of the community in a position wherecensorship is technically possible.

1.2 Objectives

Considering the problems associated with centralized communities and the benefits of par-ticipatory projects the following research question is formulated:

How can a web-based architecture for photo sharing be conceptualized andimplemented enabling community and conversation and fostering access andempowerment?

1.3 Structure

The document is structured as follows:

• Chapter 2 gives an overview of existing approaches that have strongly influenced theproject. First, a background of library science, databases, and information retrieval ispresented, followed by a conceptual overview of the World Wide Web is given, in-cluding the technological underpinnings, psychological and social aspects of onlinecommunities, and decentralized social software. The chapter closes with a short intro-duction of relevant design methodologies.

• Chapter 3 develops the concept of decentralized and distributed photo sharing in con-trast to centralized communities including associated goals, results of user research,and the conceptual decisions.

• Chapter 4 describes the implementation of a photo repository allowing for decentral-ized photo sharing. An overview of the software and its functionality is given, andchallenges throughout the implementation phase are presented, including presenta-tion, uploading, syndication, and photo sharing groups. The chapter ends with ananalysis of the limitations of the implemented software and possible improvements.

• Chapter 5 provides a summary of the presented work and its results closing with anoutlook to potential future work.

2

Page 17: Decentralized and Distributed Photo Sharing on the Web

2 Context and Related Work

To layout the context for the development of a web-based architecture for decentralizedphoto sharing it is mandatory to look at the basics of data and information organization,coming from the library to the World Wide Web. Approaches will be discussed that intro-duce methods for publishing and organization of information sources with the goal to makeinformation more accessible to the reader or user. Furthermore, recent developments aroundweb-based communities raise questions about the relation between conversation, sharing,and classification. At the end of this chapter different design approaches are introduced.

2.1 Library and Information Science

One of the oldest cultural institutions having the goal of making information accessible isthe library. To achieve this ambition library and information science (LIS) emerged as adiscipline looking for measures and mechanisms for storage and retrieval of books and otherinformation sources. S. R. Ranganathan articulated its philosophical foundation in The FiveLaws of Library Science summarized as follows [Ran31]:

• Books are for use.

• Every person his or her book.

• Every book its reader.

• Save the time of the reader.

• The library is a growing organism.

While these principles seem outdated in a world where most information is stored elec-tronically, ensuring “free access to all sources” is still regarded as an ethical guideline amongresearchers and practitioners [PS04]. Even though there is an ongoing conflict between“pragmatism and idealism” within librarianship [Gor00] both demands are interdependentassuring easy, efficient, and egalitarian access to information.

A range of organizational measures and technological mechanisms are employed in li-braries for helping librarians organize and readers find books. Two strategies can be dif-ferentiated: a content-oriented strategy includes that librarians familiarize themselves witha domain and update bibliographies, while the form-oriented approach sees librarians em-ploying technical mechanism, e.g. updating a catalog [Hjo00].

One example of the form-oriented strategy is the card catalog sorted by author, title, andsubject headings that would be used to classify and categorize books. Further developments

3

Page 18: Decentralized and Distributed Photo Sharing on the Web

in classification are closely connected with the technological evolution in the field of com-puter science in general and with the research on databases and information retrieval inparticular.

2.2 Databases

Database management systems (DBMS) allow for storing data in a structured way, so thatquerying them is effective and efficient. Databases become necessary in environments wherea great number of applications or users need to access and modify a large amount of data.While the database itself constitutes only the structured data, the DBMS is the software en-abling administration, modification, and query of the database. Both database and DBMScomprise the database system as depicted in Figure 2.1.

DBMS

Database System

Database

Application nApplication 1 …

Figure 2.1: Scenario for a database system

2.2.1 Relational Model

There are several methodologies for conceptualizing databases, however, the relational modelas introduced by Edgar Codd constitutes the most widely used approach [Cod70]. As shownin Figure 2.2 the relational model introduces key concepts for storing data using interrelatedtables (relations) each comprising a set of columns (attributes), and the values stored in therows (tuples). The range of possible values an attribute can embrace are strictly specifiedby the data domain of an attribute. A primary key is an attribute or a set of attributes of arelation used for uniquely identifying a tuple; besides accessing a specific tuple it is used toestablish connections between different relations. All relations taken together constitute thedatabase schema.

2.2.2 SQL

To create, modify, or query relations stored in a database particular database languages areused, with SQL as the most prominent one. It allows, for instance, to formulate retrievalqueries by specifying what attributes are to be returned (SELECT), from which table (FROM),under which requirements (WHERE). A simple SQL query looks like this:

4

Page 19: Decentralized and Distributed Photo Sharing on the Web

A1 … An

value

R

Attributes

Schema

Tuples

Name

Figure 2.2: Relational model [Cod70]

SELECT photos.id, photos.title, photos.descriptionFROM photosWHERE photos.id = ’23’

2.2.3 Entity-relationship Model

Before a database is used for data storage it is essential to conceptualize how real-world ob-jects and their properties can be represented as relations and attributes. The entity-relationshipmodel (ERM) allows to model data entities and their relations in the form of a graphical no-tation, the entity-relationship diagram (ERD) [Che76]. This way complex database schemascan be designed and after completion translated into tables or SQL commands (see Figure2.3). Underlined attributes are primary keys used to unambiguously identify an instance ofan entity, i.e., a tuple of a relation. If an entity is dependent on another entity the former ispointing to the latter indicated by an arrow; in Figure 2.3 the entity ‘Photo’ would dependon the ‘Photographer’. The cardinality of a relation specifies how often an entity can en-gage in this relation with another entity. In the example, the photo can only be taken by onephotographer, yet the latter can take N photos.

Photographer takes Photo

Title

Id1 N

Name

Id

Figure 2.3: Entity-relationship digram [Che76]

Since databases are used for storing and retrieving data they are considered to be the keytechnology of data retrieval in contrast to information retrieval where databases are ratherused as a low-level tool.

2.3 Information Retrieval

With the advent, evolution, and distribution of computers researchers confronted the lim-itations inherent in previous classification methods with new approaches and mechanisms

5

Page 20: Decentralized and Distributed Photo Sharing on the Web

creating the scientific discipline of information retrieval (IR). From a user perspective a gen-eral IR scenario looks similar to the practice in libraries:

1. A person has access to a vast amount of information sources,

2. she approaches it with her information need, and

3. selects those information sources that serve her best.

The most straightforward, yet brute-force, solution to this scenario would be: the personhaving the information need would read all documents available in the collection and selectafterwards the relevant ones [VR79]. In the case of photo retrieval that would translate tolooking at all photos first to decide which photos to look at. This approach is obviouslyimpractical and futile due the number of information sources. Instead, IR aims at finding acomputer-supported procedure.

Processor

Collection

Query

Documents

Figure 2.4: Basic model of an information retrieval system [VR79]

IR research focusses on an integrated solution encompassing how information sources arerepresented, queried, and retrieved. The information retrieval system (IRS) serves as a modeldepicting the general concept of how an IR application can work (see Figure 2.4). On theinput side the user enters a query representing her information need and the maintainer ofthe system provides the document collection upon which the processor exercises the query.To return only relevant documents the IR system needs to be able to process both inputs,query and documents [VR79].

To achieve this IR is in part concerned with representing information sources as logicalviews [BYRN99] making the content accessible to the system with the goal to retrieve relevantinformation sources. There are two approaches for the generation of such logical views: 1)content-based and 2) metadata-based retrieval.

2.3.1 Content-based Retrieval

Content-based retrieval of text documents can be applied on document collections with full-texts or reduced text versions after processing methods, such as stemming and stop wordremoval. In the case of photos content-based image retrieval (CBIR) demands a complex setof methods borrowing insights from image processing. Low-level features, such as colors,textures, and shapes, can be extracted, however, using higher-level features demands moresophisticated mechanisms. To this day systems alone are not able to bridge the semanticgap, i.e., the difference between what a human observer perceives and interprets and what asystem can extract automatically [SWS+00, KZB04].

6

Page 21: Decentralized and Distributed Photo Sharing on the Web

Furthermore, searching for photos with a CBIR system using an alphanumerical queryposes the challenge that the retrieved features of the stored images are not represented aswords or descriptions but merely low-level image features. Alternatively a CBIR system canallow the user to query by example avoiding the challenge to phrase the information needin words [YI99].

General-purpose image retrieval systems that rely exclusively on automatic content-basedmechanisms are constrained to use only low-level features, since the extraction of higher-level features usually requires user interaction. To approach this limitation hybrid systemshave been suggested where both low-level image features and higher-level image annotationare used to retrieve relevant images. The user then needs to annotate photos and specifyimage objects [GJ97, ZH00] leading to the creation of separate information about the contentand context of an image, i.e., metadata.

2.3.2 Metadata-based Retrieval

In contrast to content-based retrieval relying exclusively on the content within an informa-tion source metadata is separate, “structured, encoded data that describe characteristics ofinformation-bearing entities to aid in the identification, discovery, assessment, and manage-ment of the described entities” [Dur84]. Photos created with today’s digital cameras alreadycarry metadata in the Exif1 format making contextual information, such as time and increas-ingly location, available that can be used to generate additional contextual information, suchas weather and daylight conditions, by accessing external sources [NHW+04]. Furthermore,most image processing and photo cataloging applications allow adding metadata, such asdescription, title, and keywords, within photo files into the IPTC headers2.

Tagging systems or folksonomies, such as Flickr3 or Del.icio.us4, constitute an approachwhere metadata about the topic, type, role, quality, etc. of an information source can beadded by the user or a number of users in an unstructured way. These systems allow a broaduser base to add free tags onto resources and thus organizing a large amount of informationsources [SLR+06, MNdD06] (see Section 2.5.2).

While tagging systems usually neither require nor allow entering structured metadata,there is an ongoing discussion whether structured or unstructured tagging yields better re-sults [Hea06]. Proponents of hierarchical faceted categorization show that faceted categoriesallow for a better exploration of great amounts of images or Web sites [YSLH03, EHS+02]. Ifa system follows a faceted approach, it has been suggested that users themselves should beable to add facets instead of being confronted by predefined categories [BISI+06].

Another approach aiming at ease in both navigation and tagging introduces an automaticclustering technique enabling analysis and interpretation of interrelation between free-formtags and resources [BKS06]. It has been shown that a navigable hierarchy can be generatedfrom a distribution of tags enabling better browsing without complicating the annotationprocess [HGM06].

1http://www.exif.org/specifications.html2http://www.iptc.org/IIM/3http://www.flickr.com/4http://del.icio.us/

7

Page 22: Decentralized and Distributed Photo Sharing on the Web

2.4 Hypertext and the Web

At the end of World War II Vannevar Bush envisioned a futuristic system or device calledmemex that would help its user to keep track of all kind of information sources in an in-tegrated environment [Bus45]. Inspired of how the human brain works he introduced theconcept of “associative trails” that would remember what sources the user already read andwhat kind of comments she left. Bush further explains how “any item may be caused at willto select immediately and automatically another” envisioning what Nelson later refined andconceptualized as hypertext [Nel67]:

“Hypertext is the combination of natural-language text with the computer’s ca-pacities for interactive, branching or dynamic display . . . of a nonlinear text . . .which cannot be printed conveniently on a conventional page.”

Conklin describes an ideal hypertext system as a “network of textual (and perhaps graphi-cal) nodes” holding hyperdocuments [Con87]. The user should be able to “create new nodesand new links to new nodes (for annotation, comment, elaboration, etc.) or to existing nodes(for establishing new connections)” in an uncomplicated way. An exemplary hypertext doc-ument could look like Figure 2.5, where (1) a remote document is referenced and (2) an imageis embedded. Note that the text referencing to the remote document is underlined.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum.Lorem ipsum dolor sit amet, consectetur adipisicing elit.

Ut enim ad minim veniam mollit

(1)

(2)

Figure 2.5: Simple hypertext document

2.4.1 World Wide Web

While the hypertext systems Conklin evaluated were merely proprietary prototypes for in-house research and development, Berners-Lee developed a decentralized hypertext frame-work, the World Wide Web, leading to a breakthrough of the hypertext paradigm [BL90].Within the WWW documents and information sources can be stored and provided by Webservers located all around the world interconnected via the Internet (see Figure 2.6).

The Web works due to the agreement on and the implementation of standards and pro-tocols supervised and articulated by the World Wide Web Consortium (W3C)5; the three es-sential building blocks of the Web are a markup language (HTML), a way to locate resources(URL), and a transport protocol (HTTP).

5http://www.w3.org/

8

Page 23: Decentralized and Distributed Photo Sharing on the Web

Web browser

Web server

Web server

Web server

Figure 2.6: Basic structure of the Word Wide Web

HTML

The HyperText Markup Language (HTML) specifies a syntax for creating structured and inter-linked documents, i.e., with headings, paragraphs, and hyperlinks pointing to sections ofthe same document or to other documents. The standard also allows to embed graphics andother resources into the document. The simplified HTML code for the hypertext documentdepicted in Figure 2.5 would look like this:

<html><head>

<title>Ut enim ad minim veniam mollit</title></head><body>

<h1>Ut enim ad minim veniam mollit</h1><img src="image.png" /><p>Duis aute irure dolor in reprehenderit in voluptate velitesse cillum.<br /><a href="http://www.example.com/remotedocument.html">Lorem ipsum</a>dolor sit amet, consectetur adipisicing elit.</p>

</body></html>

The HTML markup is encapsulated by the <html> tag. The <head> element allows thedefinition of meta information about the document, such as the title. The <h1> tag denotes aheading, <img> allows to embed an image file, and the <p> tag wraps a paragraph. Hyper-link are specified by adding the attribute href with the address of the referenced documentsas the parameter to the <a> tag encapsulating the text that appears underlined, here “Loremipsum”.

The way the content of a HTML file is presented can be laid down in the style formatCascading Style Sheet (CSS) enabling the separation of style and content. While HTML hasbeen originally developed for human-readable documents, the W3C has specified the Ex-tensible Markup Language (XML) as a generalized markup language that can be used for awide range of applications. It is possible to traverse HTML or XML trees and modify thereincontaining parts by using the Document Object Model (DOM).

9

Page 24: Decentralized and Distributed Photo Sharing on the Web

URL

Uniform Resource Locators (URL) represent human-readable addresses of documents or re-sources located on Web servers. The main parts are depicted in Figure 2.7:

Protocol Host name Path Query

http www.example.com /folder/index.php ? q=123:// #abc

Anchor

Figure 2.7: Uniform Resource Locator (simplified)

• The protocol defines the way the resource can be accessed, here naturally http.

• The host name is a human-readable way to locate a computer in a network; sometimesalso referred to as the domain name. The host name is mapped onto a numerical IPaddress using the domain name system (DNS).

• The path specifies a special location of a document located on the server.

• If the requested resource is a server-side script, it can process a query.

• The anchor identifies a specific section on a HTML page.

An individual hypertext document retrievable via the Web is referred to as a Web page,while a Web site refers to a collection of Web pages available at a host. URLs allow touniquely identify and locate information resources that are retrievable via the Web with theimplication that they can become part of web-based conversation (see Section 2.6.1).

HTTP

The Hypertext Transfer Protocol (HTTP) specifies the procedure for client/server communica-tion on the WWW. The Web browser is basically requesting a resource by using its URL as anaddress locating both the host and the path of the document on the server. The Web serveris providing the response as HTML (see Figure 2.8). The actual transport of the packagescontaining the data is undertaken by the mechanisms specified in the internet protocol suite(TCP/IP). In both OSI model and TCP/IP model HTTP is located in the application layer, ontop of several layers responsible for transportation and networking.

File system

Database

Server environmentClient environment

Web browser Web server

logic logicRequest

Response

Figure 2.8: HTTP: a client/server architecture with optional scripting logic

10

Page 25: Decentralized and Distributed Photo Sharing on the Web

While the original architecture of the WWW was based on making documents availablevia HTTP, the option to use logic has been added on both client and server side. ModernWeb browsers can execute client-side JavaScript embedded in HTML pages enabling basicmodification of the DOM. Furthermore, the HTML that is provided by the Web server can bemodified or generated by server-side software, e.g. written in the scripting language PHP,that allows to access databases, as well.

2.4.2 Semantic Web

A revised, more sophisticated approach towards representing information within the hy-pertextual Web is the Semantic Web where information should not only be represented in awell-formed way to the user, but also to the computer [BLHL01]. This way a computer pro-gram could read or process information bits to find an answer to a user query for instance.An example is the Resource Description Framework (RDF) allowing to identify conceptsor resources and put them in relation to each other by expressing simple statements. Doc-uments represented as markup carrying semantics, i.e., meaning, could be regarded as afurther stage of the logical view (see Section 2.3) enabling software to do basic informationprocessing and even some kind of reasoning possibly helping the user in satisfying her in-formation need. Agreed ways of describing concepts would be recapitulated in a sharedontology and “agents can reach a shared understanding by exchanging ontologies, whichprovide the vocabulary needed for discussion.”

While this approach received broad acclaim and was lauded as the next generation ofthe Web by many researchers, it didn’t leave academia as a practical guideline for immedi-ate application. Some argued that the idea of a ‘pure’ Semantic Web would be unrealisticand impractical others have conciliated it with the reality of web applications by introduc-ing some kind of structuring information into the HTML representation thus allowing moresophisticated processing [KC06].

2.4.3 Web 2.0

Another approach to develop the Web further started off as a title for the Web 2.0 Conferenceheld in October 2004. It was the attempt to rehabilitate the Web as a business platform, afterthe dot-com bubble bursted around the year 2000. While a highly controversial and fuzzyterm, it became a remarkably influential meme standing for innovation, openness, and par-ticipation (see Figure 2.9). O’Reilly, one of the conference organizers, describes Web 2.0 asa second phase of web-based software and services with substantial qualitative changes,yet simultaneously tying in with the original underpinnings of the WWW [O’R05]. He un-derstands the Web as a platform “without an owner, tied together by a set of protocols, openstandards and agreements for cooperation” setting the stage for a diverse set of protagonists.

While Web 2.0 has been argued to be an attitude, three technological characteristics can beidentified:

• Rich Internet applications (RIA) running within the web browser allow more desktop-like interaction. This has been conceptualized as Ajax referring to the combined use of

11

Page 26: Decentralized and Distributed Photo Sharing on the Web

BitTorrent:Radical

Decentralization

Wikipedia:Radical TrustStrategic Positioning: Web as Platform

User Positioning: Users control own data

Core competencies - Services, not packaged software - Architecture of Participation - Cost-effective scalability - Remixable data source and data transformations - Software above the level of a single device - Harnessing collective intelligence

Flickr,Del.icio.us:

Tagging,not Taxonomy

Gmail, Google Mapsand Ajax: Rich

User Experiences

PageRank,eBay reputation,Amazon reviews:

User as contributor

Blogs:Participation,

Not publishing

Google AdSense: Customer Self-serviceEnabling the Long Tail

“An attitude,not a technology

The Long Tail

HackabilityThe Right to Remix:

“Some rights reserved”

Emergent:User behavior

not predetermined

PlayGranular

Addressabilityof content

Rich UserExperience

Trust Your Users

Small PiecesLoosely Joined:

Web as Components

ThePerpetual

Beta

Data as the“Intel Inside”

Software that gets betterthe more people use it

Figure 2.9: ”Web 2.0 Meme Map” by O’Reilly [O’R05]

several deployed technologies such as HTML, JavaScript, and XMLHttpRequest [Gar05].After a Web page has been loaded the user can interact with it causing parts of the Webpage to refresh or change.

• Syndication allows users to subscribe to the content of Web sites enabling users to re-use published content as it is available in a structured content, such as RSS (see Sec-tion 2.6.1).

• Web Services enable Web applications to communicate with each other and exchangeinformation using agreed upon protocols and open application programming inter-faces (API).

In this new Web a crucial role is ascribed to the user in applications where the collectiveintelligence can be both fostered and harnessed. This fundamental idea is well exemplifiedby Web projects where collective value is created through personal use. O’Reilly calls thistype of systems architecture for participation (see Section 2.5.1 and 2.5.2).

While critics argue that using the term adds another meaningless buzzword, Web 2.0 hasbeen in fact associated with a number of positive values and successful design patterns lead-ing to a Web as it was meant to be in the first place [Gra05]. In addition, these values andpractices around Web 2.0 question how libraries position themselves in relation to their read-ers and what kind of roles are ascribed [Mil06, DH06].

12

Page 27: Decentralized and Distributed Photo Sharing on the Web

2.5 Web-based Community and Sharing

Information retrieval research focussed on technical solutions, while the responsibility of theuser was mostly limited to approaching repositories without taking part in the creation andclassification of information sources. However, the WWW with its participatory characterstarted to blur these boundaries between authors and readers, architects and users, leadingto interdisciplinary research trying to answer questions about virtual communities and socialinteraction on the Web. In the following sociological and psychological observations regard-ing contribution, social networking, and community in a web-based context are discussed,since decentralized photo sharing aims at enabling community around photos.

2.5.1 Psychology of Participation

One question associated with the rise of online communities is the motivation behind usersfor participation and contribution; to understand this personal and social incentives are in-volved. Kollock and Smith [Kol99] observed contributions in Web communities to be giftsdirected to the community or even to the general Web public that are motivated mostly byfactors, such as expected reciprocity, rise of reputation, and sense of efficacy.

The observations of Kollock and Smith have been supported by an empirical study un-dertaken by Wang and Fesenmaier looking for the factors supporting contribution in onlinecommunities [WF03]. While contribution is understood as active participation by writingarticles and answering questions, involvement refers to all kinds of activities communitymembers can undertake including passive tasks such as reading. Members of a travel com-munity were asked to (voluntarily) evaluate 20 items potentially motivating the contributionto the community. These items have been combined to five motivation constructs using a fac-tor analysis (see Table 2.1).

Construct DescriptionInstrumental relationships and social supportEfficacy helping out; making a differenceQuality control ensuring good resultsStatus reputation in the communityExpectancy expected reciprocity of contribution

Table 2.1: Motivation constructs [WF03]

Furthermore the “ease of communication”, the overall involvement of members in gen-eral, and the personality of the member regarding social involvement in general have beenanalyzed. The result of the study suggests that the most important factors for contributionare the general involvement in the community, the motivation items instrumental, efficacy,expectancy, ease of communication, and to a lesser degree the personality of the member (seeFigure 2.10).

A study by Beenen et al. based on theories of social psychology asked what kind of designmeasures can support higher rate of contribution among community members [BLW+04].

13

Page 28: Decentralized and Distributed Photo Sharing on the Web

Ease of comm.

Instrumental

Efficacy

Quality control

Status

Expectancy

Personality

Involvement

Contribution

.11

.20

.25

.20

.19

.12

.57 .60

Figure 2.10: Factors influencing contribution to online communities, by Wang and Fesen-maier [WF03]

The study was undertaken with members of a movie rating community. The effect of twodesign mechanisms on user contribution was studied:

1. Accentuation of uniqueness of contributions and benefit to individual and/or group

2. Individual and collective Goal-setting

The influence of the first mechanism was tested by soliciting community members withdiffering email messages emphasizing different levels of uniqueness and benefit. It turnedout that those members that were alluded to the uniqueness of their contributions con-tributed more. The study did not support that a individual or collective benefit would fostercontribution. The second part was also undertaken by email messages with the variables ofindividual or collective and specific or broad goals. While it did not have a great influencewhether a goal was directed to a group or to an individual, it has been shown that specificgoals yield higher contributions than general ones.

2.5.2 Object-centered Sociality

The central idea behind social network sites, e.g. Friendster, MySpace, and Facebook, isusers mapping their existing relationships and, to a minor degree, finding new contacts. Thisprevalent aspect of these sites has been argued to be “an odd combination; it is the publicexhibition of private relationships in order to allow for new private interactions” [dan04].

In contrast to social network sites tagging systems, such as Flickr and Del.icio.us, are fo-cused firstly on sharing and tagging resources, in this case photos and bookmarks, and sec-ondly on socializing (see Figure 2.11). It has been argued that “social networking servicesthat really work are the ones that are built around objects” [Eng05], e.g. shared photos orbookmarks, supporting the notion of an object-centered sociality [Cet97].

Tagging sites have shown that annotation does not need to be a solitary, cumbersomechore. Perceived social presence of others supports a user to add more descriptive annotation

14

Page 29: Decentralized and Distributed Photo Sharing on the Web

(a) Explicit social networking (b) Object-centered sociality

Figure 2.11: Two approaches towards web-based community

to a resource [Lee06]. Tagging thus becomes a social activity with new ways of collectiveauthorship [Ret05].

2.6 Decentralized Social Software

Social software refers to the usage of a software enabling interaction and community betweenmore than two people, i.e., interaction within groups. Rockwell introduced some designprinciples for social software frameworks which should not imply simulation of social in-teraction but rather conversation including technical characteristics such as modularity andpeer-to-peer networking [Roc97]. In fact a peer-to-peer (P2P) framework has been developedfor photo exchange inspired by P2P file sharing networks [ACMDH03].

Centralized providers of social software usually imply a number of limitations upon func-tionality, appearance, and the connection with other communities. As hosted communitiesusually share problems in regard to scalability, fragmentation, and inflexibility Gradmanproposes a “user-centric model of distributed social software [that] puts the individual atthe center of his own personal network” introducing the Personal Information Framework(PIF) [Gra04].

2.6.1 Blogs

At this time the prime example of widely used decentralized social software is the weblog(or blog). Blogs are regularly updated Web sites where the most recent entries appear on thetop of the page. Started out as mere web diaries blogs have evolved to a universal mediumallowing bloggers to publish opinion, knowledge, and feelings about a great diversity oftopics. As most bloggers read other blogs they also link to them on their own blogs creat-ing an interlinked blogosphere where themes are propagated [GLNGT04]. Even though thedegree of interconnectedness and interaction is disputed [HSBW04] blogs already have andwill probably gain even more importance as an alternative medium for personal and top-ical articulation fostering “democratic literacies and participation” [Gri04] and ”new socialrelations and forms of political possibility” [KK04].

15

Page 30: Decentralized and Distributed Photo Sharing on the Web

Conversation: Permalinks and Trackback

Readers can comment on blog entries by filling out a conventional HTML form with fieldsfor name, email, Web site, and the comment. Blog articles usually have unique, permanentURLs (permalinks) allowing to link to a specific post on a blog. Hence it is also possible tocomment on a blog article by publishing an entry on one’s own blog, referencing the originalblog post using the permalink, and sending a notification to the referenced blog. One wayto accomplish this is the Trackback specification6 that defines a standardized HTTP requestthrough which the title, excerpt, and URL of the linking blog entry is sent to the blog with thereferenced entry. This way blog authors can comment on other blog entries that will receivethe Trackback as a notification.

Subscription: RSS

While the letters can stand for Really Simple Syndication, Rich Site Summary, or RDF SiteSummary, the XML-based RSS feed7 allows to subscribe to a blog with a feed reader. Thepurpose of such a feed is to communicate updates in a standardized way so that readers arenotified when a new entry is published. Even though there is more than one feed format mostRSS readers can interpret them all. In contrast to HTML the information represented in RSSis structured, agreed upon metadata such as date, title, and link in a machine-readable way.To distribute images and other types of media including corresponding metadata extensionshave been created, such as enclosures (used for Podcasting), Media RSS8 and Photocasting9.

WordPress10 is one of the major open-source projects allowing a rich set of blogging fea-tures and the ability to modify its appearance and functionality with themes and plugins.WordPress requires a Web server with PHP support and access to a MySQL database. Besidesmany other software alternatives, there are also blog providers, such as Blogger11, whereusers only need to register without installing software.

2.7 Designing Web Applications

Conceptualizing and implementing Web applications involves design approaches comingfrom a diverse set of disciplines. Below those methodologies are introduced that are essentialfor conceptualizing and implementing decentralized photo sharing; at first those focusing onthe user’s perspective and afterwards looking from a developer’s standpoint.

6http://www.sixapart.com/pronet/docs/trackback spec7http://en.wikipedia.org/wiki/RSS (file format)8http://search.yahoo.com/mrss9http://www.apple.com/ilife/iphoto/features/photocasting.html

10http://www.wordpress.org/11http://www.blogger.com/

16

Page 31: Decentralized and Distributed Photo Sharing on the Web

2.7.1 User-centered Design

Designing software or any other type of technology is associated with the consideration ofits future users. De Troyer and Leune [TL98] introduce the Web Site Design Method (WSDM)as an integrated user-centered design approach for Web applications identifying two crucialdesign phases before the actual implementation: user modeling and conceptual design (seeFigure 2.12).

User classification

User class description

Object modeling

Navigational design

Implementation design

Implementation

User modeling Conceptual design

Figure 2.12: Web Site Design Method by De Troyer and Leune [TL98]

Personas and User Tasks

Cooper argues that the discrepancy between the mental model of the user and the imple-mentation model of the developer should be minimized by a designer’s model negotiatingbetween these two perspectives [CR03]. This translation process should be led by user re-search looking for the goals people have using the software. With the insights of interviewssoftware designers are able to create personas as user archetypes, instead of creating an aver-age user with little explanatory power. These personas are based on the foregone researchand are more able to engage the empathy of the developers by aggregating goals, opinions,feelings, and context.

The next step is to translate the goals into user tasks that should be supported by the soft-ware or Web site. In the field of information retrieval, user tasks are distinguished betweensearch, subscribe, and browse. The former two imply formulating a query of a rather preciseinformation need, however, browsing happens when the information need is rather generaland variable. As new interaction patterns emerged due to hypertext Marcia J. Bates concep-tualized browsing as an information seeking process throughout which queries are modifiedand the user’s information need dynamically changes, i.e., as an evolving search [Bat89]. Theinformation seeker usually employs different search techniques and sources not relying onjust one system or database. Bates calls this process berrypicking as a metaphor for roamingbetween multiple clusters of information sources in the sense that accessing one informationsource would lead to a number of other related sources that either help the understanding ofa topic or put another perspective upon it (see Figure 2.13).

17

Page 32: Decentralized and Distributed Photo Sharing on the Web

= Thought

= Query

= Documents

1

2

3

4

5

0

n

Figure 2.13: “A Berrypicking, Evolving Search” by Bates [Bat89]

Information Architecture

Bates’ berrypicking can be regarded as one of the theoretical foundations of information archi-tecture (IA), a field of study and practice aiming to foster access to information in a web-basedenvironment. The Information Architecture Institute12 understands IA threefold:

1. The structural design of shared information environments.

2. The art and science of organizing and labeling Web sites, intranets, online communitiesand software to support usability and findability.

3. An emerging community of practice focused on bringing principles of design and ar-chitecture to the digital landscape.

Drawing inspiration and input from a diverse set of disciplines IA can be understood asthe successor of library and information science (see Section 2.1) bringing its questions anddemands into the reality of the hypertextual World Wide Web (see Section 2.4). Informationarchitects are interested in designing virtual structures and spaces where the goal is to makeinformation accessible to users in a similar way how librarians are conventionally interestedin organizing books and journals on shelves making them available to readers [RM02]. Infor-mation architects employ different techniques to model the structure of and the interactionwith information systems, predominantly Web sites. Two of the most important ones areinteraction diagrams and wireframes.

While IA still distinguishes between users and information architects, other design ap-proaches demand design for hackability where users are able to adapt software to new needs.It is argued that designers should provide for ‘misuse’ and appropriation of their softwareas this would extend its anticipated functionality [GBCG+04, Per06].

12http://www.iainstitute.org/

18

Page 33: Decentralized and Distributed Photo Sharing on the Web

2.7.2 Software-oriented Design

The subsequent phase after getting to know the users’ goals and corresponding tasks is de-signing the software that will embrace the needed functionality. To visualize software com-ponents, data structures, and user interaction modeling languages and visual notations havebeen developed. The Unified Modeling Language (UML) includes a comprehensive andbroadly used family of graphical notations used for visualizing structure, functionality, andbehavior of a software system. The interaction between users and a system can be visuallymodeled using the UML use case diagram (see Figure 2.14).

AuthorReader

Write post

Read post

Write comment

Read comment

Write comment

Blog

Figure 2.14: UML use case diagram depicting conversation on a weblog

The sequence diagram is used for depicting the interaction between system components(see Figure 2.15).

DatabaseWeb server PHP interpreterWeb browser

RequestPHP script SQL query

RowsHTMLResponse

Visit page

Figure 2.15: UML sequence diagram of a simplified HTTP request causing a database query

Object-oriented Programming

A complex set of aspired features demands reuse of existing functionalities and a structuredsoftware design process. Object-oriented programming (OOP) does these demands justice,as it allows for design and implementation along established principles such as inheritance,modularity, and information hiding. This means that functionalities are encapsulated inclasses or objects whose inner workings or values are hidden by interfaces – definition ofallowed messages an object can receive – allowing to either access, inherit, or modify class

19

Page 34: Decentralized and Distributed Photo Sharing on the Web

functionalities or object data. Armstrong identifies fundamental “quarks” of OOP a taxon-omy [Arm06].

Model-view-controller

To meet the needs of software environments where user interaction plays an important partOOP has been enhanced and advanced to the model-view-controller (MVC) paradigm. Thebasic idea is to separate application and data logic (model) from interaction and presentationcode (view) by introducing an intermediary (controller) [Ree79]:

• Models are representations of real-world things and domain-specific problems trans-lated into machine-readable and executable objects within the sphere of computer sys-tems.

• Views are visual interpretations of the model in the way the user needs it, “acting as apresentation filter”.

• Controllers handle the interaction between the user and the system.

This way the functionalities of interaction and data logic are decoupled leading to greaterflexibility. The implementation of view or model can be changed without affecting eitherone, as long as, the connections via the controller remain stable (see Figure 2.16). The MVCdesign pattern is used in most modern programming languages and frameworks where agraphical user interface (GUI) is employed.

Controller ModelViewUser action Update

NotifyUpdate

Figure 2.16: Model-view-controller

Developing Web applications increasingly requires taking care of a complex set of respon-sibilities implying a number of different languages. The MVC paradigm has been identi-fied as a way to overcome the lack of clarity and overview often inherent in Web develop-ment [KD02]. In a Web context, the model would comprise the functionality responsible foraccess to data sources, such as the filesystem, databases, legacy systems, or remote services.The view is concerned with the generation of the presentation code, i.e. HTML files, whilethe controller handles user events. This way, parts of a Web application can be modified bydifferent people, for instance, the appearance of a Web application can be changed, while thefunctionality regarding the database remains unaffected.

20

Page 35: Decentralized and Distributed Photo Sharing on the Web

3 Concept of Decentralized and DistributedPhoto Sharing

In this chapter the concept of Atomique, a prototype for decentralized and distributed photosharing, is introduced; starting with a critique of centralized communities. This analysisis followed by the goals associated with decentralized photo sharing, the results of userresearch, and associated design measures.

3.1 Centralized Communities

Online communities that are used for sharing resources and tagging them in order to orga-nize them have gained tremendous momentum during the last three years. The combinationof community and information classification has produced interest within a diverse set ofdisciplines. However, the negative side effects of these hosted communities are rarely ad-dressed:

• Social data silo The social part of accumulated information, such as communication, islocked within the site. Protocols for social interaction are proprietary and limited tothe scope of the site monopolizing its social relations.

• Fragmentation When users wish to interact with people from different communitiesat the same time, the vendor lock-in of competing photo sharing sites forces them tocreate fragmented user representations.

• Lack of control Users are usually only in very limited ways allowed to modify the ap-pearance and functionality of the system.

• Reliability Technical problems, maintenance tasks, and slowness affect all users.

• Product The functionality is limited depending on whether a user is a paying memberor not.

• Censorship Operators are in a position where censorship is technically possible.

These problems are all connected with the centralized character of hosted photo sharingcommunities. A decentralized architecture for photo sharing, in contrast, provides an alter-native by empowering the user while providing the same functionality as existing systems.

21

Page 36: Decentralized and Distributed Photo Sharing on the Web

3.2 Goals

The aim of Atomique is to enable decentralized and distributed photo sharing and, thus,fostering community and conversation around photos, while providing access to shared re-sources and empowering the user.

3.2.1 Access and Empowerment

User empowerment as a key goal of decentralized social software is related to Ranganathan’slaws of library science demanding easy, efficient, and egalitarian access to information (seeSection 2.1). Previously, readers and users were regarded as victims of the information flood.In contrast, today users should be understood as the major actors in the process of access-ing and evaluating information. Recent developments have dismissed the antagonism be-tween form-oriented and content-oriented strategies in the information organization just asthe conventional division of labour between readers and librarians – or even between usersand programmers – has been blurred.

Sharing-based communities such as Flickr and Del.icio.us have proven that users need notonly to be able to access information sources, but to publish and organize them, as well.The opportunity to pursue these techniques and literacies forms the basis of Atomique (seeFigure 3.1).

Access Publish

Organize

Figure 3.1: Basic techniques of resource sharing

The barriers to carry out these activities should be as low as possible. Systems shouldprovide easy, efficient, and pleasant mechanisms enabling the user to perform these tasks.Shared photos should be accessible using open, agreed upon standards and protocols har-nessing the open structure of the Web (see Section 2.4.3). The organization of the photosshould be easy to create and to access; adding new photos should be possible with as littleeffort as necessary (see Section 2.7.1).

As Bush’s memex (see Section 2.4) and Gradman’s PIF (see Section 2.6) suggest usersshould have control over their information sources and computer-mediated communication.In the case of photo sharing this means that the user should have full control over the sharedphotos, the way they are presented and organized, the conversation and interaction aroundthem, and the software in general. To achieve these demands a decentralized approach isnecessary, where distributed photo repositories would implement agreed upon protocolsensuring interoperability and thus decentralized community.

22

Page 37: Decentralized and Distributed Photo Sharing on the Web

3.2.2 Community and Conversation

If the mentioned triad of basic activities – accessing, publishing, and organizing resources– is embedded in a community context, the ways resources are shared and social interac-tion occurs changes dramatically (see Figure 3.2). That is, the interplay between communityaspects and resource sharing changes the quality of both ends.

Figure 3.2: Accessing, publishing, and organizing resources embedded in a community con-text

On the one hand, the quality and quantity of information items being accessed, organized,and published increases within a community context. In Del.icio.us, for example, the per-ceived presence of other users motivates contributors to add more descriptive tags to book-marks, as it could help other users to evaluate or find them. In Flickr, tags and descriptionsare used to find photos; a contributor will upload more photos, describe and annotate thembetter, since this leads to greater exposure, comments, conversation.

On the other hand, resource sharing influences the way social interaction and conver-sation occur in online communities. Research and practical experience have shown that aweb-based community most likely thrives when it is build around shared objects, resources,and topics, also understood as object-centered sociality (see Section 2.5.2). It has been shownby Flickr and other communities that publishing photos in a community context enablescontributors to participate in conversation and play and to experience critique and compan-ionship. Studies have found, that the possibility to share photos with like-minded peoplearticulating common goals and commenting on each other’s photos conveys the sense of ef-ficacy that is important for the contribution to communities (see Section 2.5.1). Users choosethe groups they want to engage in accordance with their own personal interests providingfor enduring engagement.

With the reciprocal effect between community and resource sharing in mind, it is evidentthat a photo sharing software needs provide mechanisms fostering conversation, contribu-tion, and community. Photo publishing becomes photo sharing once a community evolvesaround the shared resources. Hence, the photo repository needs to enable the user to relateto other users through common interests, challenges, and critique.

In this sense, the photo repository needs to become a personal photo sharing hub embed-ded in a network of other hubs interconnected by open protocols. The user would then beable to connect with other users to form a meaningful community.

23

Page 38: Decentralized and Distributed Photo Sharing on the Web

3.3 User Research

Before Atomique as a prototype for decentralized photo sharing has been designed and de-veloped user research has been undertaken following user-centered design methods (seeSection 2.7.1). At first interviews with actual and potential practitioners of photo sharing arediscussed, then the results of the interviews are aggregated into three user archetypes, i.e.,personas, which are then used for conceptualizing a scenario of decentralized photo sharing(see Figure 3.3).

Interviews Personas Scenario

Figure 3.3: Steps of user research

3.3.1 User Interviews

For the user research, eight people with different backgrounds regarding computer use, pho-tography skills, and experience in photo sharing were interviewed. The interviewees wereasked general questions regarding their context and their use of the computer and the In-ternet, and their participation in online photo sharing communities. If an interviewee wasparticipating in a photo sharing community, such as Flickr, more questions about his or heractivities and behavior in the community and the opinion about the community were asked.Four of the interviewees were using Flickr. An overview of the results regarding photo shar-ing and Flickr is summarized in Table 3.1.

3.3.2 Personas

As the responses from the different interviewees are diverse and partially contradicting thechallenge is to find a way to acknowledge the findings of the user research during the fol-lowing phases. Instead of creating an abstract, averaged user that would not exist in reality,personas constitute a user modeling mechanism well-balanced between the recognition ofdifferences among users and the integration of common characteristics. That is, the resultsof the interviews are not merged into the user but into three user archetypes with differingcontexts, goals, and wishes regarding photo sharing (see Table 3.2). The characteristics as-sociated with these user types will guide the conceptualization and realization of a photosharing software.

3.4 Conceptual Model

To enable photo sharing that fosters empowerment and community a number of conceptualdecisions and design steps are taken leading to the concept of a photo repository softwareenabling decentralized and distributed photo sharing.

24

Page 39: Decentralized and Distributed Photo Sharing on the Web

Goals

Presenting photos to general publicLooking at photos from othersParticipation in groups and competitionsSocializing with friendsReceiving and giving feedback on photography

Praise

Easy and fast upload of photosInteraction design, simplicityList of my “most interesting” photosRSS feed is practicalSets are easy to understand and useAvailability of different sizesFast editing of information, e.g. titles and descriptionVisitors can comment and discuss

Criticism

Differentiation between non-paying and paying usersThe way interestingness is calculated is not openHard to see what photos are newOrientation is difficultCustomizing the interface is not possibleDifficult for non-members to interactAdvertising

Table 3.1: Summarized results from user interviews regarding the goals associated withphoto sharing and the evaluation of Flickr as a photo sharing community

Name Context Goals Aspired Features

Jose

Web designer experiment with software customization usingwork: 8:00 - 20:00 make business with it css and templates30 years, has girlfriend try new apps plugins supportlives in hip area of town stress-testing open api

Andrea

journalism student relax, have fun easy upload/annotationclasses: 9:00 - 15:00 distraction from studies groups, discussions19 years, single look at pictures contactsshared flat meet friends private comments

Lisa

photographer exposure organize dates, sets,flexible schedule meet clients titles, tags40 years, husband, 2 kids feedback import from Flickrlives in suburbia control, empowerment statistics

Table 3.2: Personas with differing characteristics regarding context, goals, and features

25

Page 40: Decentralized and Distributed Photo Sharing on the Web

3.4.1 Scenario

In the scenario of decentralized photo sharing users can adopt two distinct roles with asso-ciated sets of tasks (see Figure 3.4):

• The host of a photo repository is able to publish her own photos, organize them bytags and in sets, and create groups. Furthermore, the host is able to administer theappearance of her photo repository, i.e., her avatar, the title, and header color.

• The guest visits the photo repository of a host and is able to access published photos,comment on them, join a hosted group and send photos to it. Photos can be browsedby tags, sets, and groups. It is also possible to subscribe to recent photos of the host, ofa specific group, or to those photos with a specific tag.

Group

joinsstarts

Photos

Sets

accesses

Tags

GuestHost

organizespublishes

sends photos sends photos

adds comments

Figure 3.4: Scenario for photo sharing

While the host can also exercise guest tasks such as adding comments, the set of tasksintended for the guest is limited. The host is the maintainer of her photo repository, hence,she has the technical authority to moderate comments, added photos to groups, and memberadditions. The software does not introduce an external intermediary but rather encouragesparticipating users to solve problems among themselves.

Guests can add comments without having their own photo repository. However, partic-ipating in groups requires having a proper photo repository implementing the suggestedprotocol for photo sharing (see Section 4.5). This constraint has been identified to be the bestsolution for avoiding content duplication and user fragmentation. To join a hosted groupthe guest needs to enter the URL of her own photo repository as an identifier; she will beforwarded to her photo repository where she is asked to confirm or cancel the join request.

3.4.2 Classification

To ensure easy and effective access to shared photos free-form tags are used as the classifica-tion scheme. CBIR mechanisms still do not yield satisfactory results, since rather low-levelimage features such as color and shape can be retrieved, while the extraction of higher-level

26

Page 41: Decentralized and Distributed Photo Sharing on the Web

characteristics remains problematic (see Section 2.3.1). Furthermore, the subjective or per-sonal meaning of a photo or a group of photos can not be inferred by algorithms. CBIRapproaches usually neglect this social dimension of information organization, while taggingsites have shown how to bridge the semantic gap by introducing social annotation as con-versation and community around shared objects.

In contrast to faceted classification free-form tagging allows easy and convenient anno-tation with little barriers, yet, can be used in the future to provide some kind of structureor hierarchy (see Section 2.3.2). In addition to tags users should be able to create sets as ametaphor of a photo album that includes photos, for instance, from a vacation or an event.Titles and descriptions are allowing for narratives and conversation around the shared pho-tos (see Section 2.5.2).

As most photo files already contain metadata, such as time and also possibly keywords,this existing information needs to be automatically imported into the photo repository whenphotos are added.

3.4.3 Decentralization

To develop a decentralized network of interlinked photo repositories existing standards andprotocols need to be considered. It turns out that the Internet as an increasingly omnipresentdata transportation layer serves best as a technical environment for decentralized photo shar-ing and exchange. There are two established Internet-based approaches allowing contentdistribution in a decentralized way: 1) peer-to-peer and 2) blogs.

The conventional peer-to-peer approach proves to be utile in file sharing networks wherehigh redundancies and content duplication allow fast data transport of popular files imply-ing that the personal computers of the participants are always on and online. Photo sharingdiffers from the idea of P2P file sharing insofar as the shared files form the basis of conversa-tion and community, while the shared files in P2P networks are usually an end in themselves.

In contrast to a P2P infrastructure weblogs build on top of open standards and agreedupon protocols of the World Wide Web – HTTP, HTML, URL – allowing for a depend-able infrastructure for publishing and accessing resources. The blogosphere itself has quasi-standard mechanisms – RSS, Trackback, and comments – enabling decentralized communityaround shared resources. Blog authors have also used their blogs for sharing photos. How-ever, blog software does not account for the special characteristics of photos in contrast totexts.

The decentralized framework for photo sharing uses techniques of the Web and the blogo-sphere but extends and adapts its use in the context of conversation and community aroundphotos. This includes specific classification schemes as well as mechanisms for group inter-action.

While distributed, interconnected photo repositories would function without centralizedstructures, photo sharing community providers are encouraged to implement mechanism forresource-based conversation across community borders. Once protocols and standards forsocial interaction have been established, a user can choose whether to install a software on

27

Page 42: Decentralized and Distributed Photo Sharing on the Web

her own server or register at a hosted community, as both options would allow for interactionbeyond community borders.

28

Page 43: Decentralized and Distributed Photo Sharing on the Web

4 Implementation of Atomique

In this chapter the implementation of a web-based photo repository enabling decentralizedand distributed photo sharing is presented.

4.1 Overview

The photo sharing software should be written in a server-side programming language inorder to run on a Web server. Some user interaction should be possible within the browseremploying client-side scripting. The requirements for installing the software should be aslow as possible. To achieve high performance a database should be employed used for allthe data storage apart from the photo files. Furthermore an application framework is neededto provide basic functionalities such as database access.

4.1.1 Used Software

As the implemented photo sharing prototype is made available as open source software, sodoes it build upon several open source projects.

Among the server-side scripting languages PHP1 has been identified as the most dissem-inated option. While its 5th version offers more sophisticated OOP functionality, it is notspread enough to assume general availability, hence, the photo repository is written in PHP4to reach a wider audience. In combination with PHP the database most often deployed byWeb space providers is MySQL2 constituting the database of choice.

As a programming paradigm the object-oriented MVC was chosen as it yields a well-structured architecture for interaction-based applications, where presentation, application,and data logic are separated. As a web-based application framework CakePHP3 is used, be-cause it employs the MVC paradigm, is compatible to PHP4, offers straightforward connec-tion to the database, and supports basic client-side interactivity. PHP, MySQL, and CakePHPare all made available under open source licenses allowing for lowest barriers to dissemina-tion. A general overview of used tools and technologies is depicted in Figure 4.1.

Further libraries and technologies will be introduced as their usage is discussed.

1http://www.php.net/2http://www.mysql.com/3http://www.cakephp.org/

29

Page 44: Decentralized and Distributed Photo Sharing on the Web

Views

DatabaseFilesystem

Models

Controllers

MySQL

written in PHP using CakePHP

custom SQL queries

generate HTML and JavaScript,generate/parse: RSS and Trackback

WWW HTTP

Figure 4.1: Overview of used technologies

4.1.2 Structure

In accordance with the MVC paradigm the functionality of Atomique comprises three do-mains:

• Models are employed for creation, access, and modification of data sources such asdatabase rows or photo files. Sometimes a model is associated with another model;once modifications occur possibly affected models need to be updated, as well.

• Controllers handle user interaction such as requesting a special view or editing a model.The methods of the controllers are actions that directly correspond to different types ofuser interactions or requests.

• Views constitute different presentational interpretations of the model directed mainlyto the user or external applications, e.g. another photo repository.

A model usually has its own controller and several views. The views are associated withtheir corresponding controller actions retrieving information from the model and deliveringit to the view.

Sequence of Processes

When a user action is triggered a sequence of processes follows that is outlined below anddepicted in Figure 4.2:

1. The user enters a URL, clicks a link, submits a form, or initiates an Ajax event.

2. The Web browser sends an HTTP request with the associated domain, path, and query.

3. The Web server delegates the query to the PHP script located at the specified path.

4. The dispatcher of CakePHP initializes the appropriate controller and the associatedmodel(s). The method that is represented in the query is called with the parametershanded via the HTTP request.

30

Page 45: Decentralized and Distributed Photo Sharing on the Web

5. The controller method processes the user action possibly involving updates to themodel and/or requests from the model and/or associated models.

6. The model executes updates and/or requests upon its table communicating with thedatabase using either CakePHP’s wrapper functions or custom SQL (see Section 4.1.3).Results from the database are returned to the controller.

7. The controller method relays the received data from the model(s) to the view that is tobe rendered. If the controller method does not have its own view, it can alternativelyredirect to another action; this applies usually for modificatory user actions (see Section4.2.3).

8. The view is responsible for structuring the data using markup that is later associatedwith style information. A view can also include other views, which is used to displaysnippets or contextual information. A view is usually rendered embedded in a layoutcontaining header, footer, and respective references to script and style files (see Section4.2.5). Once the combination of view and layout is purely markup it is passed to theWeb server.

9. The Web server sends the HTML as an HTTP response to the Web browser.

10. The Web browser renders the HTML on the screen.

ControllerWeb server DispatcherWeb browser Model Database View

(2)(3)

(4)(5)

(6)

(7)(8)

(1)

(9)(10)

Figure 4.2: Sequence diagram of Atomique’s basic mode of operation

Clean URLs

Which kind of action is triggered and which view is generated depends usually on the re-ceiver URL of the HTTP request sent by the Web browser. Conventional URLs are usuallyrather long and not very readable:

.../index.php?controller=photos&action=recent&page=2

Modern Web servers provide URL rewriting allowing for clean URLs that are more read-able:

31

Page 46: Decentralized and Distributed Photo Sharing on the Web

.../photos/recent/2

CakePHP uses this technique to represent controllers, actions, and possible parameters inthe URL. The standard mapping looks like this:

.../controller/action/parameter

It is also possible to change the mapping between URLs and controller actions in a des-ignated routes file. CakePHP handles this rerouting using a dispatcher and a router. Forexample, the URL of the page with all photos tagged with graffiti would look like this:

.../photos/tags/graffiti

Using characters that are not part of the ASCII character set in URLs is still problematicas the original specification provided only for a ASCII character set. Even though there arealready further developments allowing non-ASCII characters in URLs, the actual implemen-tation and awareness of non-ASCII URLs in Web browsers and other software is limited.As tags can include any character included in UTF-8 a transformation from non-ASCII toASCII characters is employed to ensure readable URLs. This means that every tag has aASCII-conform identifier, also called slug, whose vowels with accents or umlaut dots arereplaced by their ASCII-counterparts. Spaces and other non-ASCII characters are deleted.Furthermore, all URLs generated by Atomique are lowercase to avoid confusions with case-sensitivities. The ASCII version of the tag Valparaıso becomes valparaiso so that theURL of the page with all photos tagged with Valparaıso would look like this:

.../photos/tags/valparaiso

4.1.3 Database Schema

Alphanumerical and relational data is stored in a database to allow efficient access and mod-ification. The database schema of the photo repository is designed in such a way that givenassociations between entities are represented by the relations between tables.

Tagging is employed as a fundamental classification method demanding a N-to-N relationbetween the tags and photos, i.e., a photo can have N tags, and a tag can be attached to Nphotos (see Figure 4.3).

TaghasPhotoTitle

IdNN

Id

Tag

SlugDescription

Figure 4.3: ERD for relation between photos and tags (attributes simplified)

32

Page 47: Decentralized and Distributed Photo Sharing on the Web

This relation is implemented using three tables: photos, tags, and photos tags. Theformer two constitute the tables corresponding to the entities and the latter is an associationtable with the foreign keys of both photos and tags (see Figure 4.4).

id tag slugtagsid title desriptionphotos

photo_id tag_idphotos_tags

Figure 4.4: Schema for relation between photos and tags (simplified)

The CakePHP framework provides convenient mechanisms for retrieving associated mod-els of a given model. However, employing queries on models engaged in N-to-N relationsrequires custom SQL constructs. In the case of relation between tags and photos the associa-tion table photos tags is used. Querying all photos that are tagged with a specific tag, e.g.graffiti, translates into such a SQL expression:

SELECT photos.idFROM photos, photos_tags, tagsWHERE tags.slug =’graffiti’ AND tags.id = photos_tags.tag_id AND

photos.id = photos_tags.photo_id

4.2 Presentation and Interaction

The way particular pages of the photo repository are designed, structured, and interlinkedconstitutes the user interface of the web-based photo sharing software. In this section thedecisions throughout the development of the presentational and interactive aspects of thephoto repository are discussed.

4.2.1 Page and Site Structure

The composition of elements on Web pages and the hierarchy of interlinked Web pages con-veys a sense of what kind of content is available and how it is structured. The goal is todevelop structures of the particular pages and the site in general in such a way that the useris able to grasp the provided content and underlying structures. Furthermore, to allow for agood user experience the general structure of the web-based software should remain consis-tent. The positioning, size, and alignment of layout elements is realized using CSS.

33

Page 48: Decentralized and Distributed Photo Sharing on the Web

Page Layout

The general distribution of elements on the Web pages of the photo repository is inspired bythe way most blogs but also many other Web sites are structured; the page is divided intothree fixed parts (see Figure 4.5):

Header

Content Context

(a) General page structure (b) Actual photo page

Figure 4.5: Different page segments on wireframe and on actual presentation

• The header provides the main menu, the title and ‘tagline’ of the photo repository, andthe host’s avatar. As the header does not change throughout the whole software itconstitutes the visual clue for users to know whose photo repository they are browsing.Below the header the submenu is located providing a further subdivision dependingon the selected menu.

• The content area is where the actual information sources, e.g. a photo or content of aset, are displayed. Which kind of content is displayed depends on the selected menu,submenu, and other navigational measures found in the context.

• The content is always accompanied by a context area to its right side providing furthernavigational handles, metadata, and tools to interact with the displayed content.

Site Map

The photo repository as a whole site is divided into three main sections (see Figure 4.6):

• The Photos section contains recent photos, sets, and tags of those photos that are ex-clusively shared by the host of the repository. Furthermore, the host can upload herphotos using the upload form (see Section 4.3.1).

• Below Groups the hosted and joined groups are listed allowing access to photo ad-ditions from group members. While the hosted groups have their own page on the

34

Page 49: Decentralized and Distributed Photo Sharing on the Web

Recent Sets Tags

Photos

Home

Groups About

OptionsUpload Hostedgroups

Joinedgroups

Create

Login

Figure 4.6: Site map of photo repository; dashed lines indicate restricted access for visitors

repository, to access the content of joined groups the user leaves this repository to en-ter another user’s repository hosting the group.

• The About part incloses information about the host and the possibility for the host toconfigure the behavior and appearance of the photo repository.

Content Snippets

While the photo repository provides a number of different content items the challenge is todesign the entrance pages of the photo repository and the sections in such a way that thetype of underlying resources is conveyed. That is to say, the first page of the repository thevisitor encounters is often the start page; it should provide several ways to enter or browsethe available content. But also the entrance pages of the sections should make the underlyingcontent easily accessible.

For the photo repository a method related to faceted navigation has been chosen: snippetsare small areas on entrance pages representing the content of underlying subsections by pre-senting a subset of the actually available items. For example, the subsection ‘Recent photos’contains all uploaded photos ordered by the date of addition; a snippet for recent photos justincludes the most recently added photos as icons. This way the underlying content is not(only) described by words but by an extract of the actual content (see Figure 4.7).

Content snippets are implemented as little views that are integrated in conventional viewsby requesting the corresponding actions in the controllers. This way they can be reused ondifferent entrance pages. The recent photos snippet, for instance, is integrated on the startpage of the repository and on the entrance page of the photos section. A simplified versionof the view of the principal entrance page looks like this:

<div class="content"><?php

echo $this->requestAction(’/photos/snippetRecent/4’);echo $this->requestAction(’/collections/snippetRecent/4’);

35

Page 50: Decentralized and Distributed Photo Sharing on the Web

(a) Wireframe of entrance page (b) Actual entrance page of Atomique

Recent photos

Recent sets Tags

Recent groups

About

Figure 4.7: Content snippets conveying available resources in subsections

echo $this->requestAction(’/groups/snippetRecent/4’);?>

</div>

<div class="context"><?php

echo $this->requestAction(’/options/snippetAbout/’);echo $this->requestAction(’/tags/snippetCloud/3’);

?></div>

4.2.2 Navigational Handles

While page layout and site structure convey the available content, the actual navigationthrough the photo repository is done by using navigational handles, i.e., page elements thatallow to jump from one part of the site to another. Navigational handles in web-based soft-ware usually are implemented using hyperlinks, but there are different ways of using theseto help the user to navigate through a Web site. In general they can be divided into textualand graphical links.

Textual Links

Textual links are used in many places in the photo sharing software. The menu and submenuare textual hyperlinks, as well as the title of the photo repository in the header linking tothe start page. Two special ways of using textual links for navigation are tag clouds andpagination.

A tag cloud presents tags in such a way that the font size of a tag corresponds to its impor-tance for the photo collection, i.e., how often a tag was used defines its relative size in the tag

36

Page 51: Decentralized and Distributed Photo Sharing on the Web

cloud. The tag cloud is also available as a snippet providing the most important tags on anentrance page and as a list enabling the host to edit them easily (see Figure 4.8).

(b) Complete tag cloud(a) Tag snippet (c) All tags in a list

Figure 4.8: Different ways of visualizing tags

Another way of using textual hyperlinks for navigating the content of the photo repositoryis pagination. When a set of content items, e.g. all recent photos, becomes very large, itbecomes laborious for the Web server to provide and the Web browser to display all items atonce. Besides classification schemes, pagination allows to break down the amount of itemson a page by splitting a possibly large page into smaller interlinked ones. On the bottom ofevery page appear the page numbers as hyperlinks. To limit the amount of page numbersthree dots appear, when there are more than ten pages (see Figure 4.9).

Figure 4.9: Pagination

Graphical Links

Besides textual hyperlinks it is possible to use images as hyperlinks. In the photo repositorythis is done primarily using icon-like thumbnails of photos representing the respective pho-tos, sets, or groups. These thumbnails are usually accompanied by a textual link, as well,e.g. the title and photographer of a photo. Photo icons appear in the listings of sets, groups,and recent photos and on entrance pages within snippets (see Section 4.2.1). While photoicons are just downsized versions of the photo they are representing, icons for groups andsets usually stand for more than one photo. To convey this the immediate space around theicons is used to either depict a cube representing a group or a pile of photos representing aset. If a group is not hosted by the host, the lines of the cube are dashed (see Figure 4.10).

4.2.3 Modificatory User Actions

Navigating the photo repository comprises user actions that do not lead to the modificationof the underlying content, however, the user interface of the photo repository is also used

37

Page 52: Decentralized and Distributed Photo Sharing on the Web

(a) Photo (b) Set (c) Hosted group (d) Joined group

Figure 4.10: Different types of icons

to undertake modificatory actions that are used to create, change, or delete content. This in-cludes changing titles and descriptions of photos, deleting photo sets, writing comments, etc.These types of modificatory user actions, i.e., operations causing changes upon the database,are implemented using three mechanisms: links, forms, and Ajax.

Links

Regular links are used for user actions that do not require further parameters including delet-ing tags, comments, photos, sets and leaving a group. As all of these user actions would beprocessed immediately after the corresponding link is clicked they carry a specific chance offailure. To prevent non-intended modificatory user actions all links leading to deletions areaccompanied by a warning message informing the user about the action’s consequences andasking for a confirmation (see Figure 4.11). After the action has been executed the user isredirected to the original page or a superordinate page.

Figure 4.11: Exemplary confirm message, here before a set is deleted

Forms

Another way to modify or create content is the form, that has been already introduced inconnection with the upload process (see Section 4.3.1). Forms are used throughout the photorepository to add new content items such as comments, but also to edit existing ones, such astags, sets, and groups. Furthermore, the options form allows to modify basic configurationof the photo repository. Most of these forms are accessed using “Edit” links found in thetools section of the context area (see Figure 4.12).

38

Page 53: Decentralized and Distributed Photo Sharing on the Web

(a) Form for editing set information (b) Form for editing photo information

Figure 4.12: Two exemplary edit forms with corresponding links

Ajax

A third way of modifying content constitutes the Ajax methodology, i.e., enabling interactionwith the server without refreshing the whole page. Thereby a title of a photo, for instance,can be edited without leaving the photo page (see Figure 4.13). Another example wherethe photo repository implements Ajax methodology is the possibility to attach tags to pho-tos without refreshing the whole photo page (see Figure 4.14). These and other Ajax-baseduser actions are implemented using CakePHP’s AjaxHelper which again builds on top of theJavaScript libraries Prototype4 and script.aculo.us5.

Figure 4.13: Editing the title of a photo

4http://www.prototypejs.org/5http://script.aculo.us/

39

Page 54: Decentralized and Distributed Photo Sharing on the Web

Figure 4.14: Attaching tags to a photo

4.2.4 Notifications

User actions with important consequences possibly not visible at first glance are followedby a notification, i.e., the software displays a message stating the success or failure of a useraction. There are three types of notifications (see Figure 4.15):

• Success If a user action was successful, the notification comes in a green tone accompa-nied with a green check mark icon and a summarization of the outcomes.

• Failure If a user action failed, the failure message comes in a red tone with an exclama-tion point icon.

• Confirmation The system asks the user for a decision offering the alternatives.

Figure 4.15: Different types of notifications

These notifications have been implemented using CakePHP’s session management thatallows to store a message along with other session information and retrieve it automaticallythe next time the (same) user retrieves a view from the system. Thereby it is possible to createa notification entry with the message and type dependent on the outcomes of an action. Apositive outcome could be the successful upload of a photo, which leads to a redirect to therecent photo section of the site where the message automatically appears between headerand content. To cause both, notification and redirect, the following two lines are sufficient:

$this->Session->setFlash(’Your photo has been uploaded’, ’success’);$this->redirect(’/photos/recent’);

4.2.5 Appearance

The graphical design of the photo repository is specified in CSS files, just as the page layout(see Section 4.2.1). This includes apart from the positioning of elements, font and background

40

Page 55: Decentralized and Distributed Photo Sharing on the Web

colors, and the selection and size of fonts used. The division between style information andcontent allows for better accessibility and a more organized code base, since the view filesare not filled with style information.

Instead of creating a visual design anew parts of the Wordpress theme K26 are used andadapted to the needs of photo sharing. The tabs are used for the menus representing thethree main sections, and below appear the submenus, if available. The sidebar of the K2theme has been used for the contextual area providing metadata and further navigationalhandles (see Figure 4.16).

(a) Development blog of K2 (b) Design of Atomique based on K2

Figure 4.16: K2 and Atomique side by side

The header has been reduced in height to provide enough visual space for the actual con-tent. Before the software was implemented a small paper prototype study suggested thatunified layouts with little visual deviance are causing challenges differentiating on whoserepository one is. With this in mind the avatar icon of the user has been added onto the leftside of the header to convey to host and visitors alike through whose photo repository theyare navigating

Furthermore, the user can change the background color, the title of the page, which isthe nickname of the user, and a tagline communicating, for instance, a motto or the type ofphotos that are presented.

As K2 already includes some icons from the famfamfam Silk icon set 7 Atomique usesthose and some more, as well, e.g. for tool links and confirmation notifications (see Section4.2.4). It is believed that those icons help recognizing relevant functionality as visual anchors,however, they are accompanying and not replacing conventional text links to communicatenon-ambiguously the expected behavior of an action.

6http://getk2.com/7http://www.famfamfam.com/lab/icons/silk/

41

Page 56: Decentralized and Distributed Photo Sharing on the Web

4.3 Photo Import

4.3.1 Form and Upload

Photos are added to the photo repository by using a HTML form with file select controlsallowing the use of a file chooser. It is possible to upload more than one photo at once. Thisway the user can apply batch annotation by adding tags in a free-form text field that describeall photos to be uploaded. Furthermore, it is possible to add these photos into an existing ora new set (see Figure 4.17).

Figure 4.17: Upload form

After the user has selected photo files and added annotation she initiates the upload bypressing the upload button. The form data is then sent via HTTP to the photo repository.In the opening tag of the form important parameters are specified about the way the data istransmitted:

<form action="/photos/upload" method="post"enctype="multipart/form-data">

The action attribute specifies the receiving side of the HTTP request. Here, it is therelative URL to the controller photoswith the action upload. The attribute method defineswhich HTTP method is used for transmission: POST or GET. The GET method appends formdata to the address of the receiving action, while the POST method encapsulates form datawithin the HTTP request’s body. The W3C suggests using the GET method only for retrievalrequests not causing side-effects on the side of the requested server8. As this form is usedfor uploading images and the creation of corresponding database rows the POST methodis chosen. To enable an efficient transmission of both alphanumerical and binary data the

8http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

42

Page 57: Decentralized and Distributed Photo Sharing on the Web

encoding type (enctype) of the form is set to multipart/form-data, which causes theWeb browser to encode each part of the form according to its type.

The receiving action upload contained in the photos controller can access the formdata using PHP’s global variable $ POST. The paths to the uploaded files can be accessedwith the global variable $ FILES.

4.3.2 Metadata

Photos often carry different types of metadata that should be imported. The Exif specifica-tion defines fields about the camera, the way the photo was taken, the date, the resolution,and much more details. Digital cameras usually add Exif information into the file headerautomatically. The most important information is the date and time that can be used in therepository. The IPTC has specified a set of metadata tags that can be used for classificationand annotation. The fields for title, description, and keywords are imported into the reposi-tory. If no IPTC metadata was found the filename is used as a photo title.

The IPTC specification for image metadata does not allow to set the encoding used, whichcaused problems as image processing applications on different platforms use different en-codings. While it is possible to identify whether a text is encoded as Unicode (UTF-8) orLatin-1 (ISO/IEC 8859-1), it is not possible to discriminate between Latin-1 and Mac OS Ro-man, which is still in use in contemporary applications on the Macintosh platform. As a con-sequence a preference option has been introduced, where the user can change the expectedencoding of the IPTC metadata from UTF-8 or Latin-1 to Mac OS Roman (see Figure 4.18).

Figure 4.18: Options for IPTC encoding

4.3.3 Resizes

Uploaded photos are displayed in different contexts with different sizes. Quadratic iconsallow small sizes for photo listings with only icons. It should be possible to have detailedlistings, as well, where more details of photos are shown. To ensure a good performanceduring browsing each photo should be available in different sizes. The creation of thesedownsized versions should be done during the import process.

In the photo repository, icons are 75x75 pixels large, small previews for detailed listingshave at most 240 pixels width and height, and the versions for the normal views are at most500 pixels high and wide. The version with the original size is also available from the photopage (see Figure 4.19).

43

Page 58: Decentralized and Distributed Photo Sharing on the Web

(a) Listing (b) Detailed listing (c) Photo page

Figure 4.19: Different sizes for different contexts

For resizing and cropping functions from the GD library9 are used which most Web-spaceprovides have bundled with PHP. The resized versions of a photo will be stored togetherwith the original file in a photo directory with sub-directories for year, month, and date. Thepaths, sizes, and filenames are stored in a database table called locations that is associatedwith its model Location.

4.4 Syndication

While data such as photos, groups, and associated metadata is stored internally as databasetables (see Section 4.1.3), external applications such as other photo repositories or a photofeed reader need to access the data from the outside demanding a standardized structuredformat. The XML-based format RSS that is used by blog systems (see Section 2.6.1) consti-tutes a reliable data exchange format. The photo repository uses RSS for the subscription ofphotos and, as will discussed later, the sharing of photos in groups (see Section 4.5).

4.4.1 Subscribing to Photos

The photo repository provides access to the shared photos through the Web page as well asthrough RSS feeds. There are three main ways to access photos via RSS feeds:

• The visitor can subscribe to all recent photos published by the host of a photo reposi-tory.

• It is also possible to subscribe to a special tag, e.g. graffiti. This way the user canfilter photos by interest.

• Photos posted to groups are also available for subscription allowing to track all users’additions.

Subscribing to information sources allows for a different user experience as the subscriberis notified when information is updated. It is not necessary to manually check for changes.

9http://www.libgd.org/

44

Page 59: Decentralized and Distributed Photo Sharing on the Web

While the benefits of RSS in this regard have been proven by blogs and many other Web sites,the advantage of subscription for photo sharing has not been utilized sufficiently. Subscrib-ing to RSS feeds containing photos allows for more sophisticated ways of browsing photos.Conventional RSS feed readers present RSS feeds containing photos as if the feed wouldinclude only articles or blog posts. However, increasingly other applications are becomingRSS-aware, i.e., are able to read RSS and present its content according to the media type.Apple’s iPhoto10, for instance, can read RSS with photos and is thus able to provide a betterway to access the containing photos (see Figure 4.20).

(a) Photo feed in NetNewsWire (b) Photo feed in Apple iPhoto

Figure 4.20: RSS feed containing photos viewed by different applications

4.4.2 Generation of Photo Feeds

While there are different formats of RSS, they essentially share the idea of enabling the sub-scription of content by providing data in a structured way. The photo feeds of Atomique aregenerated using the RSS standard from the branch that was first created by UserLand andis now supervised by the RSS Advisory Board 11. Furthermore, the enclosure tag as wellas the Media RSS extension are used (see Section 2.6.1). This way image and photo-relatedspecificities such as file size, dimensions, URL of thumbnail are represented.

Structure

RSS feeds containing the photos are generated by the rss view of the photos controller;this view can also be used by other controllers, for instance, the group controller. Thephoto feed is structured like a conventional RSS file containing a channel element withdifferent item elements but also general information about the feed source:

<channel><title>Superandrea’s photos tagged with: atacama</title><link>http://andrea.atomique.org/photos/tags/atacama</link><description>Saving the world one photo at a time</description>

10http://www.apple.com/ilife/iphoto/11http://www.rssboard.org/

45

Page 60: Decentralized and Distributed Photo Sharing on the Web

<pubDate>Mon, 21 Aug 2006 20:08:19 +0200</pubDate><lastBuildDate>Mon, 21 Aug 2006 20:08:19 +0200</lastBuildDate>...

An item element of a photo feed represents an individual photo. Apart from attributessimilar to those of the channel element are the enclosure tag and the Media RSS extensionused to represent image related metadata:

<item><title>Desert</title><link>http://andrea.atomique.org/photos/view/243</link><description>...</description><pubDate>Mon, 21 Aug 2006 20:08:19 +0200</pubDate><author>[email protected] (Superandrea)</author><guid isPermaLink="true">http://.../photos/view/243</guid><enclosure url="http://.../files/2006/08/21/IMG_6641_medium.JPG"

type="image/jpeg" length="145161" /><media:content

url="http://.../2006/08/21/IMG_6641_medium.JPG"type="image/jpeg" height="375" width="500" />

<media:title>Desert</media:title><media:thumbnail url="http://.../2006/08/21/IMG_6641_square.JPG"

height="75" width="75" /><media:credit role="photographer">Superandrea</media:credit>

</item>

Caching and Conditional GET

Potential performance problems can arise, if RSS feeds are too often requested, since manyfeed readers check regularly for updates. To avoid the situation of re-fetching unchangedfiles the HTTP GET specification includes a mechanism called conditional GET that works likethis: a HTTP client, e.g. a feed reader, keeps local copies, i.e., cached versions, of resources,e.g. a RSS feed, accompanied with a date of modification referring to the last time a file wasupdated on the server; now the client does not request the file from the HTTP server everytime anew, but asks whether the file has changed by providing the modification data of thelocal copy; the server either response with an updated version or with a message noting thatthe remote file has not changed. This way nonessential network and server traffic can beavoided.

To support this feature for the RSS views the procedure that Simon Willison12 suggestedhas been adapted using the date the last photo has been added:

• For the general RSS feed of the photo repository the date of the last photo addition, i.e.,date of upload, is used.

12http://simonwillison.net/2003/Apr/23/conditionalGet/

46

Page 61: Decentralized and Distributed Photo Sharing on the Web

• Group photo feeds have as the modification date the date the last photo was sent to thegroup.

• Photo feeds for specific tags have as the modification date the last time the tag has beenadded to a photo.

4.4.3 Parsing Photo Feeds

To parse RSS feeds the library Magpie RSS13 is used to fetch an RSS feed, parse it, and getthe content as an array. Magpie RSS supports conditional GET (see Section 4.4.2) and storesreceived and parsed feeds locally. This reduces the network usage and – as photo feeds areused for sharing photos in groups – provides for a significant speed advantage when openinga group’s page, as member feeds do not need to be fetched every time. Another advantage ofMagpie RSS over other feed parsers is the naive approach towards RSS feeds, as it allows toaccess tags that Magpie RSS might not be aware of. This applies to the Media RSS extensionthat can be accessed without problems. Using Magpie RSS works as simple as including thelibrary and fetching the feed:

require(’rss_fetch.inc’);$feed = fetch_rss($url);

The feed’s channel information is accessed using, for instance, $feed->channel[’title’],and the items are accessed using $feed->items with a foreach loop. This way RSS feedscan be accessed like any other data source, for instance, like a database row.

4.5 Photo Sharing Groups

The group feature has been implemented employing essentially two technologies: RSS andTrackback. RSS-based photo feeds are used to allow for the distribution of shared content,i.e., photo thumbnails and titles, and Trackback provides a mechanism for communicationbetween photo repositories. In the following the realization of both aspects will be discussed.

4.5.1 User Actions

There are two types of user roles involved in photo sharing groups: members and hosts. Thehost is the user operating the photo repository, creating and maintaining groups. Membersare those users that are normally browsing the set as visitors; they become members of agroup by joining it.

The Trackback functionality was implemented by modifying an existing Trackback li-brary14 allowing reception and transmission of Trackback messages.

13http://magpierss.sourceforge.net/14http://phptrackback.sourceforge.net/

47

Page 62: Decentralized and Distributed Photo Sharing on the Web

Creating Groups

The host of the photo repository creates a group by choosing one of her photos, setting atitle, and a description. This can either be done using the “Create” link in the submenuof the groups section or via the contextual group menu item “Create new group with thisphoto”. In both cases a form will be presented where the corresponding fields need to befilled (see Figure 4.21).

Figure 4.21: Creating a group

Once the group has been created the host automatically becomes a member and the groupicon will be displayed on the groups section below “Hosted groups”. From now on the hostcan send photos to this group and visitors can join the group, as well.

Joining Groups

Apart from the invocation of the join process by the visitor a group demands the communi-cation between the two photo repositories of host and visitor; the procedure works as follows(see Figure 4.22):

1. The visitor clicks ”Join this group that is available on the group’s page.

2. A form is displayed where the visitor is asked to enter the URL of her photo repository.

3. The photo repository of the group sends a Trackback message with the URL and thetitle of the group to the visitor’s photo repository. The receiver’s address for the Track-back message results from the URL of the visitor’s photo repository and the path to therespective join action: /groups/member/trackback/request.

4. If the Trackback message was processed successfully by the visitor’s photo repository,the visitor is redirected to her own groups section, where she is confronted with aconfirmation notification containing the group’s title and a link to the group.

5. If the visitor confirms the join request a Trackback message is sent to the group’s photorepository completing the join procedure: the member’s URL is stored in the group’sphoto repository and the group’s URL is stored in the member’s photo repository; thejoined group icon appears on the group page.

From now on the visitor is a member of the group and is able to send photos. If the memberleaves the group a Trackback message will be send to notify the group and the respectivedatabase rows are deleted on both sides.

48

Page 63: Decentralized and Distributed Photo Sharing on the Web

(1)

(2)

(3)

(4)

(5)

Figure 4.22: Joining a group

Sending Photos

Sending photos to a group is done by triggering an Ajax action from the contextual areaof the photo page (see Section 4.2.3). Sending photos to hosted and joined groups worksalike. When the user action is triggered a new row is inserted in the association tablegroups photos. During the implementation phase it turned out that a delay occurs fromthe time the update of the member photo feed (see Section 4.5.2) is updated until the groupnotices this change. However, usually users would check immediately if a sent photo ‘ar-rived’ in the group. To provide for an immediate update a Trackback ping is sent to notifythe group about a photo addition.

4.5.2 Photo Distribution and Integration

The principal idea of sharing photos in groups is that photos with a common theme or motifare allocated from different users so that those users interested in this theme can followwhat other users with a common interest are sharing. In the implemented photo repositorysoftware this is possible either on the group’s Web page or via a photo feed. The challenge isto retrieve these photos from users’ photo repositories and merge them.

Member Feeds

The photos a member is sending to a specific group are provided as an RSS-based photo feedwith the mentioned extensions (see Section 4.4.2). That is to say, if a user is has joined severalgroups for each group a different RSS feed is provided as the user probably shares differentphotos in different groups.

49

Page 64: Decentralized and Distributed Photo Sharing on the Web

The channel element includes information about the author including the name, URL,and the avatar. The item elements represent photos sent to the group including the time,pubDate, when the user sent them to the group; furthermore, the titles, descriptions, URLsof thumbnails and the actual photo files are specified.

Feed Aggregation

To merge the members’ photo feeds they first need to be parsed using the procedure intro-duced in Section 4.4.3. Once the content of an RSS photo feed is available as an array the feedcan be regarded as a conventional data source, comparable to a database table. The photos ofall the members are sorted chronologically by using the pubDate element of item elementused in the RSS feeds for representing a photo. This allows to sort the group’s photos in sucha way that newest photo additions appear upfront even though the photo could be uploadedby the member to her photo repository long before.

The aggregated photo stream of a group can then be accessed either on the Web page orvia a photo feed. On the Web page the photos are presented in a thumbnail listing employingpagination (see Section 4.2.2). Clicking an icon leads the user to the original photo page ofthis member’s photo repository. The RSS photo feed of the group allows to subscribe to theshared photos using an RSS or photo feed reader (see Section 4.4.1).

4.6 Limitations and Improvements

Due to time constraints it was not possible to undertake a formal evaluation of the imple-mented prototype for decentralized photo sharing; instead a brief and informal overviewof its limitations including possible improvements will be discussed. In particular, the lim-itations of the implemented software relate to usability issues, the employed classificationmechanisms, community aspects, and technical shortcomings in terms of security and relia-bility.

4.6.1 Usability and Customization

Even though using the photo repository is perceived to be efficient, effective, and pleasant, atthe time of writing this document there was no easy way to install the software. Users wish-ing to use the software would need to follow a rather complicated set of installation stepsrequiring some background in computer science. Clearly, an installer creating the databasetables and guiding the user to create a working environment for the repository would helpin this respect.

The layout of entrance pages is so far predetermined by the software and cannot be changedby the user (see Section 4.2.1). It would be favorable, if a simple and intuitive mechanismexisted allowing the host to change the structure of these pages. This way the user couldhighlight her focus, e.g., on groups or on individual photos. There are mechanisms availablein and supported by modern Web browsers allowing the user to drag and drop elements onWeb pages. This should be used to allow customization of the entrance pages.

50

Page 65: Decentralized and Distributed Photo Sharing on the Web

In general, the ways users can customize the photo repository is limited to the avatar, thetitle, and the header color. Even though the CSS files could be edited by the user, it woulddemand specific expertise. A template system allowing to install themes in an easy waywould be a better alternative.

Further insights about usability issues of the software requires empirical investigation.While there has been a small paper prototyping study in regard to page and site structureand interaction design, before the actual software was implemented, usability testing withthe prototype has not been undertaken. A user study could employ different types of meth-ods, such as the observation of users while using the software and interviews about the userexperience. This way the design regarding site and page structure but also interaction pat-terns could be validated and improved.

4.6.2 Classification

The potential of tagging as the classification scheme has not been exhausted. The distributionof tags could be used to create navigable hierarchies beyond tag clouds (see Sections 2.3.2 and4.2.2). Furthermore, it is possible to employ filtering techniques using Boolean operators.

Sharing photos in groups does not include the distribution of tags attached to the sharedphotos. While the RSS specification includes a category element, it has not been harnessedfor photo sharing. The inclusion of photo’s metadata within RSS could improve the retrievalof photos beyond just one photo repository. Photo sharing groups could be navigated usingthe tags of the added photos. But also web-based media search engines would make use ofthese information.

4.6.3 Community Aspects

The photo sharing software does only provide one—though important—community feature,sharing photos in groups. Community mechanisms such as assigning a photo as a favorite,appointing contacts, or sending a photo as an answer to another photo are not supportedexplicitly; of course, it is possible to post favoring comments to photos and add a link to arelated photo. The photo sharing software should be enhanced in such a way that it allowsto employ more community features than just groups.

The group feature as it is implemented by the prototype is limited in a sense that the con-versation does not directly occur within the group. In the strict sense, photo sharing groupsare rather containers where members can add photos, however, conversation around thosephotos is possible using the comment forms below each individual photo. An improvementwould be discussion boards associated with every group enabling members to engage con-versation about challenges, group rules, and other group-specific questions.

51

Page 66: Decentralized and Distributed Photo Sharing on the Web

4.6.4 Security, Privacy, and Performance

Further limitations that have been identified are of technical nature relating to issues regard-ing security, privacy, and performance.

While measures have been taken to provide basic security mechanisms the prototypewould not withstand stress testing. This applies, for instance, to spam in terms of commentsand Trackback messages.

In addition, does the photo repository not allow to set individual photos or sets as privateexclusively available to a certain group of visitors. This means that uploaded photos areaccessible for everyone via the photo repository. While the photo repository foregrounds thesharing aspect, it would be favorable to introduce levels of visibility for different groups ofvisitors.

The performance in terms of speed has not been empirically measured, but it is clear thatthere is still room for optimization. For instance, the cached local copies of the RSS feeds ofgroup members could be stored in the database to enable faster access.

52

Page 67: Decentralized and Distributed Photo Sharing on the Web

5 Summary and Outlook

This chapter gives a brief summarization of decentralized photo sharing and how the ap-proach can be advanced to a more generalized way of sharing different types of informationor media sources in a decentralized community.

5.1 Conclusion

The combination of community features and resource sharing constitutes a new paradigmof online community and social classification. This new approach towards how commu-nity members relate to each other and how resources such as photos are shared has beenpioneered by hosted resource sharing communities. However, severe problems have beenhighlighted regarding the centralized, commercial, and restricted architecture of most hostedcommunities.

To layout the context for an alternative to centralized photo sharing a range of techno-logical fundamentals and related research that significantly influenced the project have beenpresented, including background about library science, information retrieval, databases, theWorld Wide Web, online communities, and software design methodologies.

Decentralized and distributed photo sharing has been conceptualized as an approach to-wards community and conversation while fostering access and empowerment. User researchincluding interviews led to personas representing differing user contexts, goals, and aspiredfeatures. With design goals and background information about potential users a scenariofor a photo repository was developed enabling users to host groups or join groups hosted byother users. Group mechanisms, such as joining and sending photos have been implementedusing established technologies from the blogosphere such as RSS and Trackback. As a classi-fication scheme tagging was used providing an easy and efficient mechanism for organizingphotos.

A prototype of decentralized photo sharing has been implemented employing the model-view-controller design pattern. The software’s structure and appearance was inspired by thelayout of most weblogs, however, specificities related to photos have been acknowledged.Thus, content snippets have been introduced as a mechanism for entrance pages to conveyunderlying content items, such as photos or sets. The prototype allows the user to employdifferent modificatory user actions including plain links, forms, and Ajax actions. Adding atag to a photo can be done, for example, from the upload form or via an Ajax action foundin the contextual area. There are also different ways to access published photos; besidesnavigating a photo repository, users can subscribe to different RSS feeds containing recentlyadded photos, photos with specific tags, or photos from a specific group. Since the imple-mented software still is of prototype quality, limitations with potential improvements have

53

Page 68: Decentralized and Distributed Photo Sharing on the Web

been addressed. The implemented prototype builds on top of several open source projectsand will be published as open source, as well. Thus, further development is sought for andopened up to other interested developers.

After all it has been shown that photo sharing does not rely on centralized architectures.Instead, open standards and agreed upon protocols could replace proprietary mechanismsof social interaction. However, decentralized photo sharing does not imply that commu-nity providers are replaced by distributed, interconnected photo repositories. Communityproviders should rather engage in the discussion around open protocols for sharing andinteraction and implement common interfaces. This would resemble the approach of theblogosphere where a user can either sign up at a community provider or install her ownsoftware on a Web server; either way, the blog author can engage in the conversation usingRSS and Trackback. In this sense, the user should be empowered to freely choose what kindof options suit her best.

5.2 Future Work

Decentralized photo sharing as presented in this report needs further development in re-spect to the state of the software, Atomique, but also relating to the concept of decentralizedresource sharing in general. First, it would be important to undertake usability-tests anduser studies to learn about the usability of the implemented prototype. Shortcomings bothin implementation and concept could be exposed and corrected. The overall quality of thesoftware in terms of performance, security, and feature set should be extended to constitute arealistic alternative to existing photo sharing communities. This includes the ways users caninteract with each other and the classification mechanisms. While the content-based imageretrieval approach has not been employed it yet, it could be interesting to investigate how itcan be used in a distributed framework.

In a decentralized environment where appearance and functionality of applications canand actually is increasingly modified by its users the conventional role distribution betweenuser and programmer more and more blurs. What kind of implications does this have onsoftware and interaction design? An important equally difficult question ranges around thetopics of privacy, trust, and identity. What kind of mechanisms could be developed to secureprivate data but at the same time allow for community and conversation?

These questions have to be investigated and addressed in the future. Overall, decentral-ized photo sharing has shown to be an innovative and promising approach towards decen-tralized resource sharing and community in general.

54

Page 69: Decentralized and Distributed Photo Sharing on the Web

Bibliography

[ACMDH03] Karl Aberer, Philippe Cudre-Mauroux, Anwitaman Datta, and ManfredHauswirth. Pix-grid: A platform for p2p photo exchange. In CAiSE 2003 Work-shops, Ubiquitous Mobile Information and Collaboration Systems (UMICS 2003),2003.

[Arm06] Deborah J. Armstrong. The quarks of object-oriented development. Commun.ACM, 49(2):123–128, 2006.

[Bat89] Marcia J. Bates. The design of browsing and berrypicking techniques for theonline search interface. 1989.

[BISI+06] Judit Bar-Ilan, Snunith Shoham, Asher Idan, Yitzchak Miller, and AvivShachak. Structured vs. unstructured tagging – a case study. In CollaborativeWeb Tagging Workshop at WWW 2006, Edinburgh, May 2006.

[BKS06] Grigory Begelman, Philipp Keller, and Frank Smadja. Automated tag cluster-ing: Improving search and exploration in the tag space. In Collaborative WebTagging Workshop at WWW 2006, Edinburgh, Edinburgh, Scotland, May 2006.

[BL90] Tim Berners-Lee. info.cern.ch - the website of the world’s first-ever web server,1990.

[BLHL01] Tim Berners-Lee, James Hendler, and Ora Lassila. The semantic web. ScientificAmerican, 284(5):28–37, 2001.

[BLW+04] Gerard Beenen, Kimberly Ling, Xiaoqing Wang, Klarissa Chang, DanFrankowski, Paul Resnick, and Robert E. Kraut. Using social psychology tomotivate contributions to online communities. In CSCW ’04: Proceedings ofthe 2004 ACM conference on Computer supported cooperative work, pages 212–221,New York, NY, USA, 2004. ACM Press.

[Bus45] Vannevar Bush. As we may think. The Atlantic Monthly, July 1945.

[BYRN99] Ricardo Baeza-Yates and Berthier Ribeiro-Neto. Modern Information Retrieval.Addison Wesley, May 1999.

[Cet97] Karin Knorr Cetina. Sociality with objects: Social relations in postsocial knowl-edge societies. Theory Culture Society, 14(4):1–30, 1997.

[Che76] Peter Pin-Shan Chen. The entity-relationship model—toward a unified viewof data. ACM Transactions on Database Systems, 1(1):9–36, 1976.

[Cod70] E. F. Codd. A relational model of data for large shared data banks. Communi-cations of the ACM, 13(6):377–387, 1970.

55

Page 70: Decentralized and Distributed Photo Sharing on the Web

[Con87] Jeff Conklin. Hypertext: an introduction and survey. Computer, 20(9):17–41,1987.

[CR03] Alan Cooper and Robert M. Reimann. About Face 2.0: The Essentials of Interac-tion Design. Wiley, 2003.

[dan04] danah boyd. Friendster and publicly articulated social networks. In Confer-ence on Human Factors and Computing Systems (CHI 2004), pages 24–29, Vienna,April 2004. ACM.

[DH06] Patrick Danowski and Lambert Heller. Bibliothek 2.0: Die zukunft der biblio-thek? Bibliotheksdienst, pages 1259–1271, November 2006.

[Dur84] William R. Durrell. Data administration: a practical guide to successful data man-agement. McGraw-Hill, 1984.

[EHS+02] Jennifer English, Marti Hearst, Rashmi Sinha, Kirsten Swearingen, and Ka-Ping Yee. Hierarchical faceted metadata in site search interfaces. In CHI ’02:CHI ’02 extended abstracts on Human factors in computing systems, pages 628–639,New York, NY, USA, 2002. ACM Press.

[Eng05] Jyri Engestrom. Why some social network services work and others don’t —or: the case for object-centered sociality. Weblog, April 2005.

[Gar05] Jesse James Garrett. Ajax: A new approach to web applications. Webpage,February 2005.

[GBCG+04] Anne Galloway, Jonah Brucker-Cohen, Lalya Gaye, Elizabeth Goodman, andDan Hill. Panel: Design for hackability. Proceedings of the 2004 conference onDesigning interactive systems: processes, practices, methods, and techniques, pages363–366, 2004.

[GJ97] Amarnath Gupta and Ramesh Jain. Visual information retrieval. Commun.ACM, 40(5):70–79, 1997.

[GLNGT04] D. Gruhl, David Liben-Nowell, R. Guha, and A. Tomkins. Information diffu-sion through blogspace. SIGKDD Explor. Newsl., 6(2):43–52, December 2004.

[Gor00] Michael Gorman. Our Enduring Values: Librarianship in the 21st Century, chapterThe History and Philosophy of Library Values, pages 16–28. ALA Editions,2000.

[Gra04] Eric Gradman. Distributed social software. In LayerOne, Los Angeles, June2004. University of Southern California.

[Gra05] Paul Graham. Web 2.0, November 2005.

[Gri04] Mary Griffiths. e-citizens : Blogging as democratic practice. Electronic Journalof e-Government, 2(3):155–166, 2004.

[Hea06] Marti A. Hearst. Clustering versus faceted categories for information explo-ration. Commun. ACM, 49(4):59–61, April 2006.

[HGM06] Paul Heymann and Hector Garcia-Molina. Collaborative creation of commu-nal hierarchical taxonomies in social tagging systems. Preliminary technicalreport, Stanford InfoLab, 2006.

56

Page 71: Decentralized and Distributed Photo Sharing on the Web

[Hjo00] Birger Hjorland. Library and information science: practice, theory, and philo-sophical basis. Information Processing & Management, 36(3):501–531, 2000.

[HSBW04] Susan C. Herring, Lois Ann Scheidt, Sabrina Bonus, and Elijah Wright. Bridg-ing the gap: A genre analysis of weblogs. Proceedings of the 37th Hawaii Inter-national Conference on System Sciences, 2004.

[KC06] Rohit Khare and Tantek Celik. Microformats: a pragmatic path to the seman-tic web. In WWW ’06: Proceedings of the 15th international conference on WorldWide Web, pages 865–866, New York, NY, USA, 2006. CommerceNet Labs andTechnorati, ACM Press.

[KD02] Alan Knight and Naci Dai. Objects and the web. IEEE Software, 19(2):51–59,2002.

[KK04] Richard Kahn and Douglas Kellner. New media and internet activism: fromthe ‘battle of seattle’ to blogging. new media and society, 6(1):87–95, 2004.

[Kol99] Peter Kollock. The Economies of Online Cooperation: Gifts and Public Goods inCyberspace, chapter 9, pages 220–239. Routledge, 11 New Fetter Lane, LondonEC4P 4EE, 1999.

[KZB04] M. L. Kherfi, D. Ziou, and A. Bernardi. Image retrieval from the world wideweb: Issues, techniques, and systems. ACM Comput. Surv., 36(1):35–67, 2004.

[Lee06] Kathy J. Lee. What goes around comes around: an analysis of del.icio.us associal space. In CSCW 2006: Proceedings of the ACM conference on Computersupported cooperative work, pages 191–194, Banff, Alberta, Canada, 2006.

[Mil06] Paul Miller. Coming together around library 2.0. D-Lib Magazine, 12(4):1082–9873, April 2006.

[MNdD06] Cameron Marlow, Mor Naaman, danah boyd, and Marc Davis. Position paper,tagging, taxonomy, flickr, article, toread. In Collaborative Web Tagging Workshopat WWW 2006, Edinburgh, May 2006.

[Nel67] Ted H Nelson. Information Retrieval: A Critical Review, chapter Getting It Outof Our System. Thompson Books, Washington, D.C., 1967.

[NHW+04] Mor Naaman, Susumu Harada, QianYing Wang, Hector Garcia-Molina, andAndreas Paepcke. Context data in geo-referenced digital photo collections. InMULTIMEDIA ’04: Proceedings of the 12th annual ACM international conferenceon Multimedia, pages 196–203, New York, NY, USA, 2004. ACM Press.

[O’R05] Tim O’Reilly. What is web 2.0 – design patterns and business models for thenext generation of software, November 2005.

[Per06] Dan Perkel. Designing for appropriation. Weblog, April 2006.

[PS04] Engelbert Plassmann and Ludger Syre. Die moderne Bibliothek, chapter Die Bib-liothek und ihre Aufgabe, pages 11–41. K.G. Saur, Munchen, 2004.

[Ran31] Shiyali Ramamrita Ranganathan. The Five Laws of Library Science. Madras Li-brary Association and Edward Goldston, Madras and London, 1931.

57

Page 72: Decentralized and Distributed Photo Sharing on the Web

[Ree79] Trygve Reenskaug. Models - views - controllers. Technical report, Xerox PARC,December 1979.

[Ret05] Scott Rettberg. All together now: Collective knowledge, collective narratives,and architectures of participation. In DAC 2005: Digital Arts & Culture, Copen-hagen, Sweden, December 2005.

[RM02] Louis Rosenfeld and Peter Morville. Information Architecture for the World WideWeb: Designing Large-Scale Web Sites. O’Reilly, August 2002.

[Roc97] Robert Rockwell. An infrastructure for social software. Spectrum, IEEE,34(3):26–31, March 1997.

[SLR+06] Shilad Sen, Shyong K. (Tony) Lam, Al Mamunur Rashid, Dan Cosley, DanFrankowski, Jeremy Osterhouse, F. Maxwell Harper, and John Riedl. tagging,communities, vocabulary, evolution. In CSCW 2006: Proceedings of the ACMconference on Computer supported cooperative work, pages 181–190, Banff, Alberta,Canada, November 2006.

[SWS+00] Arnold W.M. Smeulders, Marcel Worring, Simone Santini, Amarnath Gupta,and Ramesh Jain. Content-based image retrieval at the end of the early years.IEEE transactions on pattern analysis and machine intelligence, 22(12):1349–1380,2000.

[TL98] O De Troyer and C Leune. Wsdm: a user centered design method for websites. Computer Networks and ISDN Systems, 1998.

[VR79] C. J. Van Rijsbergen. Information Retrieval, 2nd edition. Dept. of Computer Sci-ence, University of Glasgow, 1979.

[WF03] Youcheng Wang and D R Fesenmaier. Assessing motivation of contributionin online communities: An empirical investigation of an online travel commu-nity. Electronic markets, 13(1), 2003.

[YI99] Atsuo Yoshitaka and Tadao Ichikawa. A survey on content-based retrieval formultimedia databases. IEEE Transactions on Knowledge and Data Engineering,11(1):81–93, 1999.

[YSLH03] Ka-Ping Yee, Kirsten Swearingen, Kevin Li, and Marti Hearst. Faceted meta-data for image search and browsing. In CHI ’03: Proceedings of the SIGCHIconference on Human factors in computing systems, pages 401–408, New York,NY, USA, 2003. ACM Press.

[ZH00] X.S. Zhou and T.S. Huang. CBIR: From low-level features to high-level se-mantics. Proceedings of SPIE- The International Society for Optical Engineering,3974:426–431, 2000.

58