xfn-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(Scholarly Additions)
(moved identity consolidation to its own page, some follow-ups and clarifications, inverse of fan/follower brainstorming and list, advisor/advisee)
Line 1: Line 1:
<h1> XFN Brainstorming </h1>
<h1> XFN Brainstorming </h1>
{{TOC-right}}
This page is for brainstorming about various uses and details of [[XFN]], as well as collecting input for potential extensions.
This page is for brainstorming about various uses and details of [[XFN]], as well as collecting input for potential extensions.
__TOC__


== Required Reading ==
== Required Reading ==
Before participating in any XFN brainstorming please read and understand the following:
Before participating in any XFN brainstorming please read and understand the following:
* [http://gmpg.org/xfn/intro XFN intro]
* [http://gmpg.org/xfn/intro XFN intro]
Line 11: Line 9:
* [[xfn-faq|XFN FAQ]]  
* [[xfn-faq|XFN FAQ]]  
* [http://gmpg.org/xfn/and XFN and other services]
* [http://gmpg.org/xfn/and XFN and other services]
Note that all existing XFN values were based on research that showed real world sites that indicated such relationships explicitly via text and hyperlinks to other sites.  Thus any new semantics or values will be more seriously considered if URLs demonstrating existing text labeling and hyperlinking behavior are provided.


== Contributors ==
== Contributors ==
Line 16: Line 16:
* [[User:CiaranMc |CiaranMc ]]
* [[User:CiaranMc |CiaranMc ]]
* [http://factoryjoe.com/ Chris Messina]
* [http://factoryjoe.com/ Chris Messina]


== Identity Consolidation ==
== Identity Consolidation ==
See [[rel-me]] and [[identity-consolidation]]. <span id="Frames">&nbsp;</span>


First, read http://gmpg.org/xfn/and/
== Extending family relationships ==
 
Capturing some Q&A and thoughts here before I clean it up for the FAQ and/or a separate [[identity-consolidation]] page (or perhaps a [[rel-me]] page that discusses identity consolidation).
 
2007-08-17 Q's are paraphrased from [[User:JosephSmarr]] of Plaxo, and A's are written/edited by [[User:Tantek]].
 
'''Q:''' do the rel="me" links need to be in both directions to verify the link?  seems like they do, since otherwise someone could find anything that links to them and "claim" it just by linking to back to it with rel="me".
 
A: Yes, in general rel="me" links need to be in both directions for exactly that reason.
 
'''Q:''' But some sites that let you list your homepage on the profile don't use rel="me", so do we have to just get them all to use it before bi-directional claims will work right?
 
A: Not necessarily.  Of course we prefer the [[advocacy]] path to get them to implement rel="me", but for old sites, as documented on http://gmpg.org/xfn/and/ we can check that specific fields on the the profile page are filled in accordingly, with site specific heurstics.
 
'''Q:''' So either they need to use rel="me" or we can scrape known sites and trust the link anyway?
 
A: rel="me" is the standard that scales (so new players "just work") and for "old players" we write a white-list with compat rules to make it work.
 
'''Q:''' So i guess the idea is i can't insert a rel="me" link into any user-generated content, like comments on someone else's blog?
 
A: Right, and [[rel-nofollow]] (and [[vote-links]] "vote-against" or "vote-abstain" for that matter) should nullify the rel="me".
 
'''Q:''' What about Yelp which uses rel="nofollow" to your home page link?
 
A: Well the way around it is to *only* look for that specific "home page" link, not any link on the page, that's the key for old players, with the assumption being that *only* the user/owner of that profile could change that URL.  In addition Yelp is actually violating the [[rel-nofollow]] spec because that's not a third party link, that's a first party link, by the owner of that user profile, and therefore it MUST NOT have rel="nofollow" on it.  This bug should be reported to them.
 
'''Q:''' Is two-way links plus transitive closure sufficient?  Because many sites may only link to your homepage which then links out to many other sites and you'd like to be able to "reel those in"?
 
A: 2-way links plus transitive closure is a good start. But there are common cases where you'll have 3-step triangle circuits you need to detect. For instance, say my Plaxo profile page is joseph.myplaxo.com and I want to add my twitter page twitter.com/jsmarr. My twitter page only links to my home page josephsmarr.com, but that page links back to twitter and also to my plaxo profile. So you can prove I'm authoritative for twitter.com/jsmarr even though it doesn't have a two-way link with joseph.myplaxo.com. There may be even more complex cases, but I think the 3-way is common because many sites only let you have one URL link, which will usually be to your home page, so unless you start by telling a site your home page, you will have to crawl from a "spoke" into the "hub" and then back out again. So in general, you'll need to keep all the rel="me" links on all the pages you crawl, then assemble the graph, then detect all the circuits, and then all the nodes in circuits that are connected to the root page you're starting with are verified. I think. :)
 
'''Q:''' How should I crawl rel="me" links then?
 
A: Do each 2-way one at a time.  e.g. go to a rel="me" destination, look for rel="me" link back to the same page in that source, and *then* enqueue all the remaining rel="me" links for crawling. Enqueue rel="me" relations as you crawl, e.g. you crawl a, you don't enqueue just the destinations of links  b and c, but rather, enqueue the relations a-me-&gt;b, a-me-&gt;c.  And then you crawl the destinations in the queue, and for confirmed rel="me" 2ways, just move those to another list, e.g. when you see b-me-&gt;a you just remove a-me-&gt;b from the queue and put a&lt;-&gt;b into the "me" file, and when you see b-me-&gt;d you just add it to the queue.  Repeat until you have crawled all the destinations in the queue and you're done.
 
'''Q:''' There are often multiple equivalent pages, like http://flickr.com/photos/jsmarr , http://www.flickr.com/photos/jsmarr , http://flickr.com/people/jsmarr , http://flickr.com/people/jsmarr/profile .  Do we need to write equivalence rules or just make people use the same form?
 
A: Such pages should a) rel="me" link to both "www." and non "www." versions themselves either via the links already on the page (as they often already have), OR add equivalent &lt;link rel="me" href="..." /&gt; tags to the &lt;head&gt; of the document.
 
'''Q:''' So when crawling a page for rel="me" links, should I look for BOTH &lt;a rel="me" links in the body AND &lt;link rel="me" links in the head?
 
A: Yes, they're equivalent, so look for both.
 
Related: [[hcard-supporting-user-profiles]], [[hcard-xfn-supporting-friends-lists]].
 
=== Frames ===
 
Strangely the new [http://www.google.com/s2/sharing/stuff Google Share] site supports [[hcard|hCard]] but in a frame. In order to parse this page, crawlers need some hook to identify the source for the hcard. It is reasonable to consider using <code><frame src="http://example.com/framesrc.html" rel="me" /></code> (as well as the same for <code><iframe></code> and <code><object></code>) in order to accommodate this unconventional source of profile data. Likewise linking back to the page containing the frame using rel-me would be necessary to produce a valid claim.
 
Unfortunatly none of <code><frame></code>, <code><iframe></code>, <code><object></code> have a <code>rel</code> attribute in HTML4, and thus we must make use of an alternate solution.
 
HTML4 does have a <code>[http://www.w3.org/TR/html4/present/frames.html#h-16.4.1 <noframes>]</code> element which web authors often use to hyperlink to the frame contents so they are accessible in browsers that don't support frames (like most of those on mobile phones for example).
 
That hyperlink inside the <code><noframes></code> element should have <code>rel="me"</code> on it in order to consolidate the framed portion of the profile with the profile page itself.  Similarly, on the framed portion, there should be a <code><noframes></code> element that links back to the parent frame/document with <code>rel="me"</code> in order to establish the bidirectional identity consolidation relationship.
 
For <code><object></code> embeds, one can simply put an inline hyperlink inside the <code><object>...</object></code> contents as fallback content for browsers that don't render embedded objects, thus providing both a visible method to browse to the embed, and a hyperlink on which to place the <code>rel="me"</code>.
 


== Extending family relationships ==
=== grandparent ===
<cite>[http://www.gmpg.org/xfn/background The XFN: Background page]</cite> says:
<cite>[http://www.gmpg.org/xfn/background The XFN: Background page]</cite> says:
<blockquote>
<blockquote>
Line 86: Line 31:


* I think it's important in some situations to capture the age difference in a relationship in a way that @rel="kin" doesn't seem to.
* I think it's important in some situations to capture the age difference in a relationship in a way that @rel="kin" doesn't seem to.
** ''follow-up'': XFN is the wrong place to represent age information (even relative). Instead, mark up each person's page with an hCard for them that has a <code>bday</code> property, with even just the year if you want - that could then be used to determine an approximate age difference, which is presumably all that is desired.
** ''follow-up'': XFN is the wrong place to represent age information (even relative). Instead, mark up each person's page with an hCard for them that has a <code>bday</code> property, with even just the year if you want - that could then be used to determine an approximate age difference, which is presumably all that is desired.  Thus rel="kin" can be considered to be sufficient for now.
* Even if they don't maintain it themselves (or are deceased) there might be a URL that does a good job of representing a person.
 
To date, no real world examples have been provided, thus, per the microformats [[process]], we should not complicate a format for a theoretical need.
 
=== ancestor descendant ===
Even if they don't maintain it themselves (or are deceased) there might be a URL that does a good job of representing a person.


Consider a site about one's family tree.  It might have something like:
Consider a site about one's family tree.  It might have something like:
Line 100: Line 49:


See also: [[genealogy-brainstorming#Relationships]]
See also: [[genealogy-brainstorming#Relationships]]
* follow-up: rel="kin" can be considered to be sufficient for now.
To date, no real world examples have been provided, thus, per the microformats [[process]], we should not complicate a format for a theoretical need.


== Simple Groups and Members ==
== Simple Groups and Members ==
A very simple extension to XFN could enable decentralized group membership. E.g.
A very simple extension to XFN could enable decentralized group membership. E.g.
* rel="group".  A person could link from their page to the page of a group that they belong to (e.g. their company, school, DJ collective etc.) and thus assert that they belong to that group.
* rel="group".  A person could link from their page to the page of a group that they belong to (e.g. their company, school, DJ collective etc.) and thus assert that they belong to that group.
Line 109: Line 61:
The relationships could be required bi-directional in order to confirm group membership, that is, both the individual must link to the group with rel="group" and the group must link to the individiual with rel="member" in order for the membership to be considered "true".
The relationships could be required bi-directional in order to confirm group membership, that is, both the individual must link to the group with rel="group" and the group must link to the individiual with rel="member" in order for the membership to be considered "true".


See also [[group-brainstorming]].
See also [[group-brainstorming]] for more on this including documentation of examples.


-Tantek
== fans and followers ==
 
It's becoming a common aspect of many social networks (see list below) that you have unreciprocated and non-friend-based connections to people. These connections are particularly noteworthy where you don't really ever expect to have your connections reciprocated, but instead are similar to the idea of "rel-muse".  
== Fans and followers ==
 
It's becoming a common aspect of many social networks that you have unreciprocated and non-friend-based connections to people. These connections are particularly noteworthy where you don't really ever expect to have your connections reciprocated, but instead are similar to the idea of "rel-muse".  


I would propose adding "rel-fan" or "rel-follower" to the collection of XFN values -- as being something like a "contact" or a "muse" but having a different purpose within the realm of social networking. Again, given that this is showing up in social networks like Pownce (fan), Twitter (follower), and that these words are becoming common, I wonder if it wouldn't make sense to even ditch rel-muse in favor of rel-follower and rel-fan (the former implying some kind of positive social stalking and the latter a kind of amiable appreciation for someone's work).  
I would propose adding "rel-fan" or "rel-follower" to the collection of XFN values -- as being something like a "contact" or a "muse" but having a different purpose within the realm of social networking. Again, given that this is showing up in social networks like Pownce (fan), Twitter (follower), and that these words are becoming common, I wonder if it wouldn't make sense to even ditch rel-muse in favor of rel-follower and rel-fan (the former implying some kind of positive social stalking and the latter a kind of amiable appreciation for someone's work).  
Line 132: Line 81:


For blogrolls at least, what about rel-read / rel-reader? -- [[User:SteveIvy|Steve Ivy]]
For blogrolls at least, what about rel-read / rel-reader? -- [[User:SteveIvy|Steve Ivy]]
Steve, "read" is still a verb (and [[rel-values]] need to be nouns), and "reader" would still imply that they are a "reader" of yours, rather than vice versa.


== Favorites ==
Brainstorm list of possible terms (for an inverse of fan/follower):
* source
* influence
* influencer
** +1 [[User:Tantek|Tantek]] - I like this one the best so far, as it seems to represent the implied semantics the best.  If I follow someone, then they are an "influencer" to me.
* leader
* star
* hero
* favorite
 
== favorites ==
Another possibility is perhaps 'favorite', that is, people do link to favorite bands for example, which is similar to saying they are a fan of the band. Thus you could add <code>rel="favorite"</code> to such hyperlinks to indicate that that music band over there is a favorite of yours. [[User:Tantek|Tantek]] 17:57, 2 Oct 2007 (PDT) based on a question raised by DanBri.
Another possibility is perhaps 'favorite', that is, people do link to favorite bands for example, which is similar to saying they are a fan of the band. Thus you could add <code>rel="favorite"</code> to such hyperlinks to indicate that that music band over there is a favorite of yours. [[User:Tantek|Tantek]] 17:57, 2 Oct 2007 (PDT) based on a question raised by DanBri.


== Mentors and Mentees ==
== mentors and mentees ==
Though seemingly rare, I personally have found use for <code>rel="mentor"</code> and inverse <code>rel="mentee"</code> (see Wiktionary definitions: [http://en.wiktionary.org/wiki/mentor mentor], [http://en.wiktionary.org/wiki/mentee mentee]).  I don't have sufficient evidence to even consider proposing adding these to XFN, but I wanted to capture them here as a brainstorm while I look into using them personally and research examples in the wild.
Though seemingly rare, I personally have found use for <code>rel="mentor"</code> and inverse <code>rel="mentee"</code> (see Wiktionary definitions: [http://en.wiktionary.org/wiki/mentor mentor], [http://en.wiktionary.org/wiki/mentee mentee]).  I don't have sufficient evidence to even consider proposing adding these to XFN, but I wanted to capture them here as a brainstorm while I look into using them personally and research examples in the wild.  I may just use them as [[POSH]] myself.


[[User:Tantek|Tantek]] 02:34, 8 Jul 2007 (PDT)
[[User:Tantek|Tantek]] 02:34, 8 Jul 2007 (PDT)
== advisor and advisee ==
Similarly, I have seen folks reference someone as an advisor, or note that they are advising someone.  We could consider <code>rel="advisor"</code> and <code>rel="advisee"</code> to capture and represent these semantics.
Note that the relationship of advising a company or organization would be much better captured by noting "advisor" as a "role" property value in an hCard listing that organization, e.g.:
<pre><nowiki>
<span class="vcard">
<span class="fn">Tantek Çelik</span>
<span class="org">Citizen Agency</span>
<span class="role">advisor</span>
</span>
</nowiki></pre>
Again, I think [[POSH]] usage of these terms would make a good experiment to see if there is sufficient use to formalize them.
[[User:Tantek|Tantek]] 07:45, 29 Dec 2007 (PST)


== Scholarly ==
== Scholarly ==
Line 150: Line 126:
* [[hcard|hCard]]
* [[hcard|hCard]]
* [[hcard-brainstorming|hCard brainstorming]]
* [[hcard-brainstorming|hCard brainstorming]]
* [[social-network-portability]]
* [[hcard-xfn-supporting-friends-lists]]

Revision as of 15:45, 29 December 2007

XFN Brainstorming

This page is for brainstorming about various uses and details of XFN, as well as collecting input for potential extensions.

Required Reading

Before participating in any XFN brainstorming please read and understand the following:

Note that all existing XFN values were based on research that showed real world sites that indicated such relationships explicitly via text and hyperlinks to other sites. Thus any new semantics or values will be more seriously considered if URLs demonstrating existing text labeling and hyperlinking behavior are provided.

Contributors

Identity Consolidation

See rel-me and identity-consolidation.  

Extending family relationships

grandparent

The XFN: Background page says:

We considered adding "grandparent," but in the end dropped the term because it seemed unlikely to be used in the near future. It may appear in future versions of XFN.

Presumably the assumption is that a grandparent won't have a website, but:

  • I think it's important in some situations to capture the age difference in a relationship in a way that @rel="kin" doesn't seem to.
    • follow-up: XFN is the wrong place to represent age information (even relative). Instead, mark up each person's page with an hCard for them that has a bday property, with even just the year if you want - that could then be used to determine an approximate age difference, which is presumably all that is desired. Thus rel="kin" can be considered to be sufficient for now.

To date, no real world examples have been provided, thus, per the microformats process, we should not complicate a format for a theoretical need.

ancestor descendant

Even if they don't maintain it themselves (or are deceased) there might be a URL that does a good job of representing a person.

Consider a site about one's family tree. It might have something like:

I can trace my family back to 
<a href="http://en.wikipedia.org/wiki/William_I_of_England">
 William the conqueror.
</a>

In these cases it would be useful to have @rel="ancestor", and perhaps a corresponding @rel="descendant". -CiaranMc

See also: genealogy-brainstorming#Relationships

  • follow-up: rel="kin" can be considered to be sufficient for now.

To date, no real world examples have been provided, thus, per the microformats process, we should not complicate a format for a theoretical need.

Simple Groups and Members

A very simple extension to XFN could enable decentralized group membership. E.g.

  • rel="group". A person could link from their page to the page of a group that they belong to (e.g. their company, school, DJ collective etc.) and thus assert that they belong to that group.
  • rel="member". The web pages of groups could link to who they consider members and thus assert that person's membership.

The relationships could be required bi-directional in order to confirm group membership, that is, both the individual must link to the group with rel="group" and the group must link to the individiual with rel="member" in order for the membership to be considered "true".

See also group-brainstorming for more on this including documentation of examples.

fans and followers

It's becoming a common aspect of many social networks (see list below) that you have unreciprocated and non-friend-based connections to people. These connections are particularly noteworthy where you don't really ever expect to have your connections reciprocated, but instead are similar to the idea of "rel-muse".

I would propose adding "rel-fan" or "rel-follower" to the collection of XFN values -- as being something like a "contact" or a "muse" but having a different purpose within the realm of social networking. Again, given that this is showing up in social networks like Pownce (fan), Twitter (follower), and that these words are becoming common, I wonder if it wouldn't make sense to even ditch rel-muse in favor of rel-follower and rel-fan (the former implying some kind of positive social stalking and the latter a kind of amiable appreciation for someone's work).

This fan/follower designation seems sorely lacking from Flickr where not everyone falls into either contact, friend or family... but in many cases, you just like someone's photos and want to be able to check in on them every now and again, similar to the way that people "follow" or "subscribe" to blog feeds... Someone who reads my blog feed could be considered a "follower" -- as in, "someone who follows my blog".

- Chris Messina

Examples (sites that have the semantic / implied-schema of "fan" or "follower")

Tantek 02:34, 8 Jul 2007 (PDT)

Chris, rel-fan or re-follower would work for you to point to people who follow you, but the converse case is probably more useful, saying who you follow (eg blogroll case too). We need a good noun for that relationship that describes how you view them, that is less coloured than 'muse' currently is by being classified as romantic. rel-source or rel-influence maybe? Very hard to come up with a good noun. Kevin Marks 12:57, 17 Aug 2007 (PDT)

For blogrolls at least, what about rel-read / rel-reader? -- Steve Ivy Steve, "read" is still a verb (and rel-values need to be nouns), and "reader" would still imply that they are a "reader" of yours, rather than vice versa.

Brainstorm list of possible terms (for an inverse of fan/follower):

  • source
  • influence
  • influencer
    • +1 Tantek - I like this one the best so far, as it seems to represent the implied semantics the best. If I follow someone, then they are an "influencer" to me.
  • leader
  • star
  • hero
  • favorite

favorites

Another possibility is perhaps 'favorite', that is, people do link to favorite bands for example, which is similar to saying they are a fan of the band. Thus you could add rel="favorite" to such hyperlinks to indicate that that music band over there is a favorite of yours. Tantek 17:57, 2 Oct 2007 (PDT) based on a question raised by DanBri.

mentors and mentees

Though seemingly rare, I personally have found use for rel="mentor" and inverse rel="mentee" (see Wiktionary definitions: mentor, mentee). I don't have sufficient evidence to even consider proposing adding these to XFN, but I wanted to capture them here as a brainstorm while I look into using them personally and research examples in the wild. I may just use them as POSH myself.

Tantek 02:34, 8 Jul 2007 (PDT)

advisor and advisee

Similarly, I have seen folks reference someone as an advisor, or note that they are advising someone. We could consider rel="advisor" and rel="advisee" to capture and represent these semantics.

Note that the relationship of advising a company or organization would be much better captured by noting "advisor" as a "role" property value in an hCard listing that organization, e.g.:

<span class="vcard">
 <span class="fn">Tantek Çelik</span>
 <span class="org">Citizen Agency</span>
 <span class="role">advisor</span>
</span>

Again, I think POSH usage of these terms would make a good experiment to see if there is sufficient use to formalize them.

Tantek 07:45, 29 Dec 2007 (PST)

Scholarly

A possibility that might be added is scholarly definitions. For example rel="mentor"[Student's Teacher] (similar to above), rel="student"[Teacher's Student] (inverse of mentor), rel="classmate"[Student's classmate]. Possible uses in Social Networking sites that involve adding your school, grading your teachers, etc. Teacher <-> Teacher would be specified in with rel="co-worker" or rel="colleague".

Navarr 05:56, 13 Dec 2007 (CST)

See Also