<?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'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Denis Roy
	# Date:			2005-06-16
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "SMILA";
	$pageKeywords	= "SMILA, unstructured information management, information logistics, semantic web, framework, platform, eclipse";
	$pageAuthor		= "Igor Novakovic";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>SMILA - SeMantic Information Logistics Architecture</h1>
		<h2>Unleashing the potential of unstructured data sources</h2>
		<p>
			The amount and diversity of information is growing exponentially, mainly in <br>
			the area of unstructured data, like emails, text files, blogs, images etc.
		</p>
		<p>
			Poor data accessibility, user rights integration and the lack of semantic meta <br>
			data are constraining factors for building next generation enterprise search <br>
			and other document centric applications. Missing standards result in proprietary <br>
			solutions with huge short and long term cost.
		</p>
		<p>
			<b>SMILA</b> is an extensible framework for building search solutions to access <br>
			unstructured information in the enterprise. Besides providing essential <br>
			infrastructure components and services, <b>SMILA</b> also delivers ready-to-use <br>
			add-on components, like connectors to most relevant data sources.
		</p>
			Using the framework as their basis will enable developers to concentrate <br>
			on the creation of higher value solutions, like semantic driven applications etc.
		<p>
		</p>
			The long term goal of <b>SMILA</b> is to establish an industry standard by attracting<br> 
			as many parties as possible to use the framework and/or participate in the <br>
			surrounding eco-system.
		<p>
		<img src="images/SMILA_Architecture_Overview.png">	  
		<div class="homeitem3col">
			<h3>News</h3>
			<h4>Still to come...</h4>
			<p>
			</p> 
		</div>
	</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 class="sideitem">
			<h6>Events:</h6>
			<div align="center">
				<a href="http://www.eclipsecon.org/2008/">
					<img border="0" src="http://www.eclipsecon.org/2008/image/125x72.gif"
 					height="72" width="125" alt="EclipseCon 2008"/>
 				</a>
 			</div>			
		</div>	
	</div>	

EOHTML;


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