THE MASHED UP PLAYLIST part IIDavid Peterson   @davidseth   #w3chttp://www.flickr.com/photos/soyignatius/
David Peterson@davidseth
ChallengeCreate a snapshot of an artist
Problem    <xml>	<track>		<title>Purple Rain</title>		<artistName>Prince</artistName>	</track></xml>
Into
It’s all about story telling
Shared UnderstandingCan’t tell a story if the other person doesn’t get what we meanOr even speak the same languageImagine explain what a kiwi wasor what a sheep was
The story matters... but ...You never really have all the information  you need, whether big or small
You Just don’t Always KnowSomeone else knows more than youHow to find it?
One Exception
Semantic WebCore idea you never really know the entire pictureThis is a good thingFreedom
Open WorldClosed Worldhttp://www.flickr.com/photos/almasryalyoum_e/
Finding a SolutionWhich APIs to useWhich APIs can we useHow can we combine data from multiple sourcesHow can we automate it
The Curse of too muchThere are over 50 APIs listed on programmableweb.comToo many to look intoEach has its own API methods and return data formats	JSON, XML, RSS, RDF !!!
Take your Pick APIs everywhereBBC MusicDiscogsLast.fmMusicBrainzYahoo MusicFlickrYoutubeThe Hype Machine
Finding the keyOne common feature was the usage of a MusicBrainz IDLast.fmDiscogsFreebaseWikipedia/DbpediaBBC
Eureka!Great, now all I had to do was use the MusicBrainz API to look up the ID and I was done. Easy...:(  The search API sucked. It returned too many fuzzy resultscrap
Back to the futureThis is where the Semantic Web enters the pictureAll that stuff about story tellingShared understandingURIs (web links)
SPARQLThink of it as Google with a WHERE clause
SELECT ?artist WHERE {?artist foaf:name"Prince"@en .?artist a <http://dbpedia.org/ontology/MusicalArtist>.}
SELECT ?artist ?bio ?url?album WHERE {?artist foaf:name"Prince"@en .?artist a <http://dbpedia.org/ontology/MusicalArtist> .?artist dbpedia2:abstract ?bio .?artist foaf:page?url.  OPTIONAL {?album <http://dbpedia.org/ontology/artist> ?artist .?album rdfs:label"Purple Rain"@en .  }}LIMIT 1
Pinpoint resultsThis returns ONE result“exactly” what we are looking for (or nothing!)
{170d193a-845c-479f-980e-bef15710653e}http://www.flickr.com/photos/riseofphoenix/
{070d193a-845c-479f-980e-bef15710653e}http://www.flickr.com/photos/angeldew/
Raw DataNot too pretty to look atBut computers LOVE this stuff
So, what do we getDisambiguationMusicBrainz IDDiscographyRelated ArtistsOfficial homepageBioCredit card details (in Semantic Web 2.0)
The Rosetta StoneMusicBrainz ID is our key to the wild web of APIsWikipedia URL is the key to Semantic WebOne happy familyhttp://www.flickr.com/photos/vportals/
[insert LOD graph]
Take a look[browser]
Hindsight is 20/20... or lessons learned
Drupal SucksDrupal performance, what performance?Out of the box it’s been beaten with an ugly stick
Don’t use DrupalTo get the best performance out of Drupal, don’t use Drupal
PressflowKey patches and enhancementsReleases mirror official Drupal releasesBig players are using itDrupal.orgABCMusic labelsNewspapers
Start your EnginesMySQL base install is ... lackingMyISAM == slowUse PerconaXtraDB... or ... InnoDB
Reduce your footprintAPCPHP app is compiled & cached in memory
SearchDrupal’s built in search can be a dawgSolrMuch faster searchOffers facetingCan become a platform in its own right.
A Fresh Coat of PaintVarnishLast but certainly not leastUp to 10 million hits per hour
What’s Next?Project MercuryDrupal 7RDFaViews 3FOAF+SSLopen social networkingeverything under your control

Mashed Up Playlist