Strabon

changeset 499:ef9c43dd2c78

Several Changes in Strabon Endpoint:
Going for a change in the organization. The endpoint shall be composed of the beans covering the functionality of SPARQL protocol and the visual interface.
The beans (Describe, Store, Query, and Update) will conform to the SPARQL Protocol specification (e.g., they shall not recognize "format", "SPARQLQuery" parameters,
and other Strabon specific). Strabon specific parameters shall only be used in the visual HTML interface. Hence, the Beans will operate on the basis of "Accept" HTML
headers.

Now, there is a header for the TELEIOS logo and text description of the Strabon Endpoint. It is included in every .jsp file with a JSP directive. The file is named
"teleios-header.html".

With the introduction of these changes, I hope that nobody could ever mess the code again. :-) Of course, the human potential to messing is enormous.

Still, there is much refactoring to do in order to bring the endpoint at the state conforming to the above description (I have not messed much the functionality of the
visual interface, at least I suppose so. Accept my apologies in the case I have messed it).
author Babis Nikolaou <charnik@di.uoa.gr>
date Tue Jul 24 00:24:39 2012 +0300 (2012-07-24)
parents 65e4d6ffab1a
children 4a75a1fdd1c1
files endpoint/WebContent/WEB-INF/web.xml endpoint/WebContent/describe.jsp endpoint/WebContent/query.jsp endpoint/WebContent/store.jsp endpoint/WebContent/teleios-header.html endpoint/pom.xml
line diff
     1.1 --- a/endpoint/WebContent/WEB-INF/web.xml	Mon Jul 23 20:25:23 2012 +0300
     1.2 +++ b/endpoint/WebContent/WEB-INF/web.xml	Tue Jul 24 00:24:39 2012 +0300
     1.3 @@ -54,12 +54,38 @@
     1.4  		<servlet-name>Describe</servlet-name>
     1.5  		<url-pattern>/Describe</url-pattern>
     1.6  	</servlet-mapping>
     1.7 +	
     1.8 +	<servlet>
     1.9 +		<servlet-name>query.jsp</servlet-name>
    1.10 +		<jsp-file>/query.jsp</jsp-file>
    1.11 +	</servlet>
    1.12  		
    1.13  	<servlet>
    1.14  		<servlet-name>store.jsp</servlet-name>
    1.15  		<jsp-file>/store.jsp</jsp-file>
    1.16  	</servlet>
    1.17  	
    1.18 +	<servlet>
    1.19 +		<servlet-name>describe.jsp</servlet-name>
    1.20 +		<jsp-file>/describe.jsp</jsp-file>
    1.21 +	</servlet>
    1.22 + 
    1.23 +   	<mime-mapping>
    1.24 +       	<extension>kml</extension>
    1.25 +       	<mime-type>application/vnd.google-earth.kml+xml</mime-type>
    1.26 +   	</mime-mapping>
    1.27 +   	<mime-mapping>
    1.28 +       	<extension>kmz</extension>
    1.29 +       	<mime-type>application/vnd.google-earth.kmz</mime-type>
    1.30 +   	</mime-mapping>
    1.31 +	
    1.32 +	<session-config>
    1.33 +		<session-timeout>60</session-timeout>
    1.34 +	</session-config>
    1.35 +	<welcome-file-list>
    1.36 +		<welcome-file>query.jsp</welcome-file>
    1.37 +	</welcome-file-list>
    1.38 +	
    1.39  <!-- 	<servlet> -->
    1.40  <!-- 		<display-name>QueryServlet</display-name> -->
    1.41  <!-- 		<servlet-name>QueryServlet</servlet-name> -->
    1.42 @@ -70,20 +96,4 @@
    1.43  <!-- 		<servlet-name>QueryServlet</servlet-name> -->
    1.44  <!-- 		<url-pattern>/QueryServlet</url-pattern> -->
    1.45  <!-- 	</servlet-mapping> -->
    1.46 - 
    1.47 -    	<mime-mapping>
    1.48 -        	<extension>kml</extension>
    1.49 -        	<mime-type>application/vnd.google-earth.kml+xml</mime-type>
    1.50 -    	</mime-mapping>
    1.51 -    	<mime-mapping>
    1.52 -        	<extension>kmz</extension>
    1.53 -        	<mime-type>application/vnd.google-earth.kmz</mime-type>
    1.54 -    	</mime-mapping>
    1.55 -	
    1.56 -	<session-config>
    1.57 -		<session-timeout>60</session-timeout>
    1.58 -	</session-config>
    1.59 -	<welcome-file-list>
    1.60 -		<welcome-file>Query</welcome-file>
    1.61 -	</welcome-file-list>
    1.62  </web-app>
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/endpoint/WebContent/describe.jsp	Tue Jul 24 00:24:39 2012 +0300
     2.3 @@ -0,0 +1,61 @@
     2.4 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     2.5 +<jsp:directive.page import="eu.earthobservatory.org.StrabonEndpoint.StoreBean"/>
     2.6 +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     2.7 +<html>
     2.8 +	<head>
     2.9 +		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    2.10 +		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    2.11 +		<title>TELEIOS: Strabon Endpoint</title>
    2.12 +		<link rel="stylesheet" href="style.css" type="text/css"/> 
    2.13 +		<script type="text/javascript">
    2.14 +			function toggleMe(a) {
    2.15 +				var e = document.getElementById(a);
    2.16 +				if (!e) {
    2.17 +					return true;
    2.18 +				}
    2.19 +				if (e.style.display == "none") {
    2.20 +					e.style.display = "block"
    2.21 +				} else {
    2.22 +					e.style.display = "none"
    2.23 +				}
    2.24 +				return true;
    2.25 +			}
    2.26 +		</script>
    2.27 +	</head>
    2.28 +<body topmargin="0" leftmargin="0" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
    2.29 +
    2.30 +<!-- include TELEIOS header and description -->
    2.31 +<%@ include file="teleios-header.html"%>
    2.32 +<!-- include TELEIOS header and description -->
    2.33 +
    2.34 +<form enctype="UTF-8" accept-charset="UTF-8" method="post">
    2.35 +<table border="0" width="100%"><tr> 
    2.36 +<td width="90" valign="top" class="style4"> 
    2.37 +<table border="0" cellspacing="0" cellpadding="0" width="165" id="navigation"> 
    2.38 +<tr><td width="90" class="style4"><a href="query.jsp" class="navText">Query</a></td></tr> 
    2.39 +<tr><td width="90" class="style4"><a href="store.jsp" class="navText" title="Store triples">Store</a></td></tr> 
    2.40 +</table>
    2.41 +</td>
    2.42 +<td width="*" valign="top">
    2.43 +<table cellspacing="5">
    2.44 +<tr>
    2.45 +<td id="output">stSPARQL Query:</td>
    2.46 +<td id="output"><textarea name="SPARQLQuery" title="pose your DESCRIBE query here" rows="15" cols="100">
    2.47 +</textarea></td>
    2.48 +</tr>
    2.49 +<tr>
    2.50 +<td id="output"><center>Output Format:<br/>
    2.51 +<SELECT name="format" title="select one of the following RDF graph format types">
    2.52 +	<% for (String format : StoreBean.registeredFormats) {%>
    2.53 +		<OPTION value="<%=format%>"><%=format%></OPTION>
    2.54 +	<%}%>
    2.55 +</SELECT></center></td>
    2.56 +<td colspan=2><br/>
    2.57 +<center>
    2.58 +	<input type="submit" title="execute DESCRIBE query" value="Describe" name="submit" style="width: 400px"/><br/>
    2.59 +</center><br/></td>
    2.60 +</tr>
    2.61 +</table></td></tr></table><br/><br/>
    2.62 +</form>
    2.63 +</body>
    2.64 +</html>
    2.65 \ No newline at end of file
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/endpoint/WebContent/query.jsp	Tue Jul 24 00:24:39 2012 +0300
     3.3 @@ -0,0 +1,87 @@
     3.4 +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
     3.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     3.6 +<html>
     3.7 +<head>
     3.8 +	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
     3.9 +	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    3.10 +	<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
    3.11 +	<link rel="stylesheet" href="style.css" type="text/css" /> 
    3.12 +	<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    3.13 +	<script type="text/javascript">
    3.14 +		function toggleMe(a) {
    3.15 +			var e = document.getElementById(a);
    3.16 +			if (!e) {
    3.17 +				return true;
    3.18 +			}
    3.19 +			if (e.style.display == "none") {
    3.20 +				e.style.display = "block";
    3.21 +			} else {
    3.22 +				e.style.display = "none";
    3.23 +			}
    3.24 +			return true;
    3.25 +		}
    3.26 +	</script>
    3.27 +	<script type="text/javascript">
    3.28 +		function initialize() {
    3.29 +		  var brahames = new google.maps.LatLng(37.92253, 23.72275);
    3.30 +		  var myOptions = {
    3.31 +		    zoom: 11,
    3.32 +		    center: brahames,
    3.33 +			mapTypeId: google.maps.MapTypeId.ROADMAP
    3.34 +		  };
    3.35 +		
    3.36 +		  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    3.37 +		
    3.38 +		  var ctaLayer = new google.maps.KmlLayer('');
    3.39 +		  ctaLayer.setMap(map);
    3.40 +		}
    3.41 +	</script> 
    3.42 +	<title>TELEIOS: Strabon Endpoint</title>
    3.43 +</head>
    3.44 +<body topmargin="0" leftmargin="0" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" onload="initialize()">
    3.45 +
    3.46 +<!-- include TELEIOS header and description -->
    3.47 +<%@ include file="teleios-header.html"%>
    3.48 +<!-- include TELEIOS header and description -->
    3.49 +
    3.50 +<form enctype="UTF-8" accept-charset="UTF-8" method="post">
    3.51 +<table border="0" width="100%"><tr> 
    3.52 +<td width="90" valign="top" bgcolor="#dfe8f0"> 
    3.53 +<table border="0" cellspacing="0" cellpadding="0" width="165" id="navigation">  
    3.54 +<tr><td id="twidth">
    3.55 +<a href="Query?SPARQLQuery=%23+Discovering+raw+data+and+products%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Fontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0A%0ASELECT+%3Ffilename%0AWHERE+%7B%3Ffile+rdf%3Atype+noa%3AShpFile+%3B%0A%09+++++++++noa%3AhasFilename+%3Ffilename+%3B%0A%09+++++++++noa%3AhasAcquisitionTime+%3FsensingTime+.%0A%09+FILTER%28+str%28%3FsensingTime%29+%3E%3D+%222007-08-26T12%3A00%3A00%22+%29+.%0A%09+FILTER%28+str%28%3FsensingTime%29+%3C%3D+%222007-08-26T12%3A30%3A00%22+%29+.%0A%09+%3Ffile+noa%3AisDerivedFromSensor+%3Fsensor+.%0A%09+FILTER%28+str%28%3Fsensor%29+%3D+%22MSG2%22+%29+.%0A%09+%3Ffile+noa%3AproducedFromProcessingChain+%3Fchain+.%0A%09+FILTER%28+str%28%3Fchain%29+%3D+%22StaticThresholds%22+%29+.+%0A%7D&format=HTML"title="Find all shapefiles derived from sensor MSG2 between [2007-08-26T12:00:00,2007-08-26T12:30:00], using dynamic thresholds.">&nbsp;&middot;&nbsp;Query 1: Discover raw data and products</a><br/>
    3.56 +<a href="Query?SPARQLQuery=%23+Get+all+hotspots+%0A%23+-+in+Pelloponesus+%0A%23+-+at+2007-08-24%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Fontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0A%0ASELECT+%3Fh+%3FhAcqTime+%3FhConfidence+%3FhConfirmation+%3FhProvider+%3FhSensor+%3FhSatellite+%28strdf%3Atransform%28%3FhGeo%2C+%3Chttp%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F4326%3E%29+as+%3Fgeo%29+%0AWHERE+%7B+%3Fh+%09rdf%3Atype+noa%3AHotspot%3B%0A%09%09%09noa%3AhasGeometry+%3FhGeo%3B%0A%09%09%09noa%3AhasAcquisitionTime+%3FhAcqTime%3B%0A%09%09%09noa%3AhasConfidence+%3FhConfidence%3B%0A%09%09%09noa%3AisProducedBy+%3FhProvider%3B%0A%09%09%09noa%3AhasConfirmation+%3FhConfirmation%3B%0A%09%09%09noa%3AisDerivedFromSensor+%3FhSensor%3B%0A%09%09%09noa%3AisDerivedFromSatellite+%3FhSatellite+%3B%0A%09%09%09noa%3AproducedFromProcessingChain+%3FhChain+.%0A%09FILTER%28str%28%3FhChain%29+%3D+%22StaticThresholds%22%29.%0A%09FILTER%28%3FhAcqTime+%3D+%222007-08-24T14%3A45%3A00%22%5E%5Exsd%3AdateTime%29+.%0A%09FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5E+strdf%3AWKT%2C+%3FhGeo%29%29+.+%0A%7D&format=KMZMAP"title="Find all hotspots in Pelloponesus derived from the dynamic thresholds processing chain at 2007-08-24T14:45:00.  ">&nbsp;&middot;&nbsp;Query 2: Discover Hotspots</a><br/>
    3.57 +<a href="Update?SPARQLQuery=%23+Delete+hotspots+that+lie+in+sea%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Fontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0ADELETE+%7B%3Fh+%3Fproperty+%3Fobject%7D%0AWHERE+%7B+%3Fh+%09rdf%3Atype+noa%3AHotspot%3B%0A++++++++++++noa%3AhasAcquisitionTime+%3FhAcqTime%3B%0A++++++++++++noa%3AproducedFromProcessingChain+%3FhChain%3B%0A++++++++++++noa%3AhasGeometry+%3FhGeo%3B%0A++++++++++++%3Fproperty+%3Fobject.%0A++++++++FILTER%28str%28%3FhChain%29+%3D+%22StaticThresholds%22%29.%0A++++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5E+strdf%3AWKT%2C+%3FhGeo%29%29.%0A++++++++FILTER%28%222007-08-24T14%3A45%3A00%22%5E%5Exsd%3AdateTime+%3D+%3FhAcqTime%29.%0A++++++++OPTIONAL+%7B%0A++++++++++++%3Fc+rdf%3Atype+noa%3ACoastline%3B%0A+++++++++++++++noa%3AhasGeometry+%3FcGeo.%0A++++++++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5E+strdf%3AWKT%2C+%3FcGeo%29%29.%0A++++++++++++FILTER%28strdf%3AanyInteract%28%3FhGeo%2C+%3FcGeo%29%29+.+%0A++++++++%7D%0A++++++++FILTER%28%21bound%28%3Fc%29%29.+%0A%7D&format=HTML"title="Mark as invalid all hotspots produced by the static thresholds processing chain and are acquired at 2007-08-24T14:45:00 which are located in the sea">&nbsp;&middot;&nbsp;Update A: Invalidate hotspots in sea</a><br/>
    3.58 +<a href="Update?SPARQLQuery=%23+Refine+the+geometry+of+hotspots+that+partially+lie+in+sea%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E+%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E+%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E+%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E+%0A%0A%0AINSERT+%7B+%3Fh+noa%3AisDiscarded+%221%22%5E%5Exsd%3Aint+.+%0A%09+%3Fvalid+rdf%3Atype+noa%3AHotspot+%3B%0A%09%09noa%3AhasConfidence+%3Fconf+%3B%0A%09++++++++noa%3AhasGeometry+%3Fdif+%3B%0A%09%09noa%3AhasAcquisitionTime+%22TIMESTAMP%22%5E%5Exsd%3AdateTime+%3B+%0A%09++++++++noa%3AisDerivedFromSensor+%22SENSOR%22%5E%5Exsd%3Astring+%3B%0A%09%09noa%3AhasConfirmation+noa%3Aunknown+%3B%0A%09++++++++noa%3AproducedFromProcessingChain+%22PROCESSING_CHAIN%22%5E%5Exsd%3Astring+%3B+%0A%09%09noa%3AisProducedBy+noa%3Anoa+%3B%0A%09%09noa%3AisDerivedFromSatellite+%3Fsat+.%0A%7D%0AWHERE+%7B+%0A++SELECT+DISTINCT+%3Fh+%3FhGeo+%28strdf%3Aintersection%28%3FhGeo%2C+strdf%3Aunion%28%3FcGeo%29%29+AS+%3Fdif%29+%28BNODE%28%29+AS+%3Fvalid%29+%3Fconf+%3Fsat%0A++WHERE+%7B+%0A++++%3Fh+rdf%3Atype+noa%3AHotspot+%3B+%0A+++++++noa%3AhasAcquisitionTime+%3FhAcqTime+%3B+%0A+++++++noa%3AproducedFromProcessingChain+%22PROCESSING_CHAIN%22%5E%5Exsd%3Astring+%3B+%0A+++++++noa%3AisDerivedFromSensor+%22SENSOR%22%5E%5Exsd%3Astring+%3B%0A+++++++noa%3AhasGeometry+%3FhGeo+%3B%0A+++++++noa%3AhasConfidence+%3Fconf+%3B%0A+++++++noa%3AisDerivedFromSatellite+%3Fsat+.%0A++++FILTER%28%22TIMESTAMP%22%5E%5Exsd%3AdateTime+%3D+%3FhAcqTime%29+.%0A++++%3Fc+rdf%3Atype+noa%3ACoastline+%3B%0A+++++++noa%3AhasGeometry+%3FcGeo+.%0A++++FILTER%28strdf%3AanyInteract%28%3FhGeo%2C+%3FcGeo%29%29+.+%0A++%7D%0A++GROUP+BY+%3Fh+%3FhGeo+%3Fconf+%3Fsat%0A++HAVING+strdf%3Aoverlap%28%3FhGeo%2C+strdf%3Aunion%28%3FcGeo%29%29%0A%7D%0A&format=HTML"title="Refine hotspots acquired at 2007-08-24T14:45:00 removing the part that lies in the sea. ">&nbsp;&middot;&nbsp;Update B: Refine hotspots in sea</a><br/>
    3.59 +<a href="Query?SPARQLQuery=%23Get+all+coniferous+forests+in+Peloponnese%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Fontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0A%0ASELECT+%3Fa+%3FaGeo%0AWHERE%7B+%3Fa+rdf%3Atype+clc%3AArea%3B%0A++++++++++clc%3AhasLandUse+%3FaLandUse%3B%0A++++++++++noa%3AhasGeometry+%3FaGeo.%0A+++++++%3FaLandUse+rdf%3Atype+%3FaLandUseType.%0A+++++++FILTER%28%3FaLandUseType+%3D+clc%3AConiferousForest%29.%0A+++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5Estrdf%3AWKT%2C%3FaGeo%29%29.+%0A%7D&format=KMZMAP"title="Discover all coniferous forests using the clc ontology ">&nbsp;&middot;&nbsp;Query 3: Discover coniferous forests</a><br/>
    3.60 +<a href="Query?SPARQLQuery=%23+Get+all+municipalities+of+Pelloponnese%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Flontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0A%0ASELECT++%3Fd+%3FdGeo%0AWHERE+%7B+%3Fd+rdf%3Atype+gag%3ADhmos%3B+%0A+++++++++++strdf%3AhasGeometry+%3FdGeo%3B+%0A+++++++++++rdfs%3Alabel+%3FdLabel.+%0A+++++++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5E+strdf%3AWKT%2C+%3FdGeo%29%29.+%0A%7D&format=KMZMAP"title="Find all municipalities of Pelloponnese using kallikratis ontology ">&nbsp;&middot;&nbsp;Query 4: Discover primary roads</a><br/>
    3.61 +<a href="Query?SPARQLQuery=%23+Get+all+primary+roads+in+Pelloponnese%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Fontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0A%0ASELECT++%3Fr+%3FrGeo%0AWHERE+%7B+%3Fr+rdf%3Atype+%3FrType+%3B%0A+++++++++++noa%3AhasGeometry+%3FrGeo+.%0A++++++++FILTER%28%3FrType+%3D+lgdo%3APrimary%29+.%0A++++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C21.027+38.36%29%29%22%5E%5Estrdf%3AWKT%2C+%3FrGeo%29+%29.+%0A%7D&format=KMZMAP"title="Get all primary roads in Pelloponnese using the linked geodata ontology ">&nbsp;&middot;&nbsp;Query 5: Get all primary roads in Pelloponnese</a><br/>
    3.62 +<a href="Query?SPARQLQuery=%23+Get+all+hotspots+%0A%23+-+in+Pelloponesus+%0A%23+-+at+2007-08-24%0APREFIX+noa%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+clc%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FclcOntology.owl%23%3E%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0APREFIX+strdf%3A+%3Chttp%3A%2F%2Fstrdf.di.uoa.gr%2Fontology%23%3E%0APREFIX+teleios%3A+%3Chttp%3A%2F%2Fteleios.di.uoa.gr%2Fontologies%2FnoaOntology.owl%23%3E%0APREFIX+gag%3A+%3Chttp%3A%2F%2Fwww.semanticweb.org%2Fontologies%2F2011%2FgagKallikratis.rdf%23%3E%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E%0APREFIX+georss%3A+%3Chttp%3A%2F%2Fwww.georss.org%2Fgeorss%2F%3E%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0APREFIX+lgdo%3A+%3Chttp%3A%2F%2Flinkedgeodata.org%2Fontology%2F%3E%0APREFIX+gn%3A+%3Chttp%3A%2F%2Fwww.geonames.org%2Fontology%23%3E%0A%0ASELECT++%3Fh+%3FhAcqTime+%28strdf%3Atransform%28%3FhGeo%2C+%3Chttp%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F4326%3E%29+as+%3Fgeo%29+%0AWHERE+%7B+%3Fh+%09rdf%3Atype+noa%3AHotspot%3B%0A++++++++++++noa%3AhasGeometry+%3FhGeo%3B%0A++++++++++++noa%3AhasAcquisitionTime+%3FhAcqTime%3B%0A++++++++++++noa%3AproducedFromProcessingChain+%3FhChain+.%0A++++++++FILTER%28str%28%3FhChain%29+%3D+%22StaticThresholds%22%29.%0A++++++++FILTER%28%3FhAcqTime+%3D+%222007-08-24T14%3A45%3A00%22%5E%5Exsd%3AdateTime%29+.%0A++++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5E+strdf%3AWKT%2C+%3FhGeo%29%29+.+%0A++++++++%3Fa+rdf%3Atype+clc%3AArea%3B%0A+++++++++++clc%3AhasLandUse+%3FaLandUse%3B%0A+++++++++++noa%3AhasGeometry+%3FaGeo.%0A++++++++%3FaLandUse+rdf%3Atype+%3FaLandUseType.%0A++++++++FILTER%28%3FaLandUseType+%3D+clc%3AForest%29.%0A++++++++FILTER%28strdf%3Acontains%28%22POLYGON%28%2821.027+38.36%2C+23.77+38.36%2C+23.77+36.05%2C+21.027+36.05%2C+21.027+38.36%29%29%22%5E%5Estrdf%3AWKT%2C%3FaGeo%29%29.+%0A++++++++FILTER%28strdf%3Aoverlap%28%3FaGeo%2C+%3FhGeo%29%29+.+%0A%7D&format=KMZMAP"title="Find all hotspots located in Pelloponnesian forests and acquired at 2007-08-24T14:45:00 using static thresholds processing chain ">&nbsp;&middot;&nbsp;Query 6: Discover hotspots</a><br/>
    3.63 +</td></tr>
    3.64 +<tr><td width="90" class="style4"><a href="describe.jsp" class="navText">Describe</a></td></tr>
    3.65 +<tr><td width="90" class="style4"><a href="store.jsp" class="navText" title="Store triples">Store</a></td></tr> 
    3.66 +</table>
    3.67 +</td>
    3.68 +<td width="*" valign="top" >
    3.69 +<table cellspacing="5">
    3.70 +<tr>
    3.71 +<td id="output">stSPARQL Query:</td>
    3.72 +<td id="output"><textarea name="SPARQLQuery" title="pose your query/update here" rows="15" cols="100">
    3.73 +</textarea></td>
    3.74 +</tr>
    3.75 +<tr>
    3.76 +<td id="output"><center>Output Format:<br/><select name="format" title="select one of the following output format types">
    3.77 +<option  value="KMLMAP">HTML with google maps (kml)</option>
    3.78 +<option  value="GEOJSON">GeoJSON</option>
    3.79 +<option selected value="HTML">HTML</option>
    3.80 +<option  value="KMZMAP">HTML with google maps (kmz)</option>
    3.81 +<option  value="XML">XML</option>
    3.82 +<option  value="KML">KML plain text</option>
    3.83 +<option  value="KML file">KML file</option>
    3.84 +</select></center></td>
    3.85 +<td colspan=2><br/><center><input type="submit" title="execute query" value="Query" name="submit" /><br/><input type="submit" title="execute update" value="Update" name="submit" style="width: 400px"/></center><br/></td>
    3.86 +</tr>
    3.87 +</table></td></tr></table><br/><br/>
    3.88 +</form>
    3.89 +</body>
    3.90 +</html>
     4.1 --- a/endpoint/WebContent/store.jsp	Mon Jul 23 20:25:23 2012 +0300
     4.2 +++ b/endpoint/WebContent/store.jsp	Tue Jul 24 00:24:39 2012 +0300
     4.3 @@ -2,53 +2,44 @@
     4.4  <jsp:directive.page import="eu.earthobservatory.org.StrabonEndpoint.StoreBean"/>
     4.5  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4.6  <html>
     4.7 -<head>
     4.8 -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     4.9 -<link rel="stylesheet" href="style.css" type="text/css" /> 
    4.10 -<title>TELEIOS: Strabon Endpoint</title>
    4.11 -</head>
    4.12 +	<head>
    4.13 +		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    4.14 +		<link rel="stylesheet" href="style.css" type="text/css" />
    4.15 +		 
    4.16 +		<script type="text/javascript">
    4.17 +			function toggleMe(a) {
    4.18 +				var e = document.getElementById(a);
    4.19 +				if (!e) {
    4.20 +					return true;
    4.21 +				}
    4.22 +				if (e.style.display == "none") {
    4.23 +					e.style.display = "block";
    4.24 +				} else {
    4.25 +					e.style.display = "none";
    4.26 +				}
    4.27 +				return true;
    4.28 +			}
    4.29 +		</script>
    4.30 +		<title>TELEIOS: Strabon Endpoint</title>
    4.31 +	</head>
    4.32  <body topmargin="0" leftmargin="0" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
    4.33 -  <TABLE width="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
    4.34 -    <TR>
    4.35 -		
    4.36 -      <TD height="16" background="images/pixi_white.gif"><img src="images/pixi_white.gif" width="16" height="16"></TD>
    4.37 -	</TR>
    4.38 -	<TR>
    4.39 -      <TD height="1" background="images/top_bg_blue.gif"></TD>
    4.40 -	</TR>		
    4.41 -	<TR>
    4.42 -      <TD height="60" background="images/nav2_bg.gif"> 
    4.43 -        <table width="100%" border="0">
    4.44 -         <tr>
    4.45 -            <td width="1"><img src="images/nav2_bg.gif" width="1" height="60"></td>
    4.46 -            <td valign="top" width="80px"><img border="0" src="images/teleios_logo.png"/></td>
    4.47 -            <td valign="top" align="left">
    4.48 -            <span class="logo">Strabon Endpoint</span><br><span class="style4">based on Strabon</span></td>
    4.49 -          </tr>
    4.50 -        </table> </TD>
    4.51 -	</TR>
    4.52 -	<TR>
    4.53 -      <TD height="21" background="images/nav1_bg1.gif">
    4.54 -      </TD>
    4.55 -	</TR>
    4.56 -	<TR>
    4.57 -      <TD height="2" background="images/top_bg_blue.gif"></TD>
    4.58 -	</TR>
    4.59 -</TABLE>
    4.60 +
    4.61 +<!-- include TELEIOS header and description -->
    4.62 +<%@ include file="teleios-header.html"%>
    4.63 +<!-- include TELEIOS header and description -->
    4.64  
    4.65  <FORM method="get" action=Store>
    4.66  <INPUT type=hidden name="<%=StoreBean.SRC_REQ%>" value="browser"/>
    4.67  
    4.68  <TABLE border="0" width="100%">
    4.69 -<tr> 
    4.70 -	<td width="90" valign="top" bgcolor="#dfe8f0"> 
    4.71 +<TR> 
    4.72 +	<TD width="90" valign="top" class="style4"> 
    4.73  		<TABLE border="0" cellspacing="0" cellpadding="0" width="165" id="navigation">
    4.74 -			<tr><td width="90" class="style4"><a href="Query" class="navText">Query</a></td></tr> 
    4.75 -			<tr><td width="90" class="style4"><a href="Describe?format=HTML" class="navText">Describe</a></td></tr>
    4.76 -			<tr><td width="90" class="style4"><a href="javascript:history.go(0)" class="navText">Clear</a></td></tr> 
    4.77 +			<TR><TD width="90" class="style4"><a href="query.jsp" class="navText">Query</A></TD></TR> 
    4.78 +			<TR><TD width="90" class="style4"><a href="describe.jsp" class="navText">Describe</A></TD></TR>
    4.79  		</TABLE>
    4.80 -	</td>
    4.81 -	<td width="*" valign="top" >
    4.82 +	</TD>
    4.83 +	<td width="*" valign="top" class="style4">
    4.84  		<TABLE cellspacing="5">
    4.85  <%
    4.86  	if (request.getParameter(StoreBean.DATA_ERROR) != null) {
    4.87 @@ -128,4 +119,4 @@
    4.88  </FORM>
    4.89  <br/><br/><br/><br/><br/>
    4.90  </BODY>
    4.91 -</HTML>
    4.92 +</HTML>
    4.93 \ No newline at end of file
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/endpoint/WebContent/teleios-header.html	Tue Jul 24 00:24:39 2012 +0300
     5.3 @@ -0,0 +1,44 @@
     5.4 +<TABLE width="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0>
     5.5 +    <TR>
     5.6 +      <TD height="16" background="images/pixi_white.gif"><img src="images/pixi_white.gif" width="16" height="16"></TD>
     5.7 +	</TR>
     5.8 +	<TR>
     5.9 +      <TD height="1"></TD>
    5.10 +	</TR>		
    5.11 +	<TR>
    5.12 +      <TD height="60" background="images/nav2_bg.gif"> 
    5.13 +        <table width="100%" border=0>
    5.14 +         <tr>
    5.15 +            <td width="1"><img src="images/nav2_bg.gif" width="1" height="60"></td>
    5.16 +            <td valign="top" width="80px"><img border="0" src="images/teleios_logo.png" /></td>
    5.17 +            <td valign="top" align="left">
    5.18 +            <span class="logo">&nbsp;stSPARQL Endpoint</span><br><span class="style4"></span></td>
    5.19 +          </tr>
    5.20 +        </table>
    5.21 +      </TD>
    5.22 +	</TR>
    5.23 +	<TR>
    5.24 +      <TD height="50" id="intro">
    5.25 +On this page you can execute stSPARQL queries against the Strabon backend. 
    5.26 +The dataset is based on  the following ontologies: 
    5.27 +<a href="http://harmonisa.uni-klu.ac.at/content/land-use-land-cover-ontologies">Corine Land Cover</a>, 
    5.28 +<a>Greek Administrative Geography (Kallikratis)</a>, 
    5.29 +<a href="http://labs.mondeca.com/dataset/lov/details/vocabulary_lgdo.html">Linked Geodata</a>, and 
    5.30 +<a href="http://www.geonames.org/search.html?q=ontology&country=">Geonames</a>.
    5.31 +We also use the <a href="images/graph.png">NOA ontology</a> we developed for the 
    5.32 +<a href="http://www.space.noa.gr/">NOA</a> use case of the European FP7 project 
    5.33 +<a href="http://www.earthobservatory.eu/">TELEIOS</a>. 
    5.34 +<a onclick="return toggleMe('par')">(More)</a> <br>
    5.35 +
    5.36 +<p id="par">In this context NOA has been developing a real-time fire hotspot detection service for effectively monitoring 
    5.37 +a fire-front. The technique is based on the use of acquisitions originating from the SEVIRI (Spinning Enhanced Visible and 
    5.38 +Infrared Imager) sensor, on top of MSG-1 (Meteosat Second Generation satellite, renamed to Meteosat-8) and MSG-2 (renamed 
    5.39 +to Meteosat-9) satellite platforms. Since 2007, NOA operates an MSG/SEVIRI acquisition station, and has been systematically
    5.40 +archiving raw satellite images on a 5 and 15 minutes basis, the respective temporal resolutions of MSG-1 and MSG-2. The 
    5.41 +acquired data are then annotated using the stRDF model and can be queried using the stSPARQL query language.</p>
    5.42 + 
    5.43 +On the left sidebar, some example stSPARQL queries are provided. The NOA use case is described in more detail in the VLDB
    5.44 +application paper <a href="">here</a>. 
    5.45 +      </TD>
    5.46 +	</TR>
    5.47 +</TABLE>
    5.48 \ No newline at end of file
     6.1 --- a/endpoint/pom.xml	Mon Jul 23 20:25:23 2012 +0300
     6.2 +++ b/endpoint/pom.xml	Tue Jul 24 00:24:39 2012 +0300
     6.3 @@ -184,6 +184,9 @@
     6.4  							<includes>
     6.5  								<include>style.css</include>
     6.6  								<include>store.jsp</include>
     6.7 +								<include>query.jsp</include>
     6.8 +								<include>describe.jsp</include>
     6.9 +								<include>teleios-header.html</include>
    6.10  							</includes>
    6.11  						</resource>
    6.12