// Generates basic RDF schema for OpenSocial from Javascript API base // // do 'svn co http://opensocial-resources.googlecode.com/svn/spec/0.8/opensocial/' // then // java -cp /Users/danbri/working/rhino/js.jar org.mozilla.javascript.tools.shell.Main -f // opensocial/opensocial.js -f opensocial/name.js -f opensocial/person.js -f schemarama.js // // Emits RDFa HTML. To validate: http://validator.w3.org/ // and to convert to RDF/XML see http://www.w3.org/2007/08/pyRdfa/ // put "Options MultiViews" in Apache .htaccess to conneg the schema (at least in a basic way) // // Author: Dan Brickley function propdiv(p, c, ns) { // print(""); return("
"+ ""+ ""+p+"
\n"); } function classdiv(c, ns) { return("
"+ "

Class: "+c+"

"+ "

Properties:

"); } function do_class(c,ns) { print(classdiv(c,ns)); var myClass; try { myClass = eval ("opensocial."+c+".Field" ); } catch(err) { print("Caught an exception. "+err); } if (!myClass) { print("Can't find class: "+c); } else { for (prop in myClass) { print(propdiv( myClass[prop],c,nsuri)); } print("
"); } } /* ---------------------------------------------------------------------------------------------- */ // Generate an RDFa HTML doc: print ('\ '); nsuri = 'http://danbri.org/2008/opensource/_latest#' print("Experimental ontology from OpenSocial javascript"); print(""); print("
"); classes=['Person','Name','Email','Phone','Url','Organization','Address','Message','Activity','MediaItem','Activity']; for (c in classes) { do_class(classes[c],nsuri);} print("
\n\n"); /* Enums: opensocial.Enum.Smoker, opensocial.Enum.Drinker, opensocial.Enum.Gender, opensocial.Enum.LookingFor, opensocial.Enum.Presence irc help: See http://chatlogs.planetrdf.com/swig/2008-06-26#T11-53-16 similar rdfs: http://sw.joanneum.at/scovo/schema.html issues: xmlliteral */