You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/07/09 11:50:45 UTC
[04/41] - moved SNORQL to WebJar - moved CodeMirror to WebJar - moved
Sgvizler to WebJar - cleaned up uses of non-webjar jquery and jquery-ui -
configured YUI compressor for the above packages in build
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/5fd590b4/platform/marmotta-sparql/src/main/resources/web/admin/snorql/snorql.js
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/snorql.js b/platform/marmotta-sparql/src/main/resources/web/admin/snorql/snorql.js
deleted file mode 100755
index 620fa1e..0000000
--- a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/snorql.js
+++ /dev/null
@@ -1,591 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-var snorql = new Snorql();
-
-String.prototype.trim = function () {
- return this.replace(/^\s*/, "").replace(/\s*$/, "");
-}
-
-String.prototype.startsWith = function(str) {
- return (this.match("^"+str) == str);
-}
-
-function Snorql() {
- // modify this._endpoint to point to your SPARQL endpoint
- this._endpoint = _BASIC_URL + 'sparql/select';
- // modify these to your liking
- this._poweredByLink = 'http://marmotta.incubator.apache.org';
- this._poweredByLabel = 'Snorql & Apache Marmotta';
- this._enableNamedGraphs = false;
-
- this._browserBase = null;
- this._namespaces = {};
- this._graph = null;
- this._xsltDOM = null;
-
- this.start = function() {
- // TODO: Extract a QueryType class
- this.setBrowserBase(document.location.href.replace(/\?.*/, ''));
- this._displayEndpointURL();
- //this._displayPoweredBy();
- this.updateOutputMode();
- var match = document.location.href.match(/\?(.*)/);
- var queryString = match ? match[1] : '';
- if (!queryString) {
- document.getElementById('querytext').value = 'SELECT * WHERE {\n ?s ?p ?o\n}\nLIMIT 10';
- this._updateGraph(null, false);
- return;
- }
-
- var graph = queryString.match(/graph=([^&]*)/);
- graph = graph ? decodeURIComponent(graph[1]) : null;
- this._updateGraph(graph, false);
-
- var browse = queryString.match(/browse=([^&]*)/);
- if (browse) {
- if (browse[1] == 'classes') {
- var resultTitle = 'List of all classes:';
- var query = 'SELECT DISTINCT ?class\n' +
- 'WHERE { [] a ?class }\n' +
- 'ORDER BY ?class';
- } else if (browse[1] == 'properties') {
- var resultTitle = 'List of all properties:';
- var query = 'SELECT DISTINCT ?property\n' +
- 'WHERE { [] ?property [] }\n' +
- 'ORDER BY ?property';
- } else if (browse[1] == 'graphs') {
- var resultTitle = 'List of all named graphs:';
- var query = 'SELECT DISTINCT ?namedgraph ?label\n' +
- 'WHERE {\n' +
- ' GRAPH ?namedgraph { ?s ?p ?o }\n' +
- ' OPTIONAL { ?namedgraph rdfs:label ?label }\n' +
- '}\n' +
- 'ORDER BY ?namedgraph';
- }
- }
-
- var properties = queryString.match(/property=([^&]*)/);
- if (properties) {
- var resultTitle = 'All uses of property ' + decodeURIComponent(properties[1]) + ':';
- var query = 'SELECT DISTINCT ?resource ?value\n' +
- 'WHERE { ?resource <' + decodeURIComponent(properties[1]) + '> ?value }\n' +
- 'ORDER BY ?resource ?value';
- }
-
- var classes = queryString.match(/class=([^&]*)/);
- if (classes) {
- var resultTitle = 'All instances of class ' + decodeURIComponent(classes[1]) + ':';
- var query = 'SELECT DISTINCT ?instance\n' +
- 'WHERE { ?instance a <' + decodeURIComponent(classes[1]) + '> }\n' +
- 'ORDER BY ?instance';
- }
-
- var describe = queryString.match(/describe=([^&]*)/);
- if (describe) {
- var resultTitle = 'Description of ' + decodeURIComponent(describe[1]) + ':';
- var query = 'SELECT DISTINCT ?property ?hasValue ?isValueOf\n' +
- 'WHERE {\n' +
- ' { <' + decodeURIComponent(describe[1]) + '> ?property ?hasValue }\n' +
- ' UNION\n' +
- ' { ?isValueOf ?property <' + decodeURIComponent(describe[1]) + '> }\n' +
- '}\n' +
- 'ORDER BY (!BOUND(?hasValue)) ?property ?hasValue ?isValueOf';
- }
-
- var queryMatch = queryString.match(/query=([^&]*)/);
- if (queryMatch) {
- var resultTitle = 'SPARQL results:';
- var query = this._betterUnescape(queryMatch[1]);
-
- }
-
- var prefixes = this._getPrefixes();
- if (queryString.match(/prefixes=/)) {
- prefixes = this._betterUnescape(queryString.match(/prefixes=([^&]*)/)[1]);
- }
-
- var querytext = prefixes + " " + query;
- document.getElementById('querytext').value = query;
- this.displayBusyMessage();
- var service = new SPARQL.Service(this._endpoint);
- if (this._graph) {
- service.addDefaultGraph(this._graph);
- }
-
- // AndyL changed MIME type and success callback depending on query form...
- var dummy = this;
-
- var exp = /^\s*(?:PREFIX\s+\w*:\s+<[^>]*>\s*)*(\w+)\s*.*/i;
- var match = exp.exec(query);
- if (match) {
- if (match[1].toUpperCase() == 'ASK') {
- service.setOutput('boolean');
- var successFunc = function(value) {
- dummy.displayBooleanResult(value, resultTitle);
- };
- } else if (match[1].toUpperCase() == 'CONSTRUCT' || match[1].toUpperCase() == 'DESCRIBE'){ // construct describe
- service.setOutput('rdf'); // !json
- var successFunc = function(model) {
- dummy.displayRDFResult(model, resultTitle);
- };
- } else {
- service.setRequestHeader('Accept', 'application/sparql-results+json,*/*');
- service.setOutput('json');
- var successFunc = function(json) {
- dummy.displayJSONResult(json, resultTitle);
- };
- }
- }
-
- service.query(querytext, {
- success: successFunc,
- failure: function(report) {
- var message = report.responseText.match(/<pre>([\s\S]*)<\/pre>/);
- if (message) {
- dummy.displayErrorMessage(message[1]);
- } else {
- dummy.displayErrorMessage(report.responseText);
- }
- }
- });
- }
-
- this.setBrowserBase = function(url) {
- this._browserBase = url;
- }
-
- this._displayEndpointURL = function() {
- var title = document.createElement("span");
- title.innerHTML = 'Querying <a href="' + this._endpoint + '">' + this._endpoint + '</a>';
- this._display(title, 'title');
- document.title = "Querying " + this._endpoint;
- }
-
- this._displayPoweredBy = function() {
- $('poweredby').href = this._poweredByLink;
- $('poweredby').update(this._poweredByLabel);
- }
-
- this.setNamespaces = function(namespaces) {
- this._namespaces = namespaces;
- var prefixes = this._getPrefixes();
- document.getElementById('prefixes').value = prefixes;
- this._display(document.createTextNode(prefixes), 'prefixestext');
- }
-
- this.switchToGraph = function(uri) {
- this._updateGraph(uri, true);
- }
-
- this.switchToDefaultGraph = function() {
- this._updateGraph(null, true);
- }
-
- this._updateGraph = function(uri, effect) {
- if (!this._enableNamedGraphs) {
- $('default-graph-section').hide();
- $('named-graph-section').hide();
- $('browse-named-graphs-link').hide();
- return;
- }
- var changed = (uri != this._graph);
- this._graph = uri;
- var el = document.getElementById('graph-uri');
- el.disabled = (this._graph == null);
- el.value = this._graph;
- if (this._graph == null) {
- var show = 'default-graph-section';
- var hide = 'named-graph-section';
- $$('a.graph-link').each(function(link) {
- match = link.href.match(/^(.*)[&?]graph=/);
- if (match) link.href = match[1];
- });
- } else {
- var show = 'named-graph-section';
- var hide = 'default-graph-section';
- $('selected-named-graph').update(this._graph);
- var uri = this._graph;
- $$('a.graph-link').each(function(link) {
- match = link.href.match(/^(.*)[&?]graph=/);
- if (!match) link.href = link.href + '&graph=' + uri;
- });
- }
- $(hide).hide();
- $(show).show();
- if (effect && changed) {
- new Effect.Highlight(show,
- {startcolor: '#ffff00', endcolor: '#ccccff', resotrecolor: '#ccccff'});
- }
- $('graph-uri').disabled = (this._graph == null);
- $('graph-uri').value = this._graph;
- }
-
- this.updateOutputMode = function() {
- if (this._xsltDOM == null) {
- this._xsltDOM = document.getElementById('xsltinput');
- }
- var el = document.getElementById('xsltcontainer');
- while (el.childNodes.length > 0) {
- el.removeChild(el.firstChild);
- }
- if (this._selectedOutputMode() == 'xslt') {
- el.appendChild(this._xsltDOM);
- }
- }
-
- this.resetQuery = function() {
- document.location = this._browserBase;
- }
-
- this.submitQuery = function() {
- var mode = this._selectedOutputMode();
- if (mode == 'browse') {
- document.getElementById('queryform').action = this._browserBase;
- } else {
- document.getElementById('queryform').action = this._endpoint;
- }
- document.getElementById('query').value = document.getElementById('querytext').value;
- document.getElementById('jsonoutput').disabled = (mode != 'json');
- if(mode == 'html') {
- document.getElementById('jsonoutput').disabled = false;
- document.getElementById('jsonoutput').value = 'html';
- } else if(mode == 'csv') {
- document.getElementById('jsonoutput').disabled = false;
- document.getElementById('jsonoutput').value = 'csv';
- } else if(mode == 'xml') {
- document.getElementById('jsonoutput').disabled = false;
- document.getElementById('jsonoutput').value = 'xml';
- } else {
- document.getElementById('jsonoutput').value = 'json';
- }
- document.getElementById('stylesheet').disabled = (mode != 'xslt' || !document.getElementById('xsltstylesheet').value);
- if (mode == 'xslt') {
- document.getElementById('stylesheet').value = document.getElementById('xsltstylesheet').value;
- }
- document.getElementById('queryform').submit();
- }
-
- this.displayBusyMessage = function() {
- var busy = document.createElement('div');
- busy.className = 'busy';
- busy.appendChild(document.createTextNode('Executing query ...'));
- this._display(busy, 'result');
- }
-
- this.displayErrorMessage = function(message) {
- var pre = document.createElement('pre');
- pre.innerHTML = message;
- this._display(pre, 'result');
- }
-
- this.displayBooleanResult = function(value, resultTitle) {
- var div = document.createElement('div');
- var title = document.createElement('h2');
- title.appendChild(document.createTextNode(resultTitle));
- div.appendChild(title);
- if (value)
- div.appendChild(document.createTextNode("TRUE"));
- else
- div.appendChild(document.createTextNode("FALSE"));
- this._display(div, 'result');
- this._updateGraph(this._graph); // refresh links in new result
- }
-
- this.displayRDFResult = function(model, resultTitle) {
- var div = document.createElement('div');
- var title = document.createElement('h2');
- title.appendChild(document.createTextNode(resultTitle));
- div.appendChild(title);
- div.appendChild(new RDFXMLFormatter(model));
- this._display(div, 'result');
- this._updateGraph(this._graph); // refresh links in new result - necessary for boolean?
- }
-
- this.displayCSVResult = function(model, resultTitle) {
- var div = document.createElement('div');
- var title = document.createElement('h2');
- title.appendChild(document.createTextNode(resultTitle));
- div.appendChild(title);
- div.appendChild(new RDFCSVFormatter(model));
- this._display(div, 'result');
- this._updateGraph(this._graph); // refresh links in new result - necessary for boolean?
- }
-
- this.displayJSONResult = function(json, resultTitle) {
- var div = document.createElement('div');
- var title = document.createElement('h2');
- title.appendChild(document.createTextNode(resultTitle));
- div.appendChild(title);
- if (json.results.bindings.length == 0) {
- var p = document.createElement('p');
- p.className = 'empty';
- p.appendChild(document.createTextNode('[no results]'));
- div.appendChild(p);
- } else {
- div.appendChild(new SPARQLResultFormatter(json, this._namespaces).toDOM());
- }
- this._display(div, 'result');
- this._updateGraph(this._graph); // refresh links in new result
- }
-
- this._display = function(node, whereID) {
- var where = document.getElementById(whereID);
- if(whereID=='result')where.style.display='block';
- if (!where) {
- alert('ID not found: ' + whereID);
- return;
- }
- while (where.firstChild) {
- where.removeChild(where.firstChild);
- }
- if (node == null) return;
- where.appendChild(node);
- }
-
- this._selectedOutputMode = function() {
- return document.getElementById('selectoutput').value;
- }
-
- this._getPrefixes = function() {
- prefixes = '';
- for (prefix in this._namespaces) {
- var uri = this._namespaces[prefix];
- prefixes = prefixes + 'PREFIX ' + prefix + ': <' + uri + '>\n';
- }
- return prefixes;
- }
-
- this._betterUnescape = function(s) {
- return unescape(s.replace(/\+/g, ' '));
- }
-}
-
-/*
- * RDFXMLFormatter
- *
- * maybe improve...
- */
-function RDFXMLFormatter(string) {
- var pre = document.createElement('pre');
- pre.appendChild(document.createTextNode(string));
- return pre;
-}
-
-function RDFCSVFormatter(string) {
- var pre = document.createElement('pre');
- pre.appendChild(document.createTextNode(string));
- return pre;
-}
-
-
-/*
-===========================================================================
-SPARQLResultFormatter: Renders a SPARQL/JSON result set into an HTML table.
-
-var namespaces = { 'xsd': '', 'foaf': 'http://xmlns.com/foaf/0.1' };
-var formatter = new SPARQLResultFormatter(json, namespaces);
-var tableObject = formatter.toDOM();
-*/
-function SPARQLResultFormatter(json, namespaces) {
- this._json = json;
- this._variables = this._json.head.vars;
- this._results = this._json.results.bindings;
- this._namespaces = namespaces;
-
- this.toDOM = function() {
- var table = document.createElement('table');
- table.className = 'queryresults';
- table.appendChild(this._createTableHeader());
- for (var i = 0; i < this._results.length; i++) {
- table.appendChild(this._createTableRow(this._results[i], i));
- }
- return table;
- }
-
- // TODO: Refactor; non-standard link makers should be passed into the class by the caller
- this._getLinkMaker = function(varName) {
- if (varName == 'property') {
- return function(uri) { return '?property=' + encodeURIComponent(uri); };
- } else if (varName == 'class') {
- return function(uri) { return '?class=' + encodeURIComponent(uri); };
- } else {
- return function(uri) { return '?describe=' + encodeURIComponent(uri); };
- }
- }
-
- this._createTableHeader = function() {
- var tr = document.createElement('tr');
- var hasNamedGraph = false;
- for (var i = 0; i < this._variables.length; i++) {
- var th = document.createElement('th');
- th.appendChild(document.createTextNode(this._variables[i]));
- tr.appendChild(th);
- if (this._variables[i] == 'namedgraph') {
- hasNamedGraph = true;
- }
- }
- if (hasNamedGraph) {
- var th = document.createElement('th');
- th.appendChild(document.createTextNode(' '));
- tr.insertBefore(th, tr.firstChild);
- }
- return tr;
- }
-
- this._createTableRow = function(binding, rowNumber) {
- var tr = document.createElement('tr');
- if (rowNumber % 2) {
- tr.className = 'odd';
- } else {
- tr.className = 'even';
- }
- var namedGraph = null;
- for (var i = 0; i < this._variables.length; i++) {
- var varName = this._variables[i];
- td = document.createElement('td');
- td.appendChild(this._formatNode(binding[varName], varName));
- tr.appendChild(td);
- if (this._variables[i] == 'namedgraph') {
- namedGraph = binding[varName];
- }
- }
- if (namedGraph) {
- var link = document.createElement('a');
- link.href = 'javascript:snorql.switchToGraph(\'' + namedGraph.value + '\')';
- link.appendChild(document.createTextNode('Switch'));
- var td = document.createElement('td');
- td.appendChild(link);
- tr.insertBefore(td, tr.firstChild);
- }
- return tr;
- }
-
- this._formatNode = function(node, varName) {
- if (!node) {
- return this._formatUnbound(node, varName);
- }
- if (node.type == 'uri') {
- return this._formatURI(node, varName);
- }
- if (node.type == 'bnode') {
- return this._formatBlankNode(node, varName);
- }
- if (node.type == 'literal') {
- return this._formatPlainLiteral(node, varName);
- }
- if (node.type == 'typed-literal') {
- return this._formatTypedLiteral(node, varName);
- }
- return document.createTextNode('???');
- }
-
- this._formatURI = function(node, varName) {
- var span = document.createElement('span');
- span.className = 'uri';
- var a = document.createElement('a');
- a.href = this._getLinkMaker(varName)(node.value);
- a.title = '<' + node.value + '>';
- a.className = 'graph-link';
- var qname = this._toQName(node.value);
- if (qname) {
- a.appendChild(document.createTextNode(qname));
- span.appendChild(a);
- } else {
- a.appendChild(document.createTextNode(node.value));
- span.appendChild(document.createTextNode('<'));
- span.appendChild(a);
- span.appendChild(document.createTextNode('>'));
- }
- match = node.value.match(/^(https?|ftp|mailto|irc|gopher|news):/);
- if (match) {
- span.appendChild(document.createTextNode(' '));
- var externalLink = document.createElement('a');
- externalLink.href = node.value;
- img = document.createElement('img');
- img.src = 'link.png';
- img.alt = '[' + match[1] + ']';
- img.title = 'Go to URI directly';
- externalLink.appendChild(img);
- span.appendChild(externalLink);
- }
- return span;
- }
-
- this._formatPlainLiteral = function(node, varName) {
- var text = '"' + node.value + '"';
- if (node['xml:lang']) {
- text += '@' + node['xml:lang'];
- }
- return document.createTextNode(text);
- }
-
- this._formatTypedLiteral = function(node, varName) {
- var text = '"' + node.value + '"';
- if (node.datatype) {
- text += '^^' + this._toQNameOrURI(node.datatype);
- }
- if (this._isNumericXSDType(node.datatype)) {
- var span = document.createElement('span');
- span.title = text;
- span.appendChild(document.createTextNode(node.value));
- return span;
- }
- return document.createTextNode(text);
- }
-
- this._formatBlankNode = function(node, varName) {
- return document.createTextNode('_:' + node.value);
- }
-
- this._formatUnbound = function(node, varName) {
- var span = document.createElement('span');
- span.className = 'unbound';
- span.title = 'Unbound'
- span.appendChild(document.createTextNode('-'));
- return span;
- }
-
- this._toQName = function(uri) {
- for (prefix in this._namespaces) {
- var nsURI = this._namespaces[prefix];
- if (uri.indexOf(nsURI) == 0) {
- return prefix + ':' + uri.substring(nsURI.length);
- }
- }
- return null;
- }
-
- this._toQNameOrURI = function(uri) {
- var qName = this._toQName(uri);
- return (qName == null) ? '<' + uri + '>' : qName;
- }
-
- this._isNumericXSDType = function(datatypeURI) {
- for (i = 0; i < this._numericXSDTypes.length; i++) {
- if (datatypeURI == this._xsdNamespace + this._numericXSDTypes[i]) {
- return true;
- }
- }
- return false;
- }
- this._xsdNamespace = 'http://www.w3.org/2001/XMLSchema#';
- this._numericXSDTypes = ['long', 'decimal', 'float', 'double', 'int',
- 'short', 'byte', 'integer', 'nonPositiveInteger', 'negativeInteger',
- 'nonNegativeInteger', 'positiveInteger', 'unsignedLong',
- 'unsignedInt', 'unsignedShort', 'unsignedByte'];
-}
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/5fd590b4/platform/marmotta-sparql/src/main/resources/web/admin/snorql/sparql.js
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/sparql.js b/platform/marmotta-sparql/src/main/resources/web/admin/snorql/sparql.js
deleted file mode 100755
index 2b34538..0000000
--- a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/sparql.js
+++ /dev/null
@@ -1,507 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**********************************************************
- Copyright (c) 2006, 2007
- Lee Feigenbaum ( lee AT thefigtrees DOT net )
- Elias Torres ( elias AT torrez DOT us )
- Wing Yung ( wingerz AT gmail DOT com )
- All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in
- the Software without restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is furnished to do
- so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-**********************************************************/
-
-/**
- * Example client interactions
- *
-
- var sparqler = new SPARQL.Service("http://sparql.org/sparql");
- sparqler.addDefaultGraph("http://thefigtrees.net/lee/ldf-card"); // inherited by all (future) queries
- sparqler.addNamedGraph("http://torrez.us/elias/foaf.rdf");
- sparqler.setPrefix("foaf", "http://xmlns.com/foaf/0.1/"); // inherited by all (future) queries
- sparqler.setPrefix("rdf", "http://xmlns.com/foaf/0.1/");
-
- sparqler.setRequestHeader("Authentication", "Basic: " + basicAuthString);
-
- //sparqler.wantOutputAs("application/json"); // for now we only do JSON
-
- var query = sparqler.createQuery();
- query.addDefualtGraph(...) query.addNamedGraph(...) query.setPrefix(...) query.setRequestHeader(...) // this query only
-
- // query forms:
-
- // passes standard JSON results object to success callback
- query.setPrefix("ldf", "http://thefigtrees.net/lee/ldf-card#");
- query.query("SELECT ?who ?mbox WHERE { ldf:LDF foaf:knows ?who . ?who foaf:mbox ?mbox }",
- {failure: onFailure, success: function(json) { for (var x in json.head.vars) { ... } ...}}
- );
-
- // passes boolean value to success callback
- query.ask("ASK ?person WHERE { ?person foaf:knows [ foaf:name "Dan Connolly" ] }",
- {failure: onFailure, success: function(bool) { if (bool) ... }}
- );
-
- // passes a single vector (array) of values representing a single column of results to success callback
- query.setPrefix("ldf", "http://thefigtrees.net/lee/ldf-card#");
- var addresses = query.selectValues("SELECT ?mbox WHERE { _:someone foaf:mbox ?mbox }",
- {failure: onFailure, success: function(values) { for (var i = 0; i < values.length; i++) { ... values[i] ...} } }
- );
-
- // passes a single value representing a single row of a single column (variable) to success callback
- query.setPrefix("ldf", "http://thefigtrees.net/lee/ldf-card#");
- var myAddress = query.selectSingleValue("SELECT ?mbox WHERE {ldf:LDF foaf:mbox ?mbox }",
- {failure: onFailure, success: function(value) { alert("value is: " + value); } }
- );
-
- // shortcuts for all of the above (w/o ability to set any query-specific graphs or prefixes)
- sparqler.query(...) sparqler.ask(...) sparqler.selectValues(...) sparqler.selectSingleValue(...)
-
-
- */
-
-var SPARQL = {}; // SPARQL namespace
-
-
-/**
- * Both SPARQL service objects and SPARQL query objects receive one query utility method
- * per entry in this dictionary. The key is the name of the method, and the value is a function
- * that transforms the standard JSON output into a more useful form. The return value of a
- * transformation function is passed into any 'success' callback function provided when the query
- * is issued. The following transformations are included:
- * + query -- identity transform; returns the JSON structure unchanged
- * + ask -- for ASK queries; returns a boolean value indicating the answer to the query
- * + selectValues -- for SELECT queries with a single variable; returns an array containing
- * the answers to the query
- * + selectSingleValue -- for SELECT queries returning one column with one row; returns the
- * value in the first (and presumably, only) cell in the resultset
- * + selectValueArrays -- for SELECT queries returning independent columns; returns a hash
- * keyed on variable name with values as arrays of answers for that variable. Useful
- * for UNION queries.
- * Note that all of the transformations that return values directly lose any type information
- * and the ability to distinguish between URIs, blank nodes, and literals.
- */
-SPARQL._query_transformations = {
- query: function (o) { return o; },
- ask: function (o) { return o["boolean"]; },
- selectValues: function (o) {
- var v = o.head.vars[0]; // assume one variable
- var values = [];
- for (var i = 0; i < o.results.bindings.length; i++)
- values.push(o.results.bindings[i][v].value);
- return values;
- },
- selectSingleValue: function(o) { return o.results.bindings[0][o.head.vars[0]].value; },
- selectValueArrays: function(o) {
- // factor by value (useful for UNION queries)
- var ret = {};
- for (var i = 0; i < o.head.vars.length; i++)
- ret[o.head.vars[i]] = [];
- for (var i = 0; i < o.results.bindings.length; i++)
- for (var v in o.results.bindings[i])
- if (ret[v] instanceof Array) ret[v].push(o.results.bindings[i][v].value);
- return ret;
- },
- selectValueHashes: function(o) {
- var hashes = [];
- for (var i = 0; i < o.results.bindings.length; i++) {
- var hash = {};
- for (var v in o.results.bindings[i])
- hash[v] = o.results.bindings[i][v].value;
- hashes.push(hash);
- }
- return hashes;
- }
-};
-
-SPARQL.statistics = {
- queries_sent : 0,
- successes : 0,
- failures : 0
-};
-
-// A SPARQL service represents a single endpoint which implements the HTTP (GET or POST)
-// bindings of the SPARQL Protocol. It provides convenience methods to set dataset and
-// prefix options for all queries created for this endpoint.
-SPARQL.Service = function(endpoint) {
- //---------------
- // private fields
- var _endpoint = endpoint;
- var _default_graphs = [];
- var _named_graphs = [];
- var _prefix_map = {};
- var _method = 'POST';
- var _output = 'json';
- var _max_simultaneous = 0;
- var _request_headers = {};
-
- //----------
- // accessors
- this.endpoint = function() { return _endpoint; };
- this.defaultGraphs = function() { return _default_graphs; };
- this.namedGraphs = function() { return _named_graphs; };
- this.prefixes = function() { return _prefix_map; };
- this.method = function() { return _method; };
- this.output = function() { return _output; };
- this.maxSimultaneousQueries = function() { return _max_simultaneous; };
- this.requestHeaders = function() { return _request_headers; };
-
- //---------
- // mutators
- function _add_graphs(toAdd, arr) {
- if (toAdd instanceof Array)
- for (var i = 0; i < toAdd.length; i++) arr.push(toAdd[i]);
- else
- arr.push(toAdd);
- }
- this.addDefaultGraph = function(g) { _add_graphs(g, this.defaultGraphs()); };
- this.addNamedGraph = function(g) { _add_graphs(g, this.namedGraphs()); };
- this.setPrefix = function(p, u) { this.prefixes()[p] = u; };
- this.createQuery = function(p) { return new SPARQL.Query(this, p); };
- this.setMethod = function(m) {
- if (m != 'GET' && m != 'POST') throw("HTTP methods other than GET and POST are not supported.");
- _method = m;
- };
- this.setOutput = function(o) { _output = o; };
- this.setMaxSimultaneousQueries = function(m) { _max_simultaneous = m; };
- this.setRequestHeader = function(h, v) { _request_headers[h] = v; };
-
- //---------------
- // protected methods (should only be called within this module
- this._active_queries = 0;
- this._queued_queries = [];
- this._next_in_queue = 0;
- this._canRun = function() { return this.maxSimultaneousQueries() <= 0 || this._active_queries < this.maxSimultaneousQueries();};
- this._queue = function(q,f, p) {
- if (!p) p = 0;
- if (p > 0) {
- for (var i = 0; i < this._queued_queries.length; i++) {
- if (this._queued_queries[i] != null && this._queued_queries[i][2] < p) {
- this._queued_queries.splice(i, 0, [q, f, p]);
- return;
- }
- }
- }
- this._queued_queries.push([q,f,p]);
- };
- this._markRunning = function(q) { this._active_queries++; };
- this._markDone = function(q) {
- this._active_queries--;
- //document.getElementById('log').innerHTML+="query done. " + this._active_queries + " queries still active.<br>";
- if (this._queued_queries[this._next_in_queue] != null && this._canRun()) {
- var a = this._queued_queries[this._next_in_queue];
- this._queued_queries[this._next_in_queue++] = null;
- // a[0] is query object, a[1] is function to run query
- //document.getElementById('log').innerHTML += "running query from Q<br>";
- a[1]();
- }
- };
-
- //---------------
- // public methods
-
- // use our varied transformations to create the various shortcut methods of actually
- // issuing queries without explicitly creating a query object
- for (var query_form in SPARQL._query_transformations) {
- // need the extra function to properly scope query_form (qf)
- this[query_form] = (function(qf) {
- return function(queryString, callback) {
- var q = this.createQuery();
- q._doQuery(queryString, callback, SPARQL._query_transformations[qf]);
- };
- })(query_form);
- }
-
- //------------
- // constructor
-
- if (!_endpoint)
- return null;
-
- return this;
-}
-
-/**
- * A SPARQL query object should be created using the createQuery method of a SPARQL
- * service object. It allows prefixes and datasets to be defined specifically for
- * a single query, and provides introspective methods to see the query string and the
- * full (HTTP GET) URL of the query.
- */
-SPARQL.Query = function(service, priority) {
- //---------------
- // private fields
- var _conn = null;
- var _service = service;
- var _default_graphs = clone_obj(service.defaultGraphs()); // prevent future updates from affecting us
- var _named_graphs = clone_obj(service.namedGraphs());
- var _prefix_map = clone_obj(service.prefixes());
- var _user_query = ''; // doesn't include auto-generated prefix declarations
- var _method = service.method();
- var _output = service.output();
- var _priority = priority || 0;
- var _request_headers = clone_obj(service.requestHeaders());
-
- //------------------
- // private functions
- function _create_json(text) {
- if (!text)
- return null;
- // make sure this is safe JSON
- // see: http://www.ietf.org/internet-drafts/draft-crockford-jsonorg-json-03.txt
-
- // (1) strip out quoted strings
- var no_strings = text.replace(/"(\\.|[^"\\])*"/g, '');
- // (2) make sure that all the characters are explicitly part of the JSON grammar
- // (in particular, note as discussed in the IETF submission, there are no assignments
- // or function invocations allowed by this reg. exp.)
- var hasBadCharacter = /[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(no_strings);
- // (3) evaluate the JSON string, returning its contents
- if (!hasBadCharacter) {
- try {
- return eval('(' + text + ')');
- } catch (e) {
- return null;
- }
- }
- return null;
- }
-
- function clone_obj(o) {
- var o2 = o instanceof Array ? [] : {};
- for(var x in o) {o2[x] = o[x];}
- return o2;
- }
-
- //----------------
- // private methods
- this._doCallback = function(cb, which, arg) {
- //document.getElementById('log').innerHTML += "_doCallback ... <br>";
- var user_data = "argument" in cb ? cb.argument : null;
- if (which in cb) {
- if (cb.scope) {
- cb[which].apply(cb.scope, [arg, user_data]);
- } else {
- cb[which](arg, user_data);
- }
- }
- }
-
- this._queryFailure = function(xhr, arg) {
- SPARQL.statistics.failures++;
- _service._markDone(this);
- this._doCallback(arg.callback, 'failure', xhr /* just pass through the connection response object */);
- };
- this._querySuccess = function(xhr, arg) {
- //alert(xhr.responseText);
- SPARQL.statistics.successes++;
- _service._markDone(this);
- this._doCallback(arg.callback, 'success', arg.transformer(
- _output == 'json' ? _create_json(xhr.responseText) : xhr.responseText
- ));
- };
-
- function getXmlHttpRequest(url) {
- // right now, this only does Firefox (Opera? Safari?)
- return new XMLHttpRequest();
- }
-
- this._doQuery = function(queryString, callback, transformer) {
- _user_query = queryString;
- if (_service._canRun()) {
- try {
- if (_method != 'POST' && _method != 'GET')
- throw("HTTP methods other than GET and POST are not supported.");
-
- var url = _method == 'GET' ? this.queryUrl() : this.service().endpoint();
- var xhr = getXmlHttpRequest(url);
- var content = null;
-
- try {
- if (!document.domain || ((url.match(/^http:\/\//) && url.slice(7, document.domain.length + 7) != document.domain || url.match(/^https:\/\//) && url.slice(8, document.domain.length + 8) != document.domain) && window.netscape && netscape.security && netscape.security.PrivilegeManager)) {
- netscape.security.PrivilegeManager.enablePrivilege( "UniversalBrowserRead");
- netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect");
- }
- } catch(e) {
- alert("Cross-site requests prohibited. You will only be able to SPARQL the origin site: " + e);
- return;
- }
-
- xhr.open(_method, url, true /* async */);
-
- // set the headers, including the content-type for POSTed queries
- for (var header in this.requestHeaders())
- if (typeof(this.requestHeaders()[header]) != "function")
- xhr.setRequestHeader(header, this.requestHeaders()[header]);
- if (_method == 'POST') {
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- content = this.queryParameters();
- }
-
- SPARQL.statistics.queries_sent++;
- _service._markRunning(this);
-
- var callbackData = {
- scope: this,
- success: this._querySuccess,
- failure: this._queryFailure,
- argument: {
- transformer: transformer,
- callback: callback
- }
- };
-
- // I've seen some strange race-condition behavior (strange since normally
- // JS is single-threaded, so synchronization conditions don't occur barring
- // reentrancy) with onreadystatechange. Instead, we poll asynchronously to
- // determine when the request is done.
- var token = window.setInterval(
- function () {
- if (xhr.readyState == 4) { // ready!
- // clear this handler
- window.clearInterval(token);
- // we check the status to know which callback to call
- if (xhr.status >= 200 && xhr.status < 300)
- callbackData.success.apply(callbackData.scope, [xhr, callbackData.argument]);
- else
- callbackData.failure.apply(callbackData.scope, [xhr, callbackData.argument]);
- }
- },
- 200 /* maybe this should be customizable */
- );
-
- xhr.send(content);
- } catch (e) {
- alert("Error sending SPARQL query: " + e);
- }
- } else {
- var self = this;
- _service._queue(self, function() { self._doQuery(queryString, callback, transformer); }, _priority);
- }
- };
-
-
- //----------
- // accessors
- this.request = function() { return _conn; };
- this.service = function() { return _service; };
- this.defaultGraphs = function() { return _default_graphs; };
- this.namedGraphs = function() { return _named_graphs; };
- this.prefixes = function() { return _prefix_map; };
- this.method = function() { return _method; };
- this.requestHeaders = function() { return _request_headers; };
-
-
- /**
- * Returns the SPARQL query represented by this object. The parameter, which can
- * be omitted, determines whether or not auto-generated PREFIX clauses are included
- * in the returned query string.
- */
- this.queryString = function(excludePrefixes) {
- var preamble = '';
- if (!excludePrefixes) {
- for (var prefix in this.prefixes()) {
- if(typeof(this.prefixes()[prefix]) != 'string') continue;
- preamble += 'PREFIX ' + prefix + ': <' + this.prefixes()[prefix] + '> ';
- }
- }
- return preamble + _user_query;
- };
-
- /**
- * Returns the HTTP query parameters to invoke this query. This includes entries for
- * all of the default graphs, the named graphs, the SPARQL query itself, and an
- * output parameter to specify JSON (or other) output is desired.
- */
- this.queryParameters = function () {
- var urlQueryString = '';
- var i;
-
- // add default and named graphs to the protocol invocation
- for (i = 0; i < this.defaultGraphs().length; i++) urlQueryString += 'default-graph-uri=' + encodeURIComponent(this.defaultGraphs()[i]) + '&';
- for (i = 0; i < this.namedGraphs().length; i++) urlQueryString += 'named-graph-uri=' + encodeURIComponent(this.namedGraphs()[i]) + '&';
-
- // specify JSON output (currently output= supported by latest Joseki) (or other output)
- urlQueryString += 'output=' + _output + '&';
- return urlQueryString + 'query=' + encodeURIComponent(this.queryString());
- }
-
- /**
- * Returns the HTTP GET URL to invoke this query. (Note that this returns a full HTTP GET URL
- * even if this query is set to actually use POST.)
- */
- this.queryUrl = function() {
- var url = this.service().endpoint() + '?';
- return url + this.queryParameters();
- };
-
- //---------
- // mutators
- function _add_graphs(toAdd, arr) {
- if (toAdd instanceof Array)
- for (var i = 0; i < toAdd.length; i++) arr.push(toAdd[i]);
- else
- arr.push(toAdd);
- }
- this.addDefaultGraph = function(g) { _add_graphs(g, this.defaultGraphs()); };
- this.addNamedGraph = function(g) { _add_graphs(g, this.namedGraphs()); };
- this.setPrefix = function(p, u) { this.prefixes()[p] = u; };
- this.setMethod = function(m) {
- if (m != 'GET' && m != 'POST') throw("HTTP methods other than GET and POST are not supported.");
- _method = m;
- };
- this.setRequestHeader = function(h, v) { _request_headers[h] = v; };
-
- //---------------
- // public methods
-
- // use our varied transformations to create the various methods of actually issuing
- // queries
- for (var query_form in SPARQL._query_transformations) {
- // need the extra function to properly scope query_form (qf)
- this[query_form] = (function(qf) {
- return function(queryString, callback) {
- this._doQuery(queryString, callback, SPARQL._query_transformations[qf]);
- };
- })(query_form);
- }
-
-
- //------------
- // constructor
-
- return this;
-}
-
-// Nothing to see here, yet.
-SPARQL.QueryUtilities = {
-};
-
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/5fd590b4/platform/marmotta-sparql/src/main/resources/web/admin/snorql/style.css
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/style.css b/platform/marmotta-sparql/src/main/resources/web/admin/snorql/style.css
deleted file mode 100755
index f94ce4b..0000000
--- a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/style.css
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-.snorql {
- background: none repeat scroll 0 0 #eeeeee;
- font-family: sans-serif;
- padding: 1em 1em 5em 1em;
- border: 2px solid #000000;
- border-radius: 5px;
- margin: 2em auto 10em auto;
-}
-#footer_snorql { font-size: 60%; margin: 10px 0; text-align: center; }
-.subtitle { text-align: center; margin-top: 0; }
-form { margin: 0; }
-textarea { width: 100%; margin: 10px 0;border:1px solid #999; }
-.snorql pre#prefixestext { color: #555; margin: 10px 0; width: auto; color: inherit; background-color: inherit; border: 0; }
-img { border: none; }
-.section { margin: 15px 0 0; padding: 0; }
-.busy { color: #888; }
-.link { background: url(link.png) center right no-repeat; padding-right: 13px; }
-.queryresults { border-collapse: collapse; margin-top: 0.3em; border: 1px solid gray;}
-.queryresults td, .queryresults th { padding: 0.2em 0.4em; vertical-align: top; }
-.uri { white-space: nowrap; }
-.uri a, a.uri { text-decoration: none; }
-.unbound { color: #888; }
-.queryresults a small { font-size: 100%; }
-.queryresults small { font-size: 100%; color: #666; }
-.queryresults .property { white-space: nowrap; }
-#rdficon { float: right; margin: 0.6em 1em; }
-.directory li { margin-bottom: 0.5em; }
-.directory small { font-size: 80%; color: #666; }
-
-.snorql h2 {
- color: #666666;
- margin: 0;
- padding: 0;
-}
-.result h2 {
- margin: 5px 0;
- color: #666666;
-}
-/* .snorql #snorql_header, .snorql .section { background: #ccf; } */
-.snorql table.queryresults th { background: #666666; color: #ffffff; font-weight: bold; }
-.snorql table.queryresults tr.odd td { background-color: #aaaaaa !important; }
-.snorql table.queryresults tr.even td { background-color: #cccccc !important; }
-
-.browser h1, .browser h2 { color: #666666; }
-.browser #header, .browser .section { background: #666666; }
-.browser table.queryresults th { background: none repeat scroll 0 0 gray; color: white; }
-.browser table.queryresults tr.odd td { background-color: #aaaaaa !important; }
-.browser table.queryresults tr.even td { background-color: #cccccc !important; }
-
-#result {
- border: 1px solid #999;
- font-size: 12px;
- overflow-x: auto;
- padding: 5px;
- width: 98%;
- display:none;
- background-color: white;
-}
-
-.snorql div.CodeMirror-scroll {
- height: auto !important;
- overflow-y: hidden !important;
- overflow-x: auto !important;
-}
-
-.snorql div.CodeMirror-gutter pre, .snorql div.CodeMirror-lines pre {
- overflow: inherit !important;
-}
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/5fd590b4/platform/marmotta-sparql/src/main/resources/web/admin/snorql/xml-to-html.xsl
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/xml-to-html.xsl b/platform/marmotta-sparql/src/main/resources/web/admin/snorql/xml-to-html.xsl
deleted file mode 100755
index 1333027..0000000
--- a/platform/marmotta-sparql/src/main/resources/web/admin/snorql/xml-to-html.xsl
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-
-XSLT script to format SPARQL Query Results XML Format into xhtml
-
-Copyright © 2004, 2005 World Wide Web Consortium, (Massachusetts
-Institute of Technology, European Research Consortium for
-Informatics and Mathematics, Keio University). All Rights
-Reserved. This work is distributed under the W3C® Software
-License [1] in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.
-
-[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
-
-Version 1 : Dave Beckett (DAWG)
-Version 2 : Jeen Broekstra (DAWG)
-Customization for SPARQler: Andy Seaborne
-
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:res="http://www.w3.org/2005/sparql-results#"
- exclude-result-prefixes="res xsl">
-
- <!--
- <xsl:output
- method="html"
- media-type="text/html"
- doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
- indent="yes"
- encoding="UTF-8"/>
- -->
-
- <!-- or this? -->
-
- <xsl:output
- method="xml"
- indent="yes"
- encoding="UTF-8"
- doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
- omit-xml-declaration="no" />
-
-
- <xsl:template name="header">
- <div>
- <h2>Header</h2>
- <xsl:for-each select="res:head/res:link">
- <p>Link to <xsl:value-of select="@href"/></p>
- </xsl:for-each>
- </div>
- </xsl:template>
-
- <xsl:template name="boolean-result">
- <div>
- <!--
- <h2>Boolean Result</h2>
- -->
- <p>ASK => <xsl:value-of select="res:boolean"/></p>
- </div>
- </xsl:template>
-
-
- <xsl:template name="vb-result">
- <div>
- <!--
- <h2>Variable Bindings Result</h2>
- <p>Ordered: <xsl:value-of select="res:results/@ordered"/></p>
- <p>Distinct: <xsl:value-of select="res:results/@distinct"/></p>
- -->
-
- <table>
- <xsl:text>
- </xsl:text>
- <tr>
- <xsl:for-each select="res:head/res:variable">
- <th><xsl:value-of select="@name"/></th>
- </xsl:for-each>
- </tr>
- <xsl:text>
- </xsl:text>
- <xsl:for-each select="res:results/res:result">
- <tr>
- <xsl:apply-templates select="."/>
- </tr>
- </xsl:for-each>
- </table>
- </div>
- </xsl:template>
-
- <xsl:template match="res:result">
- <xsl:variable name="current" select="."/>
- <xsl:for-each select="//res:head/res:variable">
- <xsl:variable name="name" select="@name"/>
- <td>
- <xsl:choose>
- <xsl:when test="$current/res:binding[@name=$name]">
- <!-- apply template for the correct value type (bnode, uri, literal) -->
- <xsl:apply-templates select="$current/res:binding[@name=$name]"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- no binding available for this variable in this solution -->
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template match="res:bnode">
- <xsl:text>_:</xsl:text>
- <xsl:value-of select="text()"/>
- </xsl:template>
-
- <xsl:template match="res:uri">
- <xsl:variable name="uri" select="text()"/>
- <xsl:text><</xsl:text>
- <xsl:value-of select="$uri"/>
- <xsl:text>></xsl:text>
- </xsl:template>
-
- <xsl:template match="res:literal">
- <xsl:text>"</xsl:text>
- <xsl:value-of select="text()"/>
- <xsl:text>"</xsl:text>
-
- <xsl:choose>
- <xsl:when test="@datatype">
- <!-- datatyped literal value -->
- ^^<<xsl:value-of select="@datatype"/>>
- </xsl:when>
- <xsl:when test="@xml:lang">
- <!-- lang-string -->
- @<xsl:value-of select="@xml:lang"/>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="res:sparql">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>SPARQL Query Results</title>
- <style>
- <![CDATA[
- h1 { font-size: 150% ; }
- h2 { font-size: 125% ; }
- table { border-collapse: collapse ; border: 1px solid black ; }
- td, th
- { border: 1px solid black ;
- padding-left:0.5em; padding-right: 0.5em;
- padding-top:0.2ex ; padding-bottom:0.2ex
- }
- ]]>
- </style>
- </head>
- <body>
-
-
- <h1>SPARQL Query Results</h1>
-
- <xsl:if test="res:head/res:link">
- <xsl:call-template name="header"/>
- </xsl:if>
-
- <xsl:choose>
- <xsl:when test="res:boolean">
- <xsl:call-template name="boolean-result" />
- </xsl:when>
-
- <xsl:when test="res:results">
- <xsl:call-template name="vb-result" />
- </xsl:when>
-
- </xsl:choose>
-
-
- </body>
- </html>
- </xsl:template>
-</xsl:stylesheet>
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/5fd590b4/platform/marmotta-sparql/src/main/resources/web/admin/update.html
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/resources/web/admin/update.html b/platform/marmotta-sparql/src/main/resources/web/admin/update.html
index 901c4b4..c42c522 100644
--- a/platform/marmotta-sparql/src/main/resources/web/admin/update.html
+++ b/platform/marmotta-sparql/src/main/resources/web/admin/update.html
@@ -22,8 +22,7 @@
<!--###BEGIN_HEAD###-->
<title>SPARQL Update</title>
<link href="../style/sparql.css" rel="stylesheet" type="text/css" />
- <link href="../cm/codemirror.css" rel="stylesheet" type="text/css" />
- <link href="../cm/simple-hint.css" rel="stylesheet" type="text/css" />
+ <link href="../../webjars/codemirror/2.24/codemirror.css" rel="stylesheet" type="text/css" />
<style type="text/css">
#refesh_box {
display: inline-block;
@@ -62,13 +61,11 @@
<input type="submit" value="execute update query"/>
</p>
</fieldset>
- </form>
+ </form>
- <script type="text/javascript" src="../../core/public/js/lib/jquery-1.7.2.js"></script>
- <script type="text/javascript" src="../../core/public/js/lib/jquery-ui-1.8.21.js"></script>
- <script type="text/javascript" src="../cm/codemirror.js"></script>
- <script type="text/javascript" src="../cm/simple-hint.js"></script>
- <script type="text/javascript" src="../cm/sparql.js"></script>
+<script type="text/javascript" src="../../webjars/jquery/1.8.2/jquery.min.js"></script>
+<script type="text/javascript" src="../../webjars/jquery-ui/1.8.21/jquery-ui.min.js"></script>
+<script type="text/javascript" src="../../webjars/codemirror/2.24/codemirror.js"></script>
<script type="text/javascript">
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/5fd590b4/platform/marmotta-sparql/src/main/resources/web/cm/codemirror.css
----------------------------------------------------------------------
diff --git a/platform/marmotta-sparql/src/main/resources/web/cm/codemirror.css b/platform/marmotta-sparql/src/main/resources/web/cm/codemirror.css
deleted file mode 100644
index b5385d7..0000000
--- a/platform/marmotta-sparql/src/main/resources/web/cm/codemirror.css
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#center .CodeMirror, .CodeMirror {
- line-height: 1em;
- font-family: monospace;
-}
-
-#center .CodeMirror-scroll, .CodeMirror-scroll {
- overflow: auto;
- height: 300px;
- /* This is needed to prevent an IE[67] bug where the scrolled content
- is visible outside of the scrolling box. */
- position: relative;
- outline: none;
-}
-
-#center .CodeMirror-gutter, .CodeMirror-gutter {
- position: absolute; left: 0; top: 0;
- z-index: 10;
- background-color: #f7f7f7;
- border-right: 1px solid #eee;
- min-width: 2em;
- height: 100%;
-}
-#center .CodeMirror-gutter-text, .CodeMirror-gutter-text {
- color: #aaa;
- text-align: right;
- padding: .4em .2em .4em .4em;
- white-space: pre !important;
-}
-#center .CodeMirror-lines, .CodeMirror-lines {
- padding: .4em;
- white-space: pre;
-}
-
-#center .CodeMirror pre, .CodeMirror pre {
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- -o-border-radius: 0;
- border-radius: 0;
- border-width: 0; margin: 0; padding: 0; background: transparent;
- font-family: inherit;
- font-size: inherit;
- padding: 0; margin: 0;
- white-space: pre;
- word-wrap: normal;
- line-height: inherit;
- width: auto;
-}
-
-#center .CodeMirror-wrap pre, .CodeMirror-wrap pre {
- word-wrap: break-word;
- white-space: pre-wrap;
- word-break: normal;
-}
-#center .CodeMirror-wrap .CodeMirror-scroll, .CodeMirror-wrap .CodeMirror-scroll {
- overflow-x: hidden;
-}
-
-#center .CodeMirror textarea, .CodeMirror textarea {
- outline: none !important;
-}
-
-#center .CodeMirror pre.CodeMirror-cursor, .CodeMirror pre.CodeMirror-cursor {
- z-index: 10;
- position: absolute;
- visibility: hidden;
- border-left: 1px solid black;
- border-right:none;
- width:0;
-}
-#center .CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite, .CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}
-#center .CodeMirror-focused pre.CodeMirror-cursor, .CodeMirror-focused pre.CodeMirror-cursor {
- visibility: visible;
-}
-
-#center div.CodeMirror-selected, div.CodeMirror-selected { background: #d9d9d9; }
-#center .CodeMirror-focused div.CodeMirror-selected, .CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; }
-
-#center .CodeMirror-searching, .CodeMirror-searching {
- background: #ffa;
- background: rgba(255, 255, 0, .4);
-}
-
-/* Default theme */
-
-.cm-s-default span.cm-keyword {color: #708;}
-.cm-s-default span.cm-atom {color: #219;}
-.cm-s-default span.cm-number {color: #164;}
-.cm-s-default span.cm-def {color: #00f;}
-.cm-s-default span.cm-variable {color: black;}
-.cm-s-default span.cm-variable-2 {color: #05a;}
-.cm-s-default span.cm-variable-3 {color: #085;}
-.cm-s-default span.cm-property {color: black;}
-.cm-s-default span.cm-operator {color: black;}
-.cm-s-default span.cm-comment {color: #a50;}
-.cm-s-default span.cm-string {color: #a11;}
-.cm-s-default span.cm-string-2 {color: #f50;}
-.cm-s-default span.cm-meta {color: #555;}
-.cm-s-default span.cm-error {color: #f00;}
-.cm-s-default span.cm-qualifier {color: #555;}
-.cm-s-default span.cm-builtin {color: #30a;}
-.cm-s-default span.cm-bracket {color: #cc7;}
-.cm-s-default span.cm-tag {color: #170;}
-.cm-s-default span.cm-attribute {color: #00c;}
-.cm-s-default span.cm-header {color: #a0a;}
-.cm-s-default span.cm-quote {color: #090;}
-.cm-s-default span.cm-hr {color: #999;}
-.cm-s-default span.cm-link {color: #00c;}
-
-span.cm-header, span.cm-strong {font-weight: bold;}
-span.cm-em {font-style: italic;}
-span.cm-emstrong {font-style: italic; font-weight: bold;}
-span.cm-link {text-decoration: underline;}
-
-#center div.CodeMirror span.CodeMirror-matchingbracket, div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
-#center div.CodeMirror span.CodeMirror-nonmatchingbracket, div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}