[foaf-dev] rough notes: badges, lists and groups in RDFa/OWL

Peter Williams pwilliams at rapattoni.com
Mon Dec 20 22:26:54 CET 2010

I can see the need, in an assertive world FOR A "do-not-assert" mechanism. And, indeed, a do-not-re-assert" mechanism.

You cannot claim me as a member of YOUR group, just because you assert it to be so. It may be preducial to me.  Sorry, as much as folks want to, you may NOT put me in a listing of (US) Americans (because its strictly illegal for me to claim to be one, or half claim that status, or even to let there exist evidence that others are claim that state about-me).

This suggests: for my badge with a do-not-assert tag, the party asserting I have consented to listing in their group SHALL have some or other (technical) evidence of that consent - probably from the SSL or SSL+Digest handshake.

The nice thing about the SSL-enhanced www-auth header's fields is that there is implicit evidence from the crypto and the crypto's timing and handshake - that then can tie HTTP handshakes to time and place. Used nicely, these might be re-purposed for *Discretionary* consent in semweb groupware, to deal with the kind of semi-trust/semi-formal controls needed in large societies.

-----Original Message-----
From: foaf-dev-bounces at lists.foaf-project.org [mailto:foaf-dev-bounces at lists.foaf-project.org] On Behalf Of Dan Brickley
Sent: Monday, December 20, 2010 12:34 PM
To: foaf-dev Friend of a
Subject: [foaf-dev] rough notes: badges, lists and groups in RDFa/OWL

explores the business discussed here recently, of modelling groups in a very fluid way using OWL/RDFS classes, but also treating them as named entities that can have properties (like image/icon urls).

Previous OWL discussion re foaf:Group

What I've done in
http://svn.foaf-project.org/foaftown/2010/badges/badgetest1.html is start some RDFa example showing how a page can declare or describe a group (aka list, badge, etc.). It gives examples from two different badge systems: wikipedia and foursquare, but rather than showing multi-site, provenance/claims stuff, for now we just have a simple monolithic demo where the page itself asserts group membership.

The instance markup isn't too bad really, assuming you can live with RDFa plus some kind of namespacing mechanism:

<ul about="http://danbri.org/foaf.rdf#danbri" typeof="foaf:Person
badge:Langskill_hr_1 badge:Location_boxee_party" >  <li>
  name: <span property="foaf:name">Dan Brickley</span>  </li>  <li>
  homepage: <a href="http://danbri.org/" rel="foaf:homepage foaf:account">danbri.org</a>  </li> </ul>

And here's the paragraph that defines one of those groups,

<p about="#Langskill_hr_1" id="Langskill_hr_1" typeof="foaf:Group rdfs:Class"> <span property="rdfs:label">Group 1: basic croatian</span> <span property="rdfs:comment">People with basic language skills in croatian </span> This is a sub-group of the <a rel="rdfs:subClassOf"
href="#Langskill_hr">langskill_hr basic croatian</a> <span rel="rdfs:subClassOf" href="http://xmlns.com/foaf/0.1/Person"/>

So basic idea is to move from per-site local names, to badges/groups/lists whose definitions are to some extent machine readable. And where the environment moves us gently towards being able to stand back from particular groups, and look at the bigger picture.
So instead of my random twitter list for 'xml stuff', deal with 'all the lists on twitter that ascribe some level of XML expertise to their members'.

I've sketched a few more design issues in the svn demo page but I'll excerpt here for convenience,


What do all these systems have in common?

They declare groups (lets say of people; we could also treat non-human agents, organizations, groups etc. in a similar way, but simply for now).

The give a short natural language description characterising that group. They may also have a short name, an image link. And in many cases they may be part of a more complex system defining groups of groups.

Consider a Boxee Fan with basic knowledge of Croatian.

In foursquare, this person would be in group 66 by virtue of having checked in at a Boxee.tv promotional event. This means that the group membership is asserted by the foursquare service, rather than the user.

In Wikipedia, the language ability could be encoded as part of a larger 'Babel' template.

The wikipedia markup {{Babel|en|hr-1}} gives rise to HTML markup showing:

en - This user is a native speaker of English.
hr-1 - Ovaj suradnik posjeduje osnovno znanje hrvatskog jezika.
So again, we have simple local-to-some-site codes for groups; just as our user is in group '66' on foursquare, they're in groups (let's say) "babel en" and "babel hr-1" on Wikipedia. Unlike foursquare, these group membership claims are typically asserted by the user, but are accessible for anyone in the wiki to edit.

Mailing list membership, or groups in identi.ca (statusnet) or Twitter lists can also be looked at this way. Again, they select some but not
(usually) all people and put them in a named group; in some cases
(identi.ca) the groups are self-selecting; in others (twitter) they are annotations applied by others. On twitter for example, each user account can create named lists with short names like 'semweb' to apply to other users.

Is there an underlying model?

groups, lists and badges require a claims-based perspective: some party is asserting that some (typically other) party is a member of some group Each group typically is defined within a Web page, with label, description, icon etc.
Different sites provide different mechanisms for asserting group membership, and different APIs to the resulting data The various specific groups used in an assertion often have rich relationships to each other (eg. compare 'en-1' with 'en-5', or the cluster of cat-related groups defined at Wikipedia) To varying degrees, it may be possible to make template-ized claims about members of some group in machine-friendly form.
if person x is in this group, they work (or have worked) for organization y if person x is in this group, they speak read or write language y, with ability z if person x is in this group, they are interested in entity y if person x is in this group, they are interested in topic y """

Nearby in the Web, https://wiki.mozilla.org/Drumbeat/Badges
http://joshuagay.org/blog/?p=32 from mozilla folks


foaf-dev mailing list
foaf-dev at lists.foaf-project.org

More information about the foaf-dev mailing list