var noun_type_id = {
_name: "id",
suggest: function(text, html) {
if (text.indexOf(".") >= 0) {return [];}
var number = parseInt(text);
if (isNaN(number)) {return [];}
if (number < 1) {return [];}
text = number;
return [ CmdUtils.makeSugg(text, null, number)];
}
};
var noun_type_integer = {
_name: "integer",
suggest: function(text, html) {
if (text.indexOf(".") >= 0) {return [];}
var number = parseInt(text);
if (isNaN(number)) {return [];}
text = number;
return [ CmdUtils.makeSugg(text, null, number)];
}
}
iSPARQL_ubiq = {
defaultPreferences: {"endpoint": "", "endpoint_type": "isparql"},
getPrefValue: function(prefName)
{
if (!(Application.prefs.has(prefName)))
{
Utils.reportInfo ('no pref');
if (iSPARQL_ubiq.defaultPreferences.hasOwnProperty(prefName))
return iSPARQL_ubiq.defaultPreferences[prefName];
else return '';
}
return Application.prefs.get(prefName).value;
},
setPrefValue: function(prefName, prefValue)
{
Utils.reportInfo ('setPrefValue: ' + prefName + " " + prefValue);
if (!Application.prefs.has(prefName))
{
Application.prefs.setValue(prefName, prefValue);
return prefValue;
}
else
{
var new_pref = Application.prefs.get(prefName);
new_pref.value = prefValue;
}
},
setEndpoint: function(serverUrl)
{
iSPARQL_ubiq.setPrefValue('opl.isparql_ubiq.endpoint', serverUrl);
},
getEndpoint: function()
{
var ip = iSPARQL_ubiq.getPrefValue('opl.isparql_ubiq.endpoint');
if (!ip) ip = 'http://linkeddata.uriburner.com/isparql';
return ip;
},
setEndpointType: function (endpointType)
{
iSPARQL_ubiq.setPrefValue ('opl.isparql_ubiq.endpoint_type', endpointType);
},
getEndpointType: function ()
{
var et = iSPARQL_ubiq.getPrefValue ('opl.isparql_ubiq.endpoint_type');
if (!et) return 'isparql';
return et;
},
setDefaultGraph: function (graphURI)
{
iSPARQL_ubiq.setPrefValue ('opl.isparql_ubiq.default_graph', graphURI);
},
getDefaultGraph: function ()
{
iSPARQL_ubiq.getPrefValue ('opl.isparql_ubiq.default_graph');
},
setSpongerOpts: function (spongeOpts)
{
iSPARQL_ubiq.setPrefValue ('opl.isparql_ubiq.sponger_opts', graphURI);
},
getSpongerOpts: function ()
{
iSPARQL_ubiq.getPrefValue ('opl.isparql_ubiq.sponger_opts');
},
setOAuthSvcUrl: function (url)
{
iSPARQL_ubiq.setPrefValue ('opl.isparql_ubiq.oauth_svc_url', url.text);
},
getOAuthSvcUrl: function (url)
{
iSPARQL_ubiq.getPrefValue ('opl.isparql_ubiq.oauth_svc_url');
},
getAuthType: function()
{
return null;
},
getUser: function() { return null },
getSID: function () { return null },
runQuery: function()
{
return;
},
tabulateResult: function ()
{
return;
},
showResult: function ()
{
return;
},
checkParameter: function (parameter, parameterName)
{
if (!parameter || parameter.length < 1)
{
if (parameterName) {throw "Please, enter " + parameterName;}
throw "Bad parameter";
}
},
addParameter: function (modifiers, modifierName, parameters, parameterName, modifierCheck)
{
if (modifierCheck)
{
if (!modifiers[modifierName]) {throw "Please, enter " + modifierName;}
iSPARQL_ubiq.checkParameter(modifiers[modifierName].text, modifierName);
}
if (modifiers[modifierName] && modifiers[modifierName].text)
{
var S = modifiers[modifierName].text.toString();
if (S.length > 0)
parameters[parameterName] = modifiers[modifierName].text;
}
},
addParameterPrefOpt: function (modifiers, modifierName, parameters, parameterName, prefName)
{
if (modifiers[modifierName] && modifiers[modifierName].text)
{
var S = modifiers[modifierName].text.toString();
if (S.length > 0)
parameters[parameterName] = modifiers[modifierName].text;
}
else {
var v = iSPARQL_ubiq.getPrefValue (prefName);
if (v.length > 0)
{
parameters[parameterName] = v;
}
}
},
handleException: function (ex)
{
Utils.reportWarning (ex.toString());
}
};
urispec = ""
// CmdUtils.log (FeedManager.getSubscribedFeeds());
if (!Application.prefs.has ('opl.isparql_endpoint_changed') ||
false == iSPARQL_ubiq.getPrefValue ('opl.isparql_endpoint_changed'))
{
Utils.reportWarning ('Setting new default endpoint: ' + urispec);
iSPARQL_ubiq.setEndpoint (urispec);
iSPARQL_ubiq.setEndpointType ('isparql');
}
else
{
CmdUtils.log ('Not changing user-defined endpoint upon install.');
}
/* OAuth = {
OAuthCtx: {
requestTokenUrl: "",
userAuthorizationUrl: "",
accessTokenUrl: "",
consumerKey: "",
consumerSecret: "" },
getRequestTokenUrl: function() {},
setRequestTokenUrl: function(url) {},
getUserAuthorizationUrl: function() {},
setUserAuthorizationUrl: function(url) {},
getAccessTokenUrl: function() {},
setAccessTokenUrl: function(url) {},
makeTS: function () {
d = new Date ();
return d.getTime() / 1000;
},
makeNonce: function () {
return Utils.base64
},
getOAuthCtx: function() {},
putOAuthCtx: function () {},
setServer: function () {},
getConsumerKey: function () {},
getRequestToken: function () {
var params;
params["oauth_timestamp"] = OAuth.makeTS ();
},
getAccessToken: function () {},
makeRequest: function () {},
handleError: function () {},
encodeParams: function () {},
}; */
CmdUtils.CreateCommand({
name: "isparql-set-endpoint",
takes: {"endpoint": noun_arb_text},
modifiers: {"type": noun_arb_text},
homepage: "http://myopenlink.net/isparql",
icon: "http://www.openlinksw.com/favicon.ico",
author: {name: "OpenLink Software", email: "isparql@openlinksw.com"},
license: "MPL",
help: "Setup isparql-query endpoint and its type - 'isparql' for isparql, 'sparql' for regular sparql endopint)",
execute: function (endpoint, modifiers) {
try {
iSPARQL_ubiq.setEndpoint (endpoint.text);
if (modifiers["type"]) iSPARQL_ubiq.setEndpointType (modifiers["type"].text);
iSPARQL_ubiq.setPrefValue ('opl.isparql_endpoint_changed', true);
Utils.reportInfo ("set endpoint to: " + endpoint.text);
} catch (ex) {
iSPARQL_ubiq.handleException (ex);
}
}
});
CmdUtils.CreateCommand({
name: "isparql-set-default-graph",
takes: {"default_graph": noun_arb_text},
homepage: "http://myopenlink.net/isparql",
icon: "http://www.openlinksw.com/favicon.ico",
author: {name: "OpenLink Software", email: "isparql@openlinksw.com"},
license: "MPL",
help: "Setup default graph for isparql-query.",
execute: function (endpoint, modifiers) {
try {
iSPARQL_ubiq.setDefaultGraph (modifiers["defaultgraph"].text);
iSPARQL_ubiq.setSpongerOpts (modifiers["spongeropts"].text);
}
catch (ex) {
iSPARQL_ubiq.handleException (ex);
}
}
});
CmdUtils.CreateCommand({
name: "isparql-query",
takes: {"query": noun_arb_text},
modifiers: {"default_graph": noun_arb_text, "sponger_opts": noun_arb_text },
homepage: "http://myopenlink.net/isparql",
icon: "http://www.openlinksw.com/favicon.ico",
author: {name: "OpenLink Software", email: "isparql@openlinksw.com"},
license: "MPL",
help: "Run a SPARQL query in iSPARQL or regular SPARQL endpoint, depending of the endpoint settings.
" +
"Try: isparql-query select * where {?s ?p ?o} limit 10
",
execute: function (query, modifiers) {
var parms = [];
var endpointType = iSPARQL_ubiq.getEndpointType ();
var ep = iSPARQL_ubiq.getEndpoint();
parms["query"] = query.text;
if (endpointType == 'isparql')
{
ep = ep + '/execute.html';
parms["endpoint"] = '/sparql';
}
iSPARQL_ubiq.addParameterPrefOpt (modifiers,
"default_graph",
parms,
"default_graph",
"opl.isparql_ubiq.default_graph");
iSPARQL_ubiq.addParameterPrefOpt (modifiers,
"sponger_opts",
parms,
"sponger_opts",
"opl.isparql_ubiq.sponger_opts");
try
{
Utils.openUrlInBrowser (ep + Utils.paramsToString (parms));
}
catch (ex)
{
iSPARQL_ubiq.handleException (ex);
}
}
});
//CmdUtils.CreateCommand({
// name: "isparql-auth",
// modifiers: {"foaf_uri": noun_type_url,
// "oauth_url": noun_type_url,
// "user": noun_arb_text,
// "pass": noun_arb_text,
// "auth_type": noun_arb_text},
// homepage: "http://myopenlink.net/isparql",
// icon: "http://www.openlinksw.com/favicon.ico",
// author: {name: "OpenLink Software", email: "isparql@openlinksw.com"},
// license: "MPL",
// help: "Set up authorization for SPARQL queries. auth_type shoudl be one of: sql, foaf+ssl or oauth.",
// execute: function (modifiers) {
//
// }
//});
CmdUtils.CreateCommand({
name: "isparql-view-settings",
homepage: "http://myopenlink.net/isparql",
icon: "http://www.openlinksw.com/favicon.ico",
author: {name: "OpenLink Software", email: "ods@openlinksw.com"},
license: "MPL",
help: "isparql-view-settings will display current endpoint, default graph and sponger option settings",
preview: function (previewBlock) {
var previewTemplate =
"
"+
"Endpoint URI | ${endpoint} |
"+
"Endpoint type | ${endpoint_type} |
"+
"Default Graph | ${default_graph} |
"+
"Sponger Options | ${sponger_opts} |
"+
"
";
//""+
// "Auth type | ${auth_type} |
"+
// "User | ${user} |
"+
// "SesID | ${sid} |
"+
//"
";
var previewData = {
endpoint: iSPARQL_ubiq.getEndpoint(),
default_graph: iSPARQL_ubiq.getDefaultGraph(),
sponger_opts: iSPARQL_ubiq.getSpongerOpts(),
endpoint_type: iSPARQL_ubiq.getEndpointType()
// auth_type: iSPARQL_ubiq.getAuthType(),
// user: iSPARQL_ubiq.getUser(),
// sid: iSPARQL_ubiq.getSID()
};
previewBlock.innerHTML = CmdUtils.renderTemplate (previewTemplate, previewData);
}
});
// http://demo.openlinksw.com/sparql?default-graph-uri=http%3A%2F%2Fdemo.openlinksw.com%2Fdataspace%2Fperson%2Fdemo&should-sponge=&query=select+distinct+%3FURI+%3FObjectType+where+{%3FURI+a+%3FObjectType}+limit+50&format=text%2Fhtml&debug=on