<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
	$pageTitle 		= "SMILA - Downloads";
	$pageKeywords	= "SMILA, unstructured information management, information logistics, semantic web, framework, platform, eclipse";
	$pageAuthor		= "Igor Novakovic";

	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Downloads</h1>
		<h2>Releases</h2>
		<p>
			The SMILA project has not published any release yet.
		</p>
		<h2>Milestones</h2>
		<h3>0.5 M3</h3>
		<p>
			The milestone <b>0.5 M3</b> is the latest stable version of SMILA.
			<ul>
				<li>Linux binaries: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/0.5-M3/SMILA-incubation-0.5-M3-linux.gtk.x86.zip">SMILA-incubation-0.5-M3-linux.gtk.x86.zip</a></li>				
				<li>Win32 binaries: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/0.5-M3/SMILA-incubation-0.5-M3-win32.win32.x86.zip">SMILA-incubation-0.5-M3-win32.win32.x86.zip</a></li>				
			</ul>
		</p>
		<h3>0.5 M2</h3>
		<p>
			<ul>
				<li>Linux binaries: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/0.5-M2/SMILA-incubation-0.5-M2-linux.gtk.x86.zip">SMILA-incubation-0.5-M2-linux.gtk.x86.zip</a></li>				
				<li>Win32 binaries: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/0.5-M2/SMILA-incubation-0.5-M2-win32.win32.x86.zip">SMILA-incubation-0.5-M2-win32.win32.x86.zip</a></li>				
			</ul>
		</p>
		<h3>0.5 M1</h3>
		<p>
			<ul>
				<li>Linux binaries: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/0.5-M1/SMILA-incubation-0.5-M1-linux.gtk.x86.zip">SMILA-incubation-0.5-M1-linux.gtk.x86.zip</a></li>				
				<li>Win32 binaries: <a href="http://www.eclipse.org/downloads/download.php?file=/rt/smila/milestones/0.5-M1/SMILA-incubation-0.5-M1-win32.win32.x86.zip">SMILA-incubation-0.5-M1-win32.win32.x86.zip</a></li>				
			</ul>
		</p>
		<h2>Nightly builds</h2>
		<p>
			The nightly builds are provided for now only for Linux and Windows. Please note that these builds 
			have not been tested and that they actually reflect the status of the current development branch. 
			<ul>
				<li><a href="http://build.eclipse.org/rt/smila/nightly/">SMILA nightly builds</a></li>				
			</ul>
		</p>
	</div>
	  
	<div id="rightcolumn">
    	<div class="sideitem">
       		<h6>Incubation</h6><p>
       		<div align="center">
         		<a href="/projects/what-is-incubation.php">
           		<img align="center" src="/images/egg-incubation.png" border="0"/></a>
       		</div>
     	</div>
	  	<div class="sideitem">
			<h6>Links</h6>
			<ul>
				<li><a href="http://wiki.eclipse.org/SMILA" target="_blank">Wiki</a></li>				
				<li><a href="http://www.eclipse.org/proposals/eilf/SMILA_Creation_Review.pdf" target="_blank">Creation Review</a></li>
				<li><a href="http://www.eclipse.org/proposals/eilf" target="_blank">Project proposal</a></li>
				<li><a href="http://live.eclipse.org/node/734" target="_blank">EclipseCon 09: SMILA - Make Sense of your Data</a></li>
				<li><a href="http://live.eclipse.org/node/617" target="_blank">Webinar</a></li>
			</ul>
		</div>
	</div>	

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
