There are many ways to classify a relationship between two individuals. Friend, brother/sister, lover, roommate, etc.


1 Systems of Classification

1.1 XFN

XFN is a great example of one system for classification of relationships among people on the web. That system has been designed in a way which is simple and yet very useful - there is a small collection of relationship types which are defined witin the XFN dialect and which can be used in combination to describe your relationship to someone. Read more about XFN on their website or google it.

Something similar to XFN could be applied to relationships among people within the psyc network. Although XFN is designed to be used with XHTML Hyperlinks on the World Wide Web, the same simple relationship definitions could be applied to psyc friends - a "friend list" is little more than a collection of links to psyc Uniforms, something which can be directly related to the concept of hypertext linking.

<lynX> When I look at Romantic in I can see this is getting too deeply into privacy, even if kept privately on my own server. I thought about how and why one would want to ask the user these things. Sure, you can ask, you can store, but it has to have an applicative use. XFN provides concepts but it doesn't put them in relationship with technical values. For instance, you may specify that you have a crush on somebody, but does that mean you trust this person? The link between the states of a friendship described in XFN and a technically useful trust value is individual, so mostly useless. I think we're pretty well off if we simply ask the user for a numeric trust level. The other possible use for XFN states would be to treat them as people groups. Yes okay, we can have default people groups named that way. Not sure if that is useful in any way, and seen from that perspective the amount of choices in XFN (work, family, romanticism and neighborhood) is clearly lacking all the dimensions of relation there may be. For instance I have acquaintances that I mostly consider for their ability to jam with me in a jam session or to deejay at a party. So contact groups do need free form names, so there you have the tags. The names of contact groups are tags.

1.2 Tagging/Folksonomy

See Wikipedia:Tags for more in-depth information.

A generic method of classification which has gained popularity recently is commonly called "Tagging" - the use of free-form tags (keywords) to describe a link. Tags are not generally confined by any set of rules or standards. The free-form nature of tags is appealing to users and allows for the most freedom of expression within the collection of tags. There have been many tools and systems developed around the tagging paradigm which, for example, display the tags in interesting ways or compute the relationship between tags. One such tool, Wikipedia:Tag Clouds, simply a collection of tags displayed together with different font sizes determined by the frequency of use.

Advantages and Disadvantages of using a Tagging system to classify human relationships in the psyc network:


  • Freedom to classify any relationship - limited only by imagination
  • Simple system with simple implementation
  • Ease of use - simply type one or more keywords to describe each relationship
  • People tend to enjoy the free-form tagging approach once it catches on
  • Could be combined with other tag-based systems to further integrate different datasets in a user-friendly way.
  • Search by tag - simply enter any keyword to search for relationships of that type.


  • Users will choose a large variety of tags which will lead to an unorganized collection of relationship meta-data.
  • There can be different tags can have the same meaning which can make it harder to search for a specific meaning (as apposed to a specific word)
  • The free-form nature of tagging can lead to confusion when users don't know what they are supposed to enter as a tag. Explanations and examples are usually needed.
  • There are many different methods for delimiting tags and it can be difficult to remember which delimiter to use. (see Tag Syntax)
    • For example, uses a space, not allowing phrases to be used as tags.
    • Some systems use space delimited format and require quotes around phrases
    • Some other systems use commas to delimit tags, allowing phrases to be entered.
    • If the user mistakenly enters their tags using the wrong delimiter then they could lessen the usefullness of that data.

See also:

2 Proposed Implementation

Allow something like xfn attributes to be applied to your list of contacts on the server. For example:

 /classify lynx friend
 /classify dlux friend met

PSYC clients could also implement tagging of contact data. The tags, being stored on the client side, would not add to the complexity of the psyc server implementation. Users could then have the advantages of both systems and the implementation would remain fairly simple.

The relationship "tags" could be used in a variety of ways.

  • The tags that I assign to people could be used by my client application to automatically classify notices, determining how I want those notices to be displayed.
  • Friendcasting could be done through the server-side classification system. I could choose to send a friendcast to any of the "groups" that I have assigned to my contacts which would allow the psyc server to multicast in a smart way without too much complication.
    • That means, classification would be mapped to channels..