This talk to tries and answer the question Drew McLellan posed a year ago in his presentation Can Your Website be Your API? I used some of my experience building ufXtract and parsing social networks information to see if it is possible in the real world.
4. Portable social networks
The current topics which are being explored as part of
defining the portable social networks solutions
• Finding interlinked personal data / social graph
• Pagination of data
• Design patterns
• Reciprocal relationship validation
• Defining the representative profile
• Authorisation
• Data granulation
5. rel=“me” and rel=“friend”
Many of the web 2 social networking sites are now
using these simple attributes. Twitter, Flickr, Last FM
etc
More importantly we are now seeing the first
services that provide social graph data
• Googles social graph API
• Plaxo social graph demo
• UfXtract portable social network API
10. Reciprocal relationship validation
Only having the right people in my friends list.
1. You start your parser from a controlled source
2. You trust pages/sites with reciprocal rel=“me” links
3. Where possible restrict parser using Url fragments
so that user generated content does not inject
unwanted relationship links. (Not in spec)
In the end let the user decide
11. Representative profile
Choosing the best profile from a collection.
• rel=quot;mequot; on class=quot;urlquot;
• url=source
• Do steps 1 and 2 based on domain
• The first one
In the end let the user decide
12. Pagination of data and rel=“next”
The use of rel=“next” is starting to be used mainly to
move parsers through friends list pages.
rel=“me”
Link or page profile/friends list data
rel=“next”
Used to page non profile/friends list
rel=“next me”
This combination can cause issues in mixed
content pages
14. Using Url fragment identification
The microformats parser should all support Url
fragment identification. So you can mark-up groups
of information and provide pagination in context of a
page fragment.
http://twitter.com/glennjones/#proflies
http://twitter.com/glennjones/#posts
The spec says that Rel=“me” should NOT support Url
fragments !!!
15. We have not got patterns for
Url design
There are no standards/conventions for designing
common querystring patterns, REST or not
http://twitter.com/t/friends/2
http://twitter.com/t/friends?page=2
http://twitter.com/t/friends/page=2&pagesize=10
Without embedded linkage within the web pages
our libraries have to be domain specific
16. Design patterns – hcard-xfn
The growing convention of the use of rel=“me” and
rel=“next” is starting to form architectural design
patterns. We also have mircoformat hcard-xfn
pattern for additional data fidelity around
relationships.
<li class=quot;vcardquot;> <a class=quot;fn n urlquot; rel=quot;friend metquot;
href=quot;../adactioquot;> <span class=quot;given-namequot;>Jeremy</span>
<span class=quot;family-namequot;>Keith</span>
</a> </li>
17. People vs machines
• The lister/detail model means a lot of loads
• The level of data needs differ
• Web pages can contain multiple groups of data
People Html Machines
18.
19. Data portability
Parsing POSH patterns
and extending mircoformats
20. POSH
For the acronym, see POSH. For the British singer
nicknamed quot;Posh Spicequot;, see Victoria Beckham
Plain Old Semantic HTML
Patterns Of Semantic HTML
23. oAuth and privacy
We are currently only parsing public data
from open web pages.
We need some sort of access control which allows us
to parse pages behind logons.
24. Why bother
This idea is very democratic in terms of
different software access
Clients Spiders
Html with
embedded data
Machine
Libraries