WRFS Concept Demo - My Images

Note: This only works in FF right now, I'm too lazy to fix the XSL stuff for IE until I get some other mechanics right

This is in no way set in stone. All steps and techniques container this document are conceptual in nature and have been setup to show a function, and that function only --- runtime data discovery and aggregation.

So my pal Paul Jones wants to pull all of his images into floe.tv's editor to mix them into a slideshow, and he really doesnt feel like manually adding each api or remembering where he last uploaded a photo (myspace? flickr? facebook?) He just wants to make a slideshow and share it --- because thats the core of the user experience

In this demo we'll see

  1. A conceptual Data Portability Services Catalog (wNode) being queried for a type of Data Container (images)
  2. Then we take those image data container uris, and query each one for their WADL - this gives us the 'vocabulary' on how to talk to that unique api
  3. The next stage has us pulling the xsl transformation file from the server so that we know how to translate the data into a common ontology format
  4. Then we actually pull the required data, and run the xsl transform into (for the sake of this example, a non-lossy rdf dialect).
  5. Site A and B now have their data in our local cache as site neutral RDF data. We merge these recordsets into a single recordset for delivery.
  6. Now we take into consideration that to be a turn key based system, we'd like to give the user the option to choose a desitnation render ontology or microformat, or provide their own xsl url so that we can render it for them (note: obviously allowing them to get at the intermediary RDF/xml is an option as well, but we're just trying to design for a simple solution that gives a very strong default end to end solution

Stage 1: Identity Discovery


Step 1. Query the Services Catalog Index (wNode)

Stage 2: Data Container Negotiation



Image Site A - Legacy System, Minimal Codebase Impact

Notice that image site A is taking default locations for both the WADL and the XSL files. This means that the system will look in a specific location relative to the root directory for both the wrfs_wadl.xml file and the wrfs_transform.xsl file.

This type of site would be an example of a site that has a legacy api, but active supports data portability initiatives; It is actively updating the user's Services Catalog on the user's behalf, and it also exposes a WADL file to describe to third parties how to talk to its legacy api. This site is continuing to do business as it always has, and supporting data portability and wrfs has minimally impacted their codebase. All they had to add was the Service Catalog update method, and 2 files in their root directory: the wadl file (wrfs_wadl.xml) and the xsl file (wrfs_transform.xsl) so that their data format did NOT have to be changed (nor their legacy api), and all they had to provide was a xsl document to translate their xml dialect to the common ontology for data portability.

WADLXSL TransformData Returned
http://cowbell.floe.tv/ImageSiteA/wrfs_wadl.xmlhttp://cowbell.floe.tv/ImageSiteA/wrfs_transform.xsl

Render the raw data into a neutral format for merge/aggregation

Now Lets do the other Image Site

WADLXSL TransformData Returned

Now Render the raw data (from site B) into a neutral format for merge/aggregation

Stage 3: Data Merge



Two Sets of Data Enter; One Set of Data Leaves!

Ok, now that we've used the site supplied translation XSL document that tells how to render their unique xml format into a application neutral common intermediate ontology, we can merge the data into a single store.

Stage 4: Data Render


Paul's Unified Image Stream

At this point we have our desired data in a single format non-lossy neutral data ontology for images. What we want to do now is simply show some render options for a final application-layer deliverable to demonstrate just how easy it would be to use a system like this, end to end.

Redux: Comments and thoughts


What did we do here?

What did we NOT do here? (but would normally)

How do we get better?

questions? comments? wanna throw stones? - jpatterson [ at ] floe.tv