Added: 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/json2.js
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/json2.js?rev=1089668&view=auto
==============================================================================
    (empty)

Added: 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/jsonToTurtle.js
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/jsonToTurtle.js?rev=1089668&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/jsonToTurtle.js
 (added)
+++ 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/jsonToTurtle.js
 Wed Apr  6 23:19:09 2011
@@ -0,0 +1,303 @@
+/**
+ * Constructor: ex) var json = new JsonTurtle;
+ */
+function JsonTurtle(){
+       this.rdfprop = 0;
+       return this;
+}
+
+/**
+ * Get JSON data from a field, convert it to Turtle, and put into another field
+ * @param      jfld : id of textarea that stores JSON data
+ * @param      tfld : id of textarea to put Turtle serialization
+ */
+JsonTurtle.prototype.j2t = function(jfld, tfld){
+       var j, t;
+       j = "{'safeval':" + document.getElementById(jfld).value + "}";
+       try{
+               eval('var d = ' + j);
+               document.getElementById(tfld).value = 
this.parsej(d.safeval,"\n",'');
+       }catch(e){
+               alert("Error. Possibly dangerous code:\n" + e);
+       }
+}
+
+/**
+ * Converts a (JSON) object to RDF/Turtle triples.
+ * @param      obj : data object
+ * @param      sep : triple separator (usually \n)
+ * @param      pre : indent string. also indicates nest level.
+ * @param      called_by : indicates whether parent 'element' is a Class.
+ * @return     RDF/Turtle triples.
+ */
+JsonTurtle.prototype.parsej = function (obj, sep, pre, called_by){
+       var res = ''; //result
+       var arg = {
+               'pfdcl' : '', // prefix decl
+               'caller': called_by,
+               's' : '', // subject of triple
+               'ctype' : '' // classtype
+       }; 
+       var s, p, o; // triple s,p,o
+       var key; // JSON object key
+       if(pre == '')
+               this.rdfprop = 0; // capture whether rdf: property is used
+
+       switch(typeof(obj)){
+       case "string":
+               return this.set_object(obj);
+       case "boolean":
+               return '"' + obj + '"';
+       case "number":
+               return obj;
+       case "undefined":
+               return '""';
+       }
+       // without abov switch, {"p":["abc"]} will be 
+       // [:p [rdf:_1 "a"; rdf:_2 "b"; rdf:_3 "c"]] .
+       // so, case object:
+       for(key in obj){
+               //-- skip RDF syntax vocab.
+               switch(key){
+               case 'rdf:resource':
+                       return '<' + obj[key] + '>';
+               case 'rdf:parseType':
+                       continue;
+               case 'rdf:RDF':
+                       return this.parsej(obj[key],sep,'',key);
+               case 'rdf:Description':
+                       return this.prepare_pfx(arg, sep) + 
this.parsej(obj[key],sep,'',key);
+               case '#text':
+                       return '"' + obj[key] + '"';
+               }
+               
+               //-- property name to QName
+               p = this.set_qname(key);
+
+               //-- set appropriate triple according to object type
+               switch(typeof(obj[key])){
+               case "object":
+                       res += this.proc_object(obj[key], p, pre, sep, arg);
+                       break;
+               case "string":
+                       o = this.set_object(obj[key]);
+                       res += this.set_po(key, p, o, pre, sep, arg);
+                       break;
+               case "number":
+               //case "boolean":
+                       res += pre + p + ' ' + obj[key] + ';' + sep;
+                       break;
+               default:
+                       res += pre + p + ' "' + obj[key] + '";' + sep;
+               }
+       }
+
+       //-- add bNode [] or collection (), or regard as continuing p-o seqence.
+       res = res ? res.slice(0,-2) : (p ? p : ":_undefined") + ' ""';
+       res = (arg.s && pre=='') ? arg.s + res :
+               (arg.ctype == 'Collection' ? 
+                       '(' + sep + res + sep + pre + ')' :
+                       ((arg.caller == 'C' || (pre == '' && arg.ctype)) ? sep 
+ res:
+                       '[' + sep + res + sep + pre + ']')
+               );
+       return pre ? res : 
+               this.prepare_pfx(arg, sep) + res + ' .';
+}
+
+
+/**
+ * processes value tyep 'object' for JSON data
+ * @param      val : JSON proprerty value (obj[key])
+ * @param      p : property QName
+ * @param      sep : triple separator (usually \n)
+ * @param      pre : indent string. also indicates nest level.
+ * @param      arg : object of pfdcl, caller, s, ctype, by reference (set val)
+ * @return     resulting triple
+ */
+JsonTurtle.prototype.proc_object = function(val, p, pre, sep, arg){
+       var res, reslist = '', triple, s, ep, pp;
+       var o = {'ctype' : ''};
+       if(val == null)
+               res = pre + p + ' "";' + sep;
+
+       // case Array: treat array as repeated property, not a container
+       else if(val instanceof Array){//val.constructor == Array
+               var i;
+               for(i=0; i<val.length; i++){
+                       pp = (p == 'rdf:li') ? 'rdf:_' + (i+1) : p;
+                       triple = this.proc_obj_cp(val[i], pp, pre, sep, ' ', 
arg.caller, o);
+                       reslist += o.ctype ? 
+                               pre + '[' + triple + '] ' + sep :
+                               triple;
+               }
+               // Loop here in order to have repeated property for array
+               // rather than RDF container model. e.g. for
+               // {p1: [ {p2: "v1"}, {p2: "v2"}]}
+               // not [:p1 [ rdf:_1 [:p2 "v1"]; rdf:_2 [:p2 "v2"]]] . (1)
+               // but [:p1 [:p2 "v1"]; p1 [:p2 "v2"]] . (2)
+               // bellow commented code generates (1)
+               /*triple = this.proc_obj_cp(val, p, pre, sep, ' ', arg.caller, 
o);
+               reslist = o.ctype ? 
+                       pre + '[' + triple + '] ' + sep :
+                       triple;*/
+
+               // o.ctype is set 'a :Classname' by proc_obj_cp
+               if(o.ctype){// repeated Class -> Collection
+                       if(pre == ''){
+                               arg.s = '[]';
+                               res = sep + ':has_a (' + sep + reslist + '); '
+                       }else{
+                               o.ctype = 'Collection';
+                               //res = '(' + sep + reslist + pre + ')  ';
+                               res = reslist;
+                       }
+               }else
+                       res = reslist;
+       
+       // case Hash object:
+       }else{
+               if(pre == ''){
+                       ep = '.';
+                       arg.caller = 'Root';
+               }else
+                       ep = ';';
+               res = this.proc_obj_cp(val, p, pre, sep, ep, arg.caller, o);
+               if(pre == '' && o.ctype) arg.caller = 'Root';
+       }
+       arg.ctype = o.ctype;
+       return res;
+}
+
+
+/**
+ * Processes object type data as class or property. If the property name 
+ * starts with a capital letter, regard it as a Class
+ * @param      obj : a data object
+ * @param      p : property whose value is obj
+ * @param      pre : indent string. also indicates nest level.
+ * @param      sep : triple separator (usually \n)
+ * @param      ep : end point of a triple in case a Class (usually '.')
+ * @param      caller : indicates whether parent 'element' is a Class.
+ * @param      o : object of ctype (to return value)
+ * @return     composed Turle
+ */
+JsonTurtle.prototype.proc_obj_cp = function(obj, p, pre, sep, ep, caller, o){
+       var res;
+       
+       if((p.split(':')[1]).match(/^[A-Z]/) && caller != 'C'){
+               // if local name starts with a capital, regard as Class
+               // and treat nested object as p/o of the same subject
+               o.ctype = ' a ' + p + ';';
+               res = pre + o.ctype + this.parsej(obj, "\n", '  ' + pre, 'C');
+               if(caller == 'Root') 
+                       // list of classes called by root will be each 
independent
+                       res = '[' + res + sep + ']' + ep + sep;
+               else
+                       res += ep + sep;
+               // (only top level can have '.' for class, i.e. parallel 
triples)
+       }else{
+               // else treat as bNode with predicateObjectList
+               res = pre + p + ' ' + this.parsej(obj, "\n", '  ' + pre) + ';' 
+ sep;
+       }
+       return res;
+}
+
+
+/**
+ * set appropriate QName for property
+ * @param      key : JSON proprerty name (key in obj)
+ * @return     QName
+ */
+JsonTurtle.prototype.set_qname = function(key){
+       var p;
+       if(key.indexOf(':') > -1)
+               // if contains ':' regard it as Qname -- maybe need clean up
+               p =  key;
+       else if(key.match(/^\d+$/)){
+               // Array has 0,1,2... as key --> RDF container member prop.
+               p =  'rdf:_' + (key*1+1);
+               this.rdfprop++;
+       }else
+               // treat as default namespaced name
+               p = ':' + key; 
+               
+       // clean up property name
+       p = p.replace(/[^-:\w\d\u00c0-\ueffff]/g,'_'); // pseudo namechar
+       p = p.replace(/:([-\d])/,':_'+RegExp.$1); // local name start char
+
+       return p;
+}
+
+
+/**
+ * set appropriate object for JSON data value
+ * @param      val : JSON proprerty value (obj[key])
+ * @return     object in Turtle triple
+ */
+JsonTurtle.prototype.set_object = function(val){
+       var o;
+       // if uri ref
+       if(val.match(/^<([-_\w\n\.~\?\&\/\@=;,#%:]+)>$/))
+               o = "<" + RegExp.$1 + ">";
+       //need this ? maybe should not ?
+       else if(val.match(/^http:([-_\w\n\.~\?\&\/\@=;,#%]+)$/))
+               o = "<http:" + RegExp.$1 + ">";
+       // or bNode
+       else if(val == "[]")
+               o = "[]";
+       // or QName
+       else if(val.match(/^\w*:\w+$/))
+               o = val;
+       // or literal
+       else{
+               o = val.replace(/\n/g,"\\n");
+               o = o.replace(/\"/g,"\\\"");
+               o = '"' + o + '"';
+       }
+
+       return o;
+}
+
+
+/**
+ * set property - object, or @prefix or subject, according to object value
+ * @param      key : JSON object key (key in obj)
+ * @param      p : property QName
+ * @param      o : object
+ * @param      pre : indent string. also indicates nest level.
+ * @param      sep : triple separator (usually \n)
+ * @param      arg : object of pfdcl, caller, s, ctype (set value for pfdcl, s)
+ * @return     resulting part of triple
+ */
+JsonTurtle.prototype.set_po = function(key, p, o, pre, sep, arg){
+       var res = '', pfx;
+       if(key.match(/^(\@prefix|xmlns)/)){  // ns prefix decl
+               pfx = key.split(':')[1];
+               if(pfx == undefined) pfx = '';
+               arg.pfdcl += "@prefix " + pfx + ": " + o + " ." + sep;
+       }else if(key.match(/^(\@|rdf:)about/))  // subject node
+               arg.s = o + sep;
+       else if(p == ':a') // a (rdf:type)
+               res = pre + 'a ' + o + ";" + sep;
+       else
+               res = pre + p + ' ' + o + ";" + sep;
+       
+       return res;
+}
+
+
+/**
+ * Prepares ns prefix declarations. If no @prefix, add an default ns.
+ * If model includes constructs from RDF ns and not ns ready, add one
+ * @param      arg : object of pfdcl, caller, s, ctype
+ * @param      sep : triple separator (usually \n)
+ * @return     prepared @prefix directives
+ */
+JsonTurtle.prototype.prepare_pfx = function(arg, sep){
+       var rdfns = '<http://www.w3.org/1999/02/22-rdf-syntax-ns#>';
+       if(arg.pfdcl == '') /*&& arg.caller != 'Root'*/
+               arg.pfdcl= "@prefix : <http://purl.org/net/ns/jsonrdf/> ." + 
sep;
+       if(this.rdfprop && arg.pfdcl.indexOf(rdfns) == -1)
+               arg.pfdcl += "@prefix rdf: " + rdfns + " ." + sep;
+       return arg.pfdcl;
+}

Added: 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/kres.js
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/kres.js?rev=1089668&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/kres.js
 (added)
+++ 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/kres.js
 Wed Apr  6 23:19:09 2011
@@ -0,0 +1,874 @@
+function showReengineer(dataSourceType){
+       var dataSourceDiv = document.getElementById("data-source-form");
+       if(dataSourceDiv != null){
+               if(dataSourceType == 1){
+                       dataSourceDiv.innerHTML = "<form id=\"kres\" 
action=\"/kres/reengineer/db/schema\" method=\"POST\" 
enctype=\"application/x-www-form-urlencoded\" " +
+                                       "accept=\"application/rdf+xml\"> " +
+                                       "Base URI for schema<br/><input 
type=\"text\" class=\"url\" name=\"output-graph\" value=\"\" /><br/> " +
+                                       "Physical DB Name<br/><input 
type=\"text\" class=\"url\" name=\"db\" value=\"\" /><br/> " +
+                                       "JDBC Driver<br/><input type=\"text\" 
class=\"url\" name=\"jdbc\" value=\"\" /><br/> " +
+                                       "Protocol<br/><input type=\"text\" 
class=\"url\" name=\"protocol\" value=\"\" /><br/> " +
+                                       "Host<br/><input type=\"text\" 
class=\"url\" name=\"host\" value=\"\" /><br/> " +
+                                       "Port<br/><input type=\"text\" 
class=\"url\" name=\"port\" value=\"\" /><br/> " +
+                                       "Username<br/><input type=\"text\" 
class=\"url\" name=\"username\" value=\"\" /><br/> " +
+                                       "Password<br/><input type=\"text\" 
class=\"url\" name=\"password\" value=\"\" /><br/> " +
+                                       "<br/><br/> " +
+                                       "<input type=\"submit\" 
class=\"submit\" value=\"RDB Reengineering\"/>" +
+                                       "</form>";
+               }
+               else if(dataSourceType == 2){
+                       dataSourceDiv.innerHTML = "<form id=\"kres\" 
action=\"/kres/reengineer\" method=\"POST\" " +
+                                       "enctype=\"multipart/form-data\" " +
+                                       "accept=\"application/rdf+xml\"> " +
+                                       "Output graph URI<br/><input 
type=\"text\" class=\"url\" name=\"output-graph\" value=\"\" /><br/> " +
+                                       "Input type<br/><select 
name=\"input-type\"><option value=\"xml\">XML</select><br/> " +
+                                       "Input<br/><input type=\"file\" 
class=\"url\" name=\"input\" /><br/><br/> " +
+                                       "<input type=\"submit\" 
class=\"submit\" value=\"XML Reengineering\"/>" +
+                                       "</form>";
+               }
+               else{
+                       dataSourceDiv.innerHTML = "";
+               }
+       }
+       
+       
+}
+
+
+function getXMLHttpRequest() {
+
+       
+       var XHR = null,
+
+       userAgent = navigator.userAgent.toUpperCase();
+
+       if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === 
"object")
+               XHR = new XMLHttpRequest();
+
+       else if(window.ActiveXObject && userAgent.indexOf("MSIE 4") < 0) {
+
+               if(userAgent.indexOf("MSIE 5") < 0)
+                       XHR = new ActiveXObject("Msxml2.XMLHTTP");
+               else
+                       XHR = new ActiveXObject("Microsoft.XMLHTTP");
+       }
+
+       return XHR;
+}
+
+
+function expandMenu(requester) {
+       var semionMenu = document.getElementById(requester);
+       var display = semionMenu.style.display;
+       if(display == '' || display == 'none' || display == null){
+               semionMenu.style.display = 'block';
+       }
+       else{
+               semionMenu.style.display = 'none';
+       }
+       
+}
+
+function listScopes(withInactive){
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               if(withInactive){
+                       ajax.open("get", "/kres/ontology?with-inactive=true", 
true);
+               }
+               else{
+                       ajax.open("get", "/kres/ontology", true);
+               }
+               ajax.setRequestHeader("Accept", "application/rdf+json");
+               
+               var contentDIV = document.getElementById("content");
+               
+               ajax.onreadystatechange = function() {
+
+                       // se le operazioni sono state effettuate
+                   if(ajax.readyState == 4) {
+                       if (ajax.status == 200) {
+                               if(contentDIV != null){
+                                       var jsonObj = ajax.responseText;
+                                       
+                                       var databank = 
$.rdf.databank().load(JSON.parse(jsonObj));
+                                       databank.prefix('onm', 
'http://kres.iks-project.eu/ontology/onm/meta.owl#');
+                                       databank.prefix('rdf', 
'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
+                                       databank.prefix('owl', 
'http://www.w3.org/2002/07/owl#');
+                                       
+                                       var rdf = $.rdf({databank:databank});
+                                       
+                                       
+                                       var scopes = rdf.prefix('onm', 
'http://kres.iks-project.eu/ontology/onm/meta.owl#')
+                                                                       
.where('?scope a onm:Scope')
+                                                                       
.select();
+                                       
+                                       
+                                       var text = "<h3 
class=\"menuLeft\">Ontology Network scopes</h3>" +
+                                                               "<a 
class=\"menuRight\" href=\"javascript:addScope(true)\"><img alt=\"Add a scope\" 
src=\"/kres/static/images/add.gif\"</a>" +
+                                                               "<div><ul 
id=\"kresScopes\" class=\"kressList\">";
+                                       
+                                       text += "<br><br>";
+                                       for(var scope in scopes){
+                                               var scopeID = 
scopes[scope].scope.toString().replace('<', '').replace('>', '');
+                                               text += "<li>"+scopeID +
+                                                               "<a 
href=\"javascript:showScopeConfigurationOptions('"+scopeID+"')\"><img 
class=\"configure\" alt=\"Configure\" 
src=\"/kres/static/images/configure.gif\"></a>" +
+                                                               "<div 
id=\""+scopeID+"\" class=\"scopeDIV\">" +
+                                                                       "<a 
href=\"javascript:deleteScope("+scopeID+")\"><img 
src=\"/kres/static/images/delete.gif\" alt=\"delete scope\"></a>" +
+                                                               "</div>";
+                                       }
+                                       text += "</ul></div>";
+                                       if(withInactive){
+                                               text += "<input 
class=\"contentAlign\" type=\"checkbox\" 
onClick=\"javascript:listScopes(false)\" CHECKED>Show also disabled scopes"
+                                       }
+                                       else{
+                                               text += "<input 
class=\"contentAlign\" type=\"checkbox\" 
onClick=\"javascript:listScopes(true)\">Show also disabled scopes"
+                                       }
+                                       
+                                       contentDIV.innerHTML = text;
+                               }
+                       }
+                       
+                   }
+           }
+               
+               contentDIV.innerHTML = "<img 
src=\"/kres/static/images/loading.gif\">";
+               
+               ajax.send(null);
+       }
+}
+
+
+function showScopeConfigurationOptions(scopeID) {
+       var scopeDIV = document.getElementById(scopeID);
+       if(scopeDIV != null){
+               var d = scopeDIV.style.display;
+               if(d==null || d=='none' || d==''){
+                       scopeDIV.style.display = 'block';
+               }
+               else{
+                       scopeDIV.style.display = 'none';
+               }
+       }
+}
+
+function addScope(displayModule) {
+       if(displayModule){
+               var content2 = "<div id=\"popupbox\">" +
+                                               "<form name=\"login\" 
action=\"\" method=\"post\">" +
+                                               "Scope ID:" +
+                                               "<center><input id=\"scopeid\" 
name=\"scopeid\" type=\"text\" size=\"34\" /></center>" +
+                                               "Core registry:" +
+                                               "<center><input id=\"corereg\" 
name=\"corereg\" type=\"text\" size=\"34\" /></center>" +
+                                               "Core ontology:" +
+                                               "<center><input id=\"coreont\" 
name=\"coreont\" type=\"text\" size=\"34\" /></center>" +
+                                               "Custom registry:" +
+                                               "<center><input 
id=\"customreg\" name=\"customreg\" type=\"text\" size=\"34\" /></center>" +
+                                               "Custom ontology:" +
+                                               "<center><input 
id=\"customont\" name=\"customont\" type=\"text\" size=\"34\" /></center>" +
+                                               "Activate scope:" +
+                                               "<center><input id=\"activate\" 
name=\"activate\" type=\"checkbox\" /></center>" +
+                                               "<center><input type=\"button\" 
name=\"submit\" value=\"add\" 
onclick=\"javascript:addScope()\"/></center></form><br />";
+
+               TINY.box.show(content2,0,0,0,1);
+       }
+       else{
+               var scopeID = document.getElementById("scopeid").value;
+               var corereg = document.getElementById("corereg").value;
+               var coreont = document.getElementById("coreont").value;
+               var customreg = document.getElementById("customreg").value;
+               var customont = document.getElementById("customont").value;
+               var activate = document.getElementById("activate");
+               
+               var ajax = getXMLHttpRequest();
+               if(ajax != null){
+                       ajax.onreadystatechange = function() {
+
+                               if(ajax.readyState == 4) {
+                               if (ajax.status == 200) {
+                                       TINY.box.hide();
+                                       var kresScopes = 
document.getElementById("kresScopes");
+                                       if(kresScopes != null){
+                                               var txt = 
document.createTextNode(scopeid);
+                                               
+                                               var newScope = 
document.createElement("li");
+                                               newScope.appendChild(txt);
+                                       }
+                               }
+                               }
+                       }
+                       
+                       var parameters = "";
+                       
+                       if(corereg != ''){
+                               parameters += "corereg="+corereg;
+                       }
+                       if(coreont != ''){
+                               if(parameters != ''){
+                                       parameters += "&";
+                               }
+                               parameters += "coreont="+coreont;
+                       }
+                       if(customreg != ''){
+                               if(parameters != ''){
+                                       parameters += "&";
+                               }
+                               parameters += "customreg="+customreg;
+                       }
+                       if(customont != ''){
+                               if(parameters != ''){
+                                       parameters += "&";
+                               }
+                               parameters += "customont="+customont;
+                       }
+                       
+                       if(parameters != ''){
+                               parameters += "&";
+                       }
+                       if(activate.checked){
+                               parameters += "activate=true";
+                       }
+                       else{
+                               parameters += "activate=false";
+                       }
+                       ajax.open("put", 
"/kres/ontology/"+scopeID+"?"+parameters, true);
+                       //alert(parameters);
+                       ajax.send(null);
+               }
+       }
+}
+
+function discoveryLinks(){
+       var confIn = document.getElementById("confIn")
+       
+       if(confIn != null){
+               var ajax = getXMLHttpRequest();
+               
+               if(ajax != null){
+                       
+                       ajax.open("post", "/kres/link-discovery", true);
+                       
+                       var parameter = "configuration="+confIn.value;
+                       
+                       ajax.onreadystatechange = function() {
+                               if(ajax.readyState == 4) {
+                               if (ajax.status == 200) {
+                               }
+                               }
+                       }
+               }
+               
+               ajax.send(parameter);
+       }
+}
+
+
+
+
+function getGraphs(id, ns){
+       var content = "";
+       
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               ajax.open("get", "/kres/graphs/resume", false);
+               ajax.setRequestHeader("Accept", "application/rdf+json");
+               ajax.send(null);
+               
+               content += "Select a graph from the store: <br>";
+               content += "<select id=\""+id+"\" class=\"refactor\" 
name=\""+id+"\">";
+               
+               var jsonObj = ajax.responseText;
+               
+               var databank = $.rdf.databank().load(JSON.parse(jsonObj));
+               
+               var rdf = $.rdf({databank:databank});
+               
+               
+               var graphs = rdf.prefix('kres', ns)
+                                               .where('kres:Storage 
kres:hasGraph ?graph')
+                                               .select();
+               
+               for(var graph in graphs){
+                       var graphURI = graphs[graph].graph.toString();
+                       var g = graphURI.replace("<", "").replace(">", "");
+                       
+                       content += "<option value='"+ g +"'>"+ g;
+               }
+               
+               content += "</select>";
+       }
+       
+       return content;
+}
+
+
+function getRecipies(){
+       var content = "";
+       
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               ajax.open("get", "/kres/recipe/all", false);
+               ajax.setRequestHeader("Accept", "application/rdf+json");
+               ajax.send(null);
+               
+               content += "<br>Select a recipe from the rule store: <br>";
+               content += "<select id=\"recipe\" class=\"refactor\" 
name=\"recipe\">";
+               
+               var jsonObj = ajax.responseText;
+               
+               var databank = $.rdf.databank().load(JSON.parse(jsonObj));
+               
+               var rdf = $.rdf({databank:databank});
+               
+               
+               var recipes = rdf.prefix('rmi', 
'http://kres.iks-project.eu/ontology/meta/rmi.owl#')
+                                               .where('?recipe a rmi:Recipe')
+                                               .select();
+               
+               for(var recipe in recipes){
+                       var recipeURI = recipes[recipe].recipe.toString();
+                       var r = recipeURI.replace("<", "").replace(">", "");
+                       content += "<option value='"+ r +"'>"+ r;
+               }
+               
+               content += "</select>";
+       }
+       
+       return content;
+}
+
+
+/*
+ * Refactoring
+ */
+
+function runRefactoringStore(graph, recipe){
+       alert("refactoring store");
+}
+
+function listRecipes(){
+       var recipeListDIV = document.getElementById("recipeList");
+       if(recipeListDIV != null){
+               
+               
+               
+                       
+               var ajax = getXMLHttpRequest();
+               if(ajax != null){
+                       ajax.open("get", "/kres/recipe/all", true);
+                       ajax.setRequestHeader("Accept", "application/rdf+json");
+                       
+                       ajax.onreadystatechange = function() {
+                               if(ajax.readyState == 4) {
+                               if (ajax.status == 200) {
+                                       
+                                       
+                                       var content = "<ul 
class=\"kressList\">";
+                                       
+                                       var jsonObj = ajax.responseText;
+                                       
+                                       var databank = 
$.rdf.databank().load(JSON.parse(jsonObj));
+                                       
+                                       var rdf = $.rdf({databank:databank});
+                                       
+                                       
+                                       var recipes = rdf.prefix('rmi', 
'http://kres.iks-project.eu/ontology/meta/rmi.owl#')
+                                                                               
 .where('?recipe a rmi:Recipe')
+                                                                               
 .select();
+               
+                                       content += "<br><br>";
+                                       for(var recipe in recipes){
+                                               var recipeURI = 
recipes[recipe].recipe.toString();
+                                               var r = recipeURI.replace("<", 
"").replace(">", "");
+                                               content += "<li>"+ r;
+                                               content += "<a 
href=\"javascript:showScopeConfigurationOptions('"+r+"')\"><img 
class=\"configure\" alt=\"Configure\" 
src=\"/kres/static/images/configure.gif\"></a>";
+                                               content += "<div id=\""+r+"\" 
class=\"scopeDIV\">" +
+                                                                               
"<a href=\"javascript:deleteRecipe("+r+")\" alt=\"delete scope\">" +
+                                                                               
                "<img src=\"/kres/static/images/delete.gif\" alt=\"delete 
scope\"></a>" +
+                                                                               
"<a href=\"javascript:var rule = new Rule(); rule.displayAddBox('"+r+"');\" 
alt=\"add rule to scope\">" +
+                                                                               
                "<img src=\"/kres/static/images/addRule.gif\" alt=\"add rule to 
scope\"></a>" +
+                                                                               
"<a id=\"listRulesA\"href=\"javascript:var rule = new Rule(); 
rule.listRulesOfRecipe('"+r+"');\" alt=\"list rules of recipe"+r+"\">" +
+                                                                               
                "<img src=\"/kres/static/images/rules.gif\" alt=\"list rules of 
recipe"+r+"\"></a>" +
+                                                                       
"</div>";
+                                       }
+                                       
+                                       
+                                       content += "</ul>";
+                                       
+                                       
+                                       recipeListDIV.innerHTML = content;
+                               
+                               }
+                               }
+                       }
+                       
+                       ajax.send(null);
+               }
+               
+               recipeListDIV.style.display = 'block';
+               
+               var addRecipeElement = document.getElementById("addRecipe");
+               if(addRecipeElement != null){
+                       addRecipeElement.style.display = 'block';
+               }
+               
+               var action = document.getElementById("action");
+               if(action != null){
+                       action.href = "javascript:hideRecipes()";
+                       action.innerHTML = "hide";
+               }
+       }
+}
+
+function hideRecipes(){
+       var recipeListDIV = document.getElementById("recipeList");
+       if(recipeListDIV != null){
+               recipeListDIV.style.display = 'none';
+       }
+       
+       var addRecipeElement = document.getElementById("addRecipe");
+       if(addRecipeElement != null){
+               addRecipeElement.style.display = 'none';
+       }
+       
+       var action = document.getElementById("action");
+       if(action != null){
+               action.href = "javascript:listRecipes()";
+               action.innerHTML = "view";
+       }
+}
+
+function Recipe(){
+       return this;
+}
+
+Recipe.prototype.addRecipe = function(){
+       
+       var recipeIDEl = document.getElementById("recipeid");
+       var descriptionEl =     document.getElementById("description");
+       
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               ajax.open("post", "/kres/recipe", true);
+               ajax.setRequestHeader("Content-type", 
"application/x-www-form-urlencoded")
+               ajax.setRequestHeader("Accept", "application/rdf+json");
+               
+               ajax.onreadystatechange = function() {
+                       if(ajax.readyState == 4) {
+                       if (ajax.status == 200) {
+                               TINY.box.hide();
+                               listRecipes();
+                       }
+                       }
+               }
+       }
+       
+       if(recipeIDEl != null && descriptionEl != null){
+               var recipeID = recipeIDEl.value;
+               
+               var description = descriptionEl.value;
+               
+               var parameter = "recipe="+recipeID+"&description="+description;
+               
+               ajax.send(parameter);
+       }
+       
+       
+}
+
+Recipe.prototype.displayAddBox = function(){
+       var content2 = "<div id=\"popupbox\">" +
+       "<form name=\"login\" action=\"\" method=\"post\">" +
+       "Recipe ID:" +
+       "<center><input id=\"recipeid\" name=\"recipeid\" type=\"text\" 
size=\"34\" /></center>" +
+       "Recipe description:" +
+       "<center><input id=\"description\" name=\"description\" type=\"text\" 
size=\"34\" /></center>" +
+       "<center><input type=\"button\" name=\"submit\" value=\"add\" 
onclick=\"javascript:var recipe = new Recipe(); 
recipe.addRecipe()\"/></center></form><br />";
+
+       TINY.box.show(content2,0,0,0,1);
+}
+
+function loadGraph(element, json) {
+       var ht = new $jit.Hypertree({  
+                 //id of the visualization container  
+                 injectInto: element,  
+                 //canvas width and height  
+                 width: 50,  
+                 height: 50,  
+                 //Change node and edge styles such as  
+                 //color, width and dimensions.  
+                 Node: {  
+                     dim: 9,  
+                     color: "#f00"  
+                 },  
+                 Edge: {  
+                     lineWidth: 2,  
+                     color: "#088"  
+                 },  
+                 onBeforeCompute: function(node){  
+                     Log.write("centering");  
+                 },  
+                 //Attach event handlers and add text to the  
+                 //labels. This method is only triggered on label  
+                 //creation  
+                 onCreateLabel: function(domElement, node){  
+                     domElement.innerHTML = node.name;  
+                     $jit.util.addEvent(domElement, 'click', function () {  
+                         ht.onClick(node.id);  
+                     });  
+                 },  
+                 //Change node styles when labels are placed  
+                 //or moved.  
+                 onPlaceLabel: function(domElement, node){  
+                     var style = domElement.style;  
+                     style.display = '';  
+                     style.cursor = 'pointer';  
+                     if (node._depth <= 1) {  
+                         style.fontSize = "0.8em";  
+                         style.color = "#ddd";  
+                 
+                     } else if(node._depth == 2){  
+                         style.fontSize = "0.7em";  
+                         style.color = "#555";  
+                 
+                     } else {  
+                         style.display = 'none';  
+                     }  
+                 
+                     var left = parseInt(style.left);  
+                     var w = domElement.offsetWidth;  
+                     style.left = (left - w / 2) + 'px';  
+                 },  
+                   
+                 onAfterCompute: function(){  
+                     Log.write("done");  
+                       
+                     //Build the right column relations list.  
+                     //This is done by collecting the information (stored in 
the data property)   
+                     //for all the nodes adjacent to the centered node.  
+                     var node = ht.graph.getClosestNodeToOrigin("current");  
+                     var html = "<h4>" + node.name + 
"</h4><b>Connections:</b>";  
+                     html += "<ul>";  
+                     node.eachAdjacency(function(adj){  
+                         var child = adj.nodeTo;  
+                         if (child.data) {  
+                             var rel = (child.data.band == node.name) ? 
child.data.relation : node.data.relation;  
+                             html += "<li>" + child.name + " " + "<div 
class=\"relation\">(relation: " + rel + ")</div></li>";  
+                         }  
+                     });  
+                     html += "</ul>";  
+                     $jit.id(element+"-details").innerHTML = html;  
+                 }  
+               });  
+               //load JSON data.  
+               ht.loadJSON(json);  
+               //compute positions and plot.  
+               ht.refresh();
+}
+
+function Rule(){
+       return this;
+}
+
+Rule.prototype.addRule = function(){
+       var recipeIDEl = document.getElementById("recipeid");
+       var ruleIDEl = document.getElementById("ruleid");
+       var ruleEl = document.getElementById("rule");
+       var descriptionEl =     document.getElementById("description");
+       
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               ajax.open("post", "/kres/rule", true);
+               ajax.setRequestHeader("Content-type", 
"application/x-www-form-urlencoded")
+               
+               ajax.onreadystatechange = function() {
+                       if(ajax.readyState == 4) {
+                       if (ajax.status == 200) {
+                               TINY.box.hide();
+                               listRecipes();
+                       }
+                       }
+               }
+       }
+       
+       if(recipeIDEl != null && ruleIDEl != null && ruleEl != null && 
descriptionEl != null){
+               var recipeID = recipeIDEl.value;
+               var ruleID = ruleIDEl.value;
+               var rule = ruleEl.value;
+               var description = descriptionEl.value;
+               
+               var parameter = 
"recipe="+recipeID+"&rule="+ruleID+"&kres-syntax="+rule+"&description="+description;
+               
+               ajax.send(parameter);
+       }
+}
+
+Rule.prototype.displayAddBox = function(recipe){
+       var content2 = "<div id=\"popupbox\">" +
+       "<form name=\"login\" action=\"\" method=\"post\">" +
+       "Recipe ID" +
+       "<center><input id=\"recipeid\" name=\"recipeid\" type=\"text\" 
value=\""+recipe+"\" size=\"34\" READONLY/></center>" +
+       "Rule ID:"+
+       "<center><input id=\"ruleid\" name=\"ruleid\" type=\"text\" 
size=\"34\"/></center>" +
+       "Rule:"+
+       "<center><textarea id=\"rule\" name=\"rule\" cols=25 
row=36/></textarea></center><br><br>" +
+       "Description:"+
+       "<center><input id=\"description\" name=\"description\" type=\"text\" 
size=\"34\" /></center>" +
+       "<center><input type=\"button\" name=\"submit\" value=\"add\" 
onclick=\"javascript:var rule = new Rule(); 
rule.addRule()\"/></center></form><br />";
+
+       TINY.box.show(content2,0,0,0,1);
+}
+
+Rule.prototype.listRulesOfRecipe = function(recipe){
+       
+       var div = document.getElementById("rulesOfrecipe"+recipe);
+       if(div == null){
+       
+               var ajax = getXMLHttpRequest();
+               if(ajax != null){
+                       recipe = recipe.replace("#", "%23");
+                       ajax.open("get", "/kres/rule/of-recipe/"+recipe, true);
+                       ajax.setRequestHeader("Accept", "application/rdf+json");
+                       ajax.onreadystatechange = function() {
+                               if(ajax.readyState == 4) {
+                               if (ajax.status == 200) {
+                                       var jsonObj = ajax.responseText;
+                                       
+                                       alert(jsonObj);
+                                       var databank = 
$.rdf.databank().load(JSON.parse(jsonObj));
+                                       
+                                       var rdf = $.rdf({databank:databank});
+                                       
+                                       recipe = recipe.replace("%23", "#");
+                                       var rules = rdf.prefix('rmi', 
'http://kres.iks-project.eu/ontology/meta/rmi.owl#')
+                                                                               
 .where('<' + recipe + '> rmi:hasRule ?rule')
+                                                                               
 .select();
+                                       
+                                       
+                                       var content = "<div 
id=\"rulesOfrecipe"+recipe+"\"><br><br>";
+                                       
+                                       for(var rule in rules){
+                                       
+                                               var ruleURI = 
rules[rule].rule.toString();
+                                               var r = ruleURI.replace("<", 
"").replace(">", "");
+                                               content += "<li>"+ r;
+                                               content += "<a 
href=\"javascript:showScopeConfigurationOptions('"+r+"')\"><img 
class=\"configure\" alt=\"Configure\" 
src=\"/kres/static/images/configure.gif\"></a>";
+                                               content += "<div id=\""+r+"\" 
class=\"scopeDIV\">" +
+                                                                               
"<a href=\"javascript:deleteRecipe("+r+")\" alt=\"delete scope\">" +
+                                                                               
                "<img src=\"/kres/static/images/delete.gif\" alt=\"delete 
scope\"></a>" +
+                                                                               
"<a href=\"javascript:var rule = new Rule(); rule.displayAddBox('"+r+"');\" 
alt=\"add rule to scope\">" +
+                                                                               
                "<img src=\"/kres/static/images/addRule.gif\" alt=\"add rule to 
scope\"></a>" +
+                                                                               
"<a href=\"javascript:var rule = new Rule(); rule.listRulesOfRecipe('"+r+"');\" 
alt=\"list rules of recipe"+r+"\">" +
+                                                                               
                "<img src=\"/kres/static/images/rules.gif\" alt=\"list rules of 
recipe"+r+"\"></a>" +
+                                                                       
"</div>";
+                                       }
+                                       
+                                       
+                                       content += "</ul>";
+                                       
+                                       content += "<div 
id='\"visualization"+recipe+"\'></div>";
+                                       content += "<div 
id='\"visualization"+recipe+"-details\'></div>";
+                                       
+                                       content += "</div>";
+                                       
+                                       
+                                       var ruleListDIV = 
document.getElementById(recipe);
+                                       if(ruleListDIV != null){
+                                               ruleListDIV.innerHTML = 
ruleListDIV.innerHTML + content;
+                                       }
+                                       
+                                       loadGraph("visualization"+recipe, 
jsonObj);
+                               }
+                               }
+                       }
+                       
+                       ajax.send(null);
+               }
+       }
+       else{
+               div.style.display = 'block';
+       }
+       var listRulesA = document.getElementById("listRulesA");
+       if(listRulesA != null){
+               listRulesA.href = "javascript: var rule = new Rule(); 
rule.hideRulesOfRecipe('"+recipe+"');";
+       }
+}
+
+Rule.prototype.hideRulesOfRecipe = function(recipe){
+       var div = document.getElementById("rulesOfrecipe"+recipe);
+       if(div != null){
+               div.style.display = 'none';
+       }
+       
+       var listRulesA = document.getElementById("listRulesA");
+       if(listRulesA != null){
+               listRulesA.href = "javascript: var rule = new Rule(); 
rule.listRulesOfRecipe('"+recipe+"');";
+       }
+}
+
+function Refactorer(){
+       return this;
+}
+
+Refactorer.prototype.runRefactoringStoreLazy = function() {
+       var recipeEl = document.getElementById("recipe");
+       var inputGraphEl = document.getElementById("input-graph");
+       var outputGraphEl = document.getElementById("output-graph");
+       
+       if(recipeEl!=null && inputGraphEl!=null && outputGraphEl!=null){
+               var ajax = getXMLHttpRequest();
+               if(ajax != null){
+                       
+                       var recipe = recipeEl.value.replace("#", "%23");
+                       var inputGraph = inputGraphEl.value.replace("#", "%23");
+                       var outputGraph = outputGraphEl.value.replace("#", 
"%23");
+                       alert(outputGraph +" - "+inputGraph+" - "+recipe);
+                       ajax.open("get", 
"/kres/refactorer/lazy?recipe="+recipe+"&input-graph="+inputGraph+"&output-graph="+outputGraph,
 true);
+                       ajax.setRequestHeader("Accept", "application/rdf+json");
+                       ajax.onreadystatechange = function() {
+                               if(ajax.readyState == 4) {
+                               if (ajax.status == 200) {
+                                       alert("Refactoring completed");
+                               }
+                               }
+                       }
+                       ajax.send(null);
+               }
+       }
+}
+
+Refactorer.prototype.runRefactoringFileLazy = function() {
+       
+       var formEl = document.getElementById("iForm");
+       if(formEl != null){
+               formEl.submit();
+       }
+       /*var recipeEl = document.getElementById("recipe");
+       var inputGraphEl = document.getElementById("graph");
+       
+       if(recipeEl!=null && inputGraphEl!=null){
+               var ajax = getXMLHttpRequest();
+               if(ajax != null){
+                       
+                       var recipe = recipeEl.value;
+                       var inputGraph = inputGraphEl.value;
+                       
+                       alert("recipe: "+recipe+" - input: "+inputGraph);
+                       ajax.open("post", "/kres/refactorer/lazy", true);
+                       ajax.setRequestHeader("Accept", "application/rdf+json");
+                       ajax.onreadystatechange = function() {
+                               if(ajax.readyState == 4) {
+                               if (ajax.status == 200) {
+                                       alert("Refactoring completed");
+                               }
+                               }
+                       }
+                       
+                       var parameters = "recipe='"+recipe+"'&input="+inputGraph
+                       ajax.send(parameters);
+               }
+       }*/
+}
+
+Refactorer.prototype.showRefactoring = function(type, ns){
+       var contentTag = document.getElementById("refactoring");
+       
+       var content = "";
+       if(contentTag != null){
+               var submit = "";
+               if(type == 0){
+                       content += getGraphs("input-graph", ns);
+                       content += "Output graph ID<br><input type=\"text\" 
id=\"output-graph\" name=\"output-graph\">";
+                       
+                       submit = "<input type=\"submit\" value=\"run 
refactoring\" onClick=\"javascript:var refactorer = new Refactorer(); 
refactorer.runRefactoringStoreLazy()\">";
+               }
+               else{
+                       content += "<form id=\"iForm\" 
action=\"/kres/refactorer/lazy\" method=\"post\" 
enctype=\"multipart/form-data\" onsubmit=\"alert(\"finito\")\">";
+                       content += "Select a graph from file: <input 
id=\"graph\" type=\"file\" name=\"input\"><br>";
+                       
+                       submit += "<input type=\"button\" value=\"run 
refactoring\" onclick=\"var refactorer=new Refactorer(); 
refactorer.runRefactoringFileLazy();\"></form>";
+                       
+               }
+               
+               content += getRecipies();
+               content += submit;
+               
+               contentTag.style.display = 'block';
+               contentTag.innerHTML = content;
+       }
+}
+
+function Storage(){
+       return this;
+}
+
+Storage.prototype.loadGraph = function(graphID) {
+       graphID = graphID.replace("<", "").replace(">", "").replace("#", "%23");
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               
+               
+               ajax.open("get", "/kres/graphs/"+graphID, true);
+               ajax.setRequestHeader("Accept", "application/rdf+xml");
+               ajax.onreadystatechange = function() {
+                       if(ajax.readyState == 4) {
+                       if (ajax.status == 200) {
+                               var response = ajax.responseText;
+                               if(response != null){
+                                       var div = 
document.getElementById("graphDIV");
+                                       if(div != null){
+                                               response = 
response.replace("<", "&lt;").replace(">", "&gt;");
+                                               div.innerHTML = "<code 
class=\"code\">"+response+"</code>";
+                                               div.style.display = 'block';
+                                       }
+                               }
+                       }
+                       }
+               }
+               
+               ajax.send(null);
+       }
+}
+
+function Demo(){
+       return this;
+}
+
+Demo.prototype.enhance = function(content) {
+       var ajax = getXMLHttpRequest();
+       if(ajax != null){
+               ajax.open("post", "/engines", true);
+               ajax.setRequestHeader("Content-type", 
"application/x-www-form-urlencoded")
+               ajax.onreadystatechange = function() {
+                       if(ajax.readyState == 4) {
+                       if (ajax.status == 200) {
+                               var jsonObj = ajax.responseText;
+                               
+                               var databank = 
$.rdf.databank().load(JSON.parse(jsonObj));
+                               
+                               var rdf = $.rdf({databank:databank});
+                               
+                               
+                               var references = rdf.prefix('fise', 
'http://fise.iks-project.eu/ontology/')
+                                                                        
.where('?subject fise:entity-reference ?reference')
+                                                                        
.select();
+                               var content = "";
+                               for(var reference in references){
+                                       var referenceURI = 
references[reference].reference.toString();
+                                       content += reference+"<br>";
+                               }
+                               
+                               var div = document.getElementById("fiseResult");
+                               if(div != null){
+                                       div.innerHTML = content;
+                                       div.style.display = 'block';
+                                       
+                               }
+                       }
+                       }
+               }
+               
+               var parameter = 
"content="+content+"&format=application/rdf+json";
+               ajax.send(parameter);
+       }
+               
+} 
\ No newline at end of file

Added: 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/kres.css
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/kres.css?rev=1089668&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/kres.css
 (added)
+++ 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/kres.css
 Wed Apr  6 23:19:09 2011
@@ -0,0 +1,9 @@
+div.dataSourceCheck {
+       display:none;
+       margin-left: 20px
+}
+
+div.dataSourceSubCheck{
+       display:none;
+       margin-left: 20px
+}
\ No newline at end of file

Added: 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/prettify.css
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/prettify.css?rev=1089668&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/prettify.css
 (added)
+++ 
incubator/stanbol/trunk/ontologymanager/web/target/classes/META-INF/static/scripts/prettify/prettify.css
 Wed Apr  6 23:19:09 2011
@@ -0,0 +1,27 @@
+/* Pretty printing styles. Used with prettify.js. */
+
+.str { color: #080; }
+.kwd { color: #008; }
+.com { color: #800; }
+.typ { color: #606; }
+.lit { color: #066; }
+.pun { color: #660; }
+.pln { color: #000; }
+.tag { color: #008; }
+.atn { color: #606; }
+.atv { color: #080; }
+.dec { color: #606; }
+pre.prettyprint { padding: 2px; border: 1px solid #888; }
+
+@media print {
+  .str { color: #060; }
+  .kwd { color: #006; font-weight: bold; }
+  .com { color: #600; font-style: italic; }
+  .typ { color: #404; font-weight: bold; }
+  .lit { color: #044; }
+  .pun { color: #440; }
+  .pln { color: #000; }
+  .tag { color: #006; font-weight: bold; }
+  .atn { color: #404; }
+  .atv { color: #060; }
+}


Reply via email to