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

Peter Williams pwilliams at rapattoni.com
Tue Dec 21 00:15:01 CET 2010

I much prefer the semweb way of doing things (vs CORBA (over IIOP));  but for IP reasons, its always worth taking note of the past:


Now, I remember studying the core of ANSAware when I was an undergrad (finishing 86); I also remember the activebadge project that was funded by the EC (which means lots and lots of disclosure...) and its anticipated relationship to name servers (including name servers with certs tied to the naming hierarchy, much like DNSsec).

What is interesting about activebadge and its hookup with CORBA was the notion of dynamic groups, defined according to "location". It's very intituitve, when the badge is literally a (RF) sensed badge (similar to the RFID in your passport or driver's license or car tires these days, sensed in a crowd of 1000 at about 30ft in 5mS, with today's signal analysers.) To those auto-defining groups,  a tag might be attached by schema or actuality (such as do-not-disturb; when said tag is whole point of going into that particular sealed room, surrounded by lots of copper and lead shielding with only ciphered signals as possible outputs...)

-----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