<?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>SMILA - SeMantic Information Logistics Architecture</h1>
		<h2>Downloads</h2>
		<p>
			SMILA's sources and 3rd-party libraries are currently going through the eclipse IP due diligence process. 
			Since SMILA has a lots of 3rd-party dependencies (we've submitted 84 CQs for 3rd-party) this process will 
			definitely take some time to complete. As soon as one CQ gets the "allowed to check-in" flag, we immediately 
			commit the corresponding library into our SVN repository. This means that, as long as all of our CQs are not 
			approved to be checked in you are not able to compile SMILA sources (because some code dependencies are not 
			fulfilled) and we cannot offer any nightly builds on eclipse download platform too.
		</p>
		<p>
			But, if your are eager to see the current implementation of SMILA in action, you have the possibility to download 
			integration and nightly builds from external website (the infrastructure that we've been using to develop SMILA from 
			the project start).
			<h3>Important</h3>
			<h4>Disclaimer:</h4>
			By following the download link you are leaving eclipse website. Eclipse Foundation is responsible for any content
			found there. To leave eclipse website and access to current development non-published SMILA binaries, please 
			click <a href="http://www.brox.de/en/products/smila.jsp" target="_blank">here</a>. 
		</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">Project 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>
			</ul>
		</div>
	</div>	

EOHTML;


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