User Labor

Authors Burak Arikan (arikan at burak-arikan dot com), Engin Erdogan (engin at xdiscipline dot com)
May 1st, 2008


A framework for sustaining user labor across the web.

Overview


With User Labor, we propose an open data structure, User Labor Markup Language (ULML), to outline the metrics of user participation in social web services. Our aim is to construct criteria and context for determining the value of user labor, which is currently a monetized asset for the service provider but not for the user herself. We believe that universal, transparent, and self-controlled user labor metrics will ultimately lead to more sustainable social web.

A very simple ULML document looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <record>
      <actions>
        <item object="photo" verb="upload">120</item>
        <item object="photo" verb="tag">330</item>
      </actions>
      <reactions>
        <item object="photo" verb="comment">15</item>
      </reactions>
      <network>
       <item object="connection">256</item>
      </network>
    </record>
  </channel>
</ulml>
As of November 2009, we have modified the ULML syntax to adopt the Object and Verb attributes from Activity Streams project.

ULML elements represent the sum of people's activities to create, improve, and maintain their existence in social web. See ULML Spec and ULML examples for more detail.





Rationale


The recent trends in participatory web indicate that the spectacle users create in social web services (through creating social content and meta-content) is not a by-product of use, but the product itself [1]. Many web services today base their business models on capitalizing on this product, the creative capacity of their users, through sophisticated advertising networks while positioning the user as both the producer and the consumer of content. The service cycle is familiar: service provider facilitates social use, user produces content, content generates traffic, traffic attracts advertising revenue for the service.

In this ecology, it is implied that all stake holders (service provider, user, advertiser) are compensated for their engagement in order for the service to sustain itself. Since every activity on the web is measurable, the compensations are determined in a pragmatic way through analytics. Usage statistics determine advertising value of the service. Number of clicks determine affection for advertised products. What users get, however, is not defined as clearly as the service provider's or the advertiser's compensation, which undermines the sustainability of the production cycle [2].

Granted, the user is already getting compensated by using the service for free in exchange with advertisement exposition. But, the value of the web service is based on the sum of service facilitation and content production [3], and the user appears as a stakeholder twice in the service ecology, as the consumer and the producer of the service. Thus, in order for the production cycle to sustain itself in the long term, there should be compensation for producing the content as well as using the service for free. Before speculating on the form of compensation, the value of user contribution needs to be transparent and its metrics should be defined.

While service providers may understand, calculate, and leverage user contribution to determine business plans and solicit advertisers, its value often remains opaque to the users. Activity logs are stored as the property of respective service providers and some providers allow access to parts of these records through their Application Programming Interfaces (API). Still, there is no means for interpreting this information universally across different services.


Origins


The idea of User Labor is rooted in immaterial and affective labor concepts [4], where the labor produces or manipulates affects. Recently, User Labor has become particularly relevant on the Internet since user participation became a marketable product for web 2.0 services. What used to be immaterial is now very close to being material, because the affection can be measured on a per person basis.

We have outlined a first draft for User Labor while working on Meta-Markets.com, a recent non-profit stock market project for social web content. In Meta-Markets, social web users issue their content to markets and the content is divided into individual units, becoming commodities for exchange. As content is issued, a reference exchange value (fair value) is calculated, which is based on content's usage data in its respective domain.

When formulating reference exchange values for different social web services, we had a hard time extracting consistent usage data across web services because there are no standards for the metrics of user participation. Most of these data remain buried in the activity logs of web services, simply because there is no demand for them. We took this challenge as an opportunity and initiated a framework for defining User Labor metrics.

Upon creating the initial draft, we have realized that the metrics of User Labor should not be limited to Meta-Markets, because it can be useful in other contexts. More specifically, we are hoping that a standard for these metrics can initiate discussions around rewarding the content providers of social web and creating sustainable economies for online communities.


ULML Spec


User labor is the work that people put in to create, improve, and maintain their existence in social web. In more detail, user labor is the sum of all activities such as:
  • generating assets (e.g. user profiles, images, videos, blog posts),
  • creating metadata (e.g. tagging, voting, commenting etc.),
  • attracting traffic (e.g. incoming views, comments, favourites)
  • socializing with other people (e.g. number of friends, social influence)
in a social web service.

User Labor Markup Language (ULML) is an open protocol for sharing the value of user's labor across the web. This is the first draft to outline the metrics of the user labor.

A very simple document looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <record>
      <actions>
        <item object="photo" verb="upload">120</item>
        <item object="photo" verb="tag">330</item>
      </actions>
      <reactions>
        <item object="photo" verb="comment">15</item>
      </reactions>
      <network>
       <item object="connection">256</item>
      </network>
    </record>
  </channel>
</ulml>

MIME Type
First things first, the MIME type for User Labor documents is application/ulml+xml. Using this MIME type in your HTML header will allow ULML aware browsers and tools to find the ULML document representing a page.
<link rel="meta" verb="application/ulml+xml" title="ULML 0.1" href="..."/>	
Format
ULML has two main sections: the channel and the record. Channel, just like it is in RSS, is the general information about the service, where the data is generated [5]. Record is the data bucket that contains the labor value information.

A ULML record has three main elements:

<actions> — a person's actions (video uploads, bookmarks, tags, comments, votes etc.)
<reactions> — other's reactions to the person's actions (same types as in actions)
<network> — efficiency of the personal social network

Each main element contains item tags, which simply contains the unit value described with name and type :

name — name of the content object
type — action that generates the content object

Basic items look like this:
<item object="photo" verb="tag">65</item>
<item object="video" verb="upload">22</item>
<item object="group" verb="create">4</item>

While the basic item names and types can vary based on the service ("photo", "tag", "group" etc.), network item objects are permanent because the measurement of social networks does not vary from service to service. There are four important elements in the social network analysis incorporated as name in network items:

"connection" — number of friend connections
"density" — connections among friends divided by the number of all possible connections
"closeness" — average distance from the person to all friends
"betweenness" — probability that the person lies on the shortest path between any two other person
* Connections are assumed reciprocal.

Network items look like this:
<item object="connection">269</item>
<item object="density">0.101</item>
<item object="betweenness">0.225</item>	  
<item object="closeness">0.700</item>


ULML Examples


ULML data structure can be generated by the service provider and depending on the user's decision it can be private or public. Here are three examples for the major social web services Flickr, Facebook, YouTube and an example for a typical blog.

Flickr ULML example:
<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <title>Flickr / arikan</title>
    <link>http://fickr.com/photos/arikan</link>
    <description>arikan's photos on Flickr.</description>
    <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>    
    <user>arikan</user>
    <memberSince>Thu, 01 Jun 2005 20:00:01 GMT</memberSince>    
    <record>
      <actions>
        <item object="photo" verb="upload">852</item>
        <item object="group" verb="create">4</item>
        <item object="photo" verb="tag">1256</item>
        <item object="photo" verb="comment">200</item>
        <item object="photo" verb="favorite">32</item>
        <item object="photo" verb="flag">3</item>
        <item object="group" verb="join">12</item>
      </actions>
      <reactions>
        <item object="photo" verb="view">26984</item>
        <item object="photo" verb="comment">96</item>
        <item object="photo" verb="favorite">25</item>
      </reactions>
      <network>
        <item object="connection">125</item>
        <item object="density">0.167</item>
        <item object="betweenness">0.102</item>
        <item object="closeness">0.600</item>
      </network>
      <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>
    </record>
  </channel>
</ulml>
	
Facebook ULML example:
<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <title>Facebook | Barack Oboe</title>
    <link>http://mit.facebook.com/profile.php?id=619187456</link>
    <description>Barack Oboe's profile on Facebook.</description>
    <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>    
    <user>Barack Oboe</user>
    <memberSince>Thu, 01 Jun 2005 20:00:01 GMT</memberSince>    
    <record>
      <actions>
        <item object="photo" verb="upload">3</item>
        <item object="video" verb="upload">6</item>
        <item object="group" verb="create">4</item>
        <item object="group" verb="join">20</item>
        <item object="application" verb="use">8</item>
      </actions>
      <reactions>
        <item object="photo" verb="tag">18</item>
        <item object="wall" verb="post">50</item>
      </reactions>
      <network>
        <item object="connection">269</item>
        <item object="density">0.101</item>
        <item object="betweenness">0.225</item>
        <item object="closeness">0.700</item>
      </network>
      <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>
    </record>
  </channel>
</ulml>
YouTube ULML example:
<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <title>Youtube - Kate's channel</title>
    <link>http://youtube.com/user/kate</link>
    <description>Kate's channel on YouTube.</description>
    <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>    
    <user>Kate</user>
    <memberSince>Thu, 01 Jun 2005 20:00:01 GMT</memberSince>    
    <record>
      <actions>
        <item object="video" verb="upload">36</item>
        <item object="video" verb="watch">36</item>
        <item object="group" verb="create">4</item>
        <item object="group" verb="join">11</item>
        <item object="video" verb="favorite">45</item>
        <item object="video" verb="rate">72</item>
        <item object="video" verb="flag">9</item>
        <item object="video" verb="comment">21</item>
      </actions>
      <reactions>
        <item object="video" verb="views">730</item>
        <item object="video" verb="favorite">94</item>
        <item object="video" verb="rate">2420</item>
        <item object="video" verb="flag">1</item>
        <item object="video" verb="comment">21</item>
        <item object="video" verb="response">5</item>
      </reactions>
      <network>
        <item object="connection">32</item>
        <item object="density">0.322</item>
        <item object="betweenness">0.225</item>
        <item object="closeness">0.500</item>
      </network>
      <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>
    </record>
  </channel>
</ulml>
	
Blog ULML example:
<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <title>Billie Jean's Diary</title>
    <link>http://billiejean.com/</link>
    <description>Billie Jean's hot blog</description>
    <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>    
    <user>Jean</user>
    <memberSince>Thu, 01 Jun 2005 20:00:01 GMT</memberSince>    
    <record>
      <actions>
        <item object="post" verb="write">128</item>
        <item object="post" verb="tag">345</item>
        <item object="post" verb="comment">72</item>
      </actions>
      <reactions>
        <item object="post" verb="comment">72</item>
        <item object="post" verb="trackback">32</item>
      </reactions>
      <network>
        <item object="connection">15</item>
        <item object="density">0.122</item>
        <item object="betweenness">0.325</item>
        <item object="closeness">0.102</item>
      </network>
      <pubDate>Thu, 06 Feb 2008 20:55:01 GMT</pubDate>
    </record>
  </channel>
</ulml>
	


How to use


Users of any social web service ask for ULML files from your service providers. Metaphorically, a ULML document is user's resume containing user's work experience and a breakdown of activities in the service. It is evidence for how the user performs in web service. Thus, a ULML document is a tool for users to communicate with the web services upfront and to negotiate on how they will be rewarded in return for their labor within the service.

Service providers make ULML files available public or private based on your user's preference. User Labor is intended to lay the foundation for more sustainable cycles within and across services. By making ULML documents accessible, service providers can have a better understanding of their users across different services through common metrics, be able to discuss user expectations upon registration, and ultimately develop models for rewarding providers of content for the continuity of user's labor.

Designers and Developers hack your service to generate ULML files. Read ULML files from other services. User Labor provides common metrics for understanding users and informing design/development. ULML documents enhance the current user typologies and provide more granular information for describing use patterns. For example, the vagueness in terms like power user or lurker can be eliminated through analyzing the metrics and more descriptive ones can emerge.


Roadmap


Developing ULML libraries in Ruby, Python, PHP, Java, Javascript, .NET.
Developing ULML plugins for open source blog software WordPress, Movable Type, Typo.
Authoring User Labor microformats [6].


How to contribute


Share: Email to your friends. Spread the word at your social media: Delicious, Twitter etc.
Critique: Post what you think about User Labor on your blog or on mail lists.
Develop: Build reader/writer libraries for Ruby, Python, PHP, Javascript, Java, .NET
Tinker: Contribute in authoring and editing the spec and microformats.
Apply: Implement ULML in your web service.


FAQ


How do we calculate the value of the labor?
ULML outlines the metrics user labor, but does not provide direction for calculating its value. Calculating the value of labor is a fairly subjective matter, and formulations may vary from service to service. In order to deal with this subjectivity in the best way possible, the metrics of user labor need to be accessible and transparent as a basis for initiating actual value discussions.

Can I retrieve content through ULML?
No. ULML is for retrieving the statistics of content (how many photos, friends, comments etc.) but not for actual content.

How does ULML relate to OpenID?
OpenID is for using single identity across the web. ULML is for using the value of labor across the web. Currently no integration is planned, but please feel free to suggest composite use.

How does User Labor relate to OAuth?
OAuth is for standardized service to service authentication. ULML can be securely transferred among OAuth implemented services. So the value of a user's labor in one service can be acknowledged in another one.

How does User Labor relate to APML?
APML is a scheme for attention profiling, ULML is specified for the metrics of labor. They should not be confused, ULML is for measuring the value of user labor, not for measuring attention.



References


1. Terranova, Tiziana (2003). "Free Labor: Producing Culture for the Digital Economy"
http://www.electronicbookreview.com/thread/technocapitalism/voluntary (accessed March 15, 2008)

2. Bruns, Axel (2005). "Some Exploratory Notes on Produsers and Produsage". Institute for Distributed Creativity.
http://distributedcreativity.typepad.com/idc_texts/2005/11/some_explorator.html (accessed March 15, 2008)

3. Wikipedia contributors. "Theory of labor". Wikipedia, The Free Encyclopedia.
http://en.wikipedia.org/wiki/Labor_theory_of_value (accessed March 15, 2008)

4. Lazzarato, Maurizio (1997). "Immaterial Labor"
http://www.generation-online.org/c/fcimmateriallabour3.htm (accessed March 15, 2008)

5. RSS Specification
http://cyber.law.harvard.edu/rss/rss.html

6. Microformats
http://microformats.org

7. Activity Streams
http://activitystrea.ms