https://microformats.org/wiki/api.php?action=feedcontributions&user=DomtaMonou&feedformat=atomMicroformats Wiki - User contributions [en]2024-03-28T10:53:44ZUser contributionsMediaWiki 1.38.4https://microformats.org/wiki/index.php?title=off&diff=35945off2008-12-20T02:44:23Z<p>DomtaMonou: orzelccna</p>
<hr />
<div>bocacrolro<br />
<h1>OFF - OpenFriendFormat Draft</h1><br />
<br />
OFF (OpenFriendFormat) is an extension of the [[XFN]] (XHTML Friends Network) [[microformat]]<br />
<br />
__TOC__<br />
<br />
== Draft Specification ==<br />
<br />
=== Authors ===<br />
* [http://tabber.org/users/dominatus Anthony Romano] <br />
<br />
=== Editors ===<br />
* [http://tabber.org/users/dominatus Anthony Romano] <br />
* [http://tabber.org/users/nodono01 Nicholas O'Donoughue]<br />
* [http://tabber.org/users/minamhere Chris Nolan] <br />
<br />
=== Copyright ===<br />
{{MicroFormatPublicDomainContributionStatement}}<br />
<br />
=== Patents ===<br />
{{MicroFormatPatentStatement}}<br />
<br />
== Abstract ==<br />
<br />
OFF allows for the standardization and transparency of the user experience between importation and exportation of contacts from various social networks. OFF allows for social network to implement a standardized way of importing contacts and discovering new relationships between new and existing users. It also allows for sites to generate documents detailing the relationship between people on different social networks<br />
<br />
== Consuming ==<br />
<br />
To consume OFF parse it as standard XHTML. A FOSS PHP library is in the works in order to facilitate parsing.<br />
<br />
== Generating ==<br />
<br />
The point of an aggregate generator is that given, for example, user ''dominatus'' on Digg, returns a list of all other known profiles and friends that exist for this user. In this way, developers of new social networks can <br />
use aggregate generators in order to discover friendships for people signing up and suggest new relationships when possible. Aggregate generators should also be able to support the ability to search all networks given a particular handle.<br />
<br />
== Format ==<br />
<br />
OFF consists of an unordered list with embedded [[XFN]] (XHTML Friends Network) links. It also allows for embedded avatars inside the list items as well. Any valid XFN links are also valid in OFF.<br />
<br />
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_structuremodule Structure Module]<br />
body, head, html, title<br />
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_listmodule List Module]<br />
ul, li<br />
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_hypertextmodule Hypertext Module]<br />
a<br />
[http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_imagemodule Image Module]<br />
img<br />
<br />
== Properties on Elements ==<br />
<br />
=== Required Properties ===<br />
<br />
All ul elements should have a class "openfriendformat" to allow for styling of the microformat. Furthermore, all ul's should have an id that is in the format group# and counts up starting at 0 (i.e. group0, group1, group2).<br />
<br />
All li elements must have a class equal to the network name. For guidelines on what the network name is, see the section [[#Network Names]].<br />
<br />
=== Adding an OpenID ===<br />
<br />
To add an OpenID add an XFN link inside an li element and give the li element a class name of ''openid''<br />
<br />
=== Adding an Avatar ===<br />
<br />
To add an avatar for a user put an img tag with a source to the avatar and a class name of ''avatar'' inside the li element after the XFN.<br />
<br />
== Parameters to Generate OFF ==<br />
<br />
* ''account'' : This is the account name of the user in question.<br />
* ''network'' : The network parameter specifies which network the account name is associated with. We will provide a list of recommended network names for popular networks so that switching between different aggregators is seamless for developers. The network parameter also supports an "all" value, which should search all indexed networks for that handle. The network parameter is not necessary for single instance generators, since they should always return the same set of results; however, if a network value is provided the aggregate should not error.<br />
* ''scope'' : The scope parameter specifies what should be returned. It can be set to ''self'' to return just the users other online profiles, ''friends'' to return just the users online contacts, or ''all'' to provide both.<br />
* ''avatars'' : Set this parameter to true to return avatars if the generator supports that. Set to false to prevent avatars from being returned.<br />
<br />
== Network Names ==<br />
<br />
The network name is a class inside each li element. It is also used in the query string to generate an OFF. If you are a social network creating a single instance generator, you may use any name you want for your network, but it should be logical and must be lowercase (so Twitter should use twitter, since that is the most logical name). For OpenID's a network of "openid" must be used.<br />
<br />
The network query term is only necessary for aggregate generators. The "all" term must return all social networks aggregated. When a query requests "all" networks, the results must be grouped logically. (See [[#Grouping]] for more details). Single instance generators should treat the network term as if it was always "all". If the network is specified, (e.g. &network=digg) then only results from the Digg network and OpenID should be returned. When indexing sites, if the sites use OFF, use the network name they have in their OFF document. If they do not, and you are manually indexing them, use your best judgment. A list of recommended network names for popular networks not currently using OFF will be provided below:<br />
<br />
* facebook<br />
* myspace<br />
* digg<br />
* twitter<br />
* magnolia<br />
* delicious<br />
* flickr<br />
* tabber<br />
* socialthing<br />
* brightkite<br />
* livejournal<br />
* blogger<br />
* wordpress<br />
<br />
== Grouping ==<br />
<br />
When an aggregate site receives an "all" network parameter then the results it sends back must be grouped logically. That is, if the aggregate site knows that accounts on two different networks are the same person then they should be in the same ul group. If they do not know if the accounts are the same person then they should be separated into different groups.<br />
<br />
<br />
== Examples ==<br />
<br />
=== Aggregation Example with One Group ===<br />
<br />
<pre><nowiki><ul class='openfriendformat' id='group0'><br />
<li class='twitter'><a href='http://twitter.com/dominatus' rel='me'>dominatus</a></li><br />
<li class='twitter'><a href='http://twitter.com/minamhere' rel='contact'>minamhere</a></li><br />
<li class='twitter'><a href='http://twitter.com/nodono01' rel='contact'>nodono01</a></li><br />
<li class='delicious'><a href='http://del.icio.us/dominatus' rel='me'>dominatus</a></li><br />
<li class='delicious'><a href='http://del.icio.us/ashafer' rel='contact'>ashafer</a></li><br />
<li class='delicious'><a href='http://del.icio.us/minamhere' rel='contact'>minamhere</a></li><br />
<li class='digg'><a href='http://digg.com/users/dominatus/profile' rel='me'>dominatus</a></li><br />
<li class='digg'><a href='http://digg.com/users/bonzodurer3/profile' rel='contact'>bonzodurer3</a></li><br />
<li class='digg'><a href='http://digg.com/users/dmar875/profile' rel='contact'>dmar875</a></li><br />
<li class='myspace'><a href='http://myspace.com/dominatusx' rel='me'>dominatusx</a></li><br />
<li class='myspace'><a href='http://www.myspace.com/16867710' rel='contact'>rhiannon </a></li><br />
<li class='myspace'><a href='http://www.myspace.com/134345434' rel='contact'>Dana</a></li><br />
</ul><br />
</nowiki></pre><br />
<br />
=== Aggregation Example with Multiple Groups ===<br />
<br />
<pre><nowiki><ul class='openfriendformat' id='group0'><br />
<li class='twitter'><a href='http://twitter.com/dominatus' rel='me'>dominatus</a></li><br />
<li class='twitter'><a href='http://twitter.com/minamhere' rel='contact'>minamhere</a></li><br />
<li class='twitter'><a href='http://twitter.com/nodono01' rel='contact'>nodono01</a></li><br />
<li class='delicious'><a href='http://del.icio.us/dominatus' rel='me'>dominatus</a></li><br />
<li class='delicious'><a href='http://del.icio.us/ashafer' rel='contact'>ashafer</a></li><br />
<li class='delicious'><a href='http://del.icio.us/minamhere' rel='contact'>minamhere</a></li><br />
<li class='digg'><a href='http://digg.com/users/dominatus/profile' rel='me'>dominatus</a></li><br />
<li class='digg'><a href='http://digg.com/users/bonzodurer3/profile' rel='contact'>bonzodurer3</a></li><br />
<li class='digg'><a href='http://digg.com/users/dmar875/profile' rel='contact'>dmar875</a></li><br />
</ul><br />
<ul class='openfriendformat' id='group1'><br />
<li class='myspace'><a href='http://myspace.com/dominatusx' rel='me'>dominatusx</a></li><br />
<li class='myspace'><a href='http://www.myspace.com/16867710' rel='contact'>rhiannon </a></li><br />
<li class='myspace'><a href='http://www.myspace.com/134345434' rel='contact'>Dana</a></li><br />
</ul><br />
<ul class='openfriendformat' id='group2'><br />
<li class='lastfm'><a href='http://www.last.fm/user/dominatus' rel='me'>dominatus</a></li><br />
<li class='lastfm'><a href='http://www.last.fm/user/scottso' rel='contact'>scottso</a></li><br />
</ul><br />
</nowiki></pre><br />
<br />
=== Example with OpenID ===<br />
<br />
<pre><nowiki><ul class='openfriendformat' id='group0'><br />
<li class='openid'><a href='http://dominatus.myopenid.com' rel='me'>Anthony Romano</a></li><br />
<li class='twitter'><a href='http://twitter.com/dominatus' rel='me'>dominatus</a></li><br />
<li class='twitter'><a href='http://twitter.com/minamhere' rel='contact'>minamhere</a></li><br />
</ul><br />
</nowiki></pre><br />
<br />
=== Example with Avatar ===<br />
<br />
<pre><nowiki><ul class='openfriendformat' id='group0'><br />
<li class='twitter'><br />
<img class='avatar' src='http://assets3.twitter.com/images/default_profile_image_normal.gif?1187395531'><br />
<a href='http://twitter.com/dominatus' rel='me'>dominatus</a><br />
</li><br />
<li class='twitter'><a href='http://twitter.com/minamhere' rel='contact'>minamhere</a></li><br />
</ul><br />
</nowiki></pre><br />
<br />
== Implementations ==<br />
This section is '''informative'''.<br />
<br />
* [http://tabber.org Tabber] has [http://tabber.org/offtest.php written a aggregate generator test site]<br />
<br />
== References ==<br />
<br />
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]<br />
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 2004-09-10]<br />
* [http://www.w3.org/2002/12/cal/rfc2426 HTML reformatted version of RFC2426]<br />
* [http://w3.org/TR/REC-CSS1 CSS1]<br />
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]<br />
<br />
== External Links ==<br />
<br />
* [http://openfriendformat.com/ OpenFriendFormat Home Page]<br />
<br />
== Related Pages ==<br />
{{off-related-pages}}</div>DomtaMonou