<?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());
	
	$pageTitle 		= "SMILA - Unified Information Access Architecture";
	$pageKeywords	= "SMILA, Unified Information Access Architecture, unstructured information management, information logistics, semantic web, framework, platform, architecture, eclipse, data, unstructured data, semantics, semantic, project, open source, information, workflow, data connectors, storage, search, search engine, integration, message queue, connectivity, delta indexing, ontology management, ontology, osgi, runtime, scalability, performance, cloud, cluster, commodity hardware deployment, java, remote, metadata, binary storage, record storage, record, big data, bigdata";
	$pageAuthor		= "Andreas Weber";

	# Paste your HTML content between the EOHTML markers!
	$html = <<<EOHTML

	<div id="midcolumn">
		<p>
			<img src="logo/SMILA_Tagline_Large.jpg" alt="SMILA logo" width="316" height="90">
		</p>
		<h2>Unleashing the potential of unstructured data sources</h2>
		<p>
			The amount and diversity of information is growing exponentially (big data), mainly in the area of unstructured data,
			like emails, text files, blogs, images, etc. Poor data accessibility, user rights integration and the lack of
			semantic meta data are constraining factors for building next generation enterprise search and other document
			centric applications. Missing standards result in proprietary solutions with huge short and long term cost.
		</p>
		<p>
			<b>SMILA</b> is an extensible framework for building big data and/or search solutions to access and process unstructured information in
			the enterprise. Besides providing essential infrastructure components and services, SMILA also delivers
			ready-to-use add-on components, like connectors to most relevant data sources. Using the framework as their
			basis will enable developers to concentrate on the creation of higher value solutions, like semantic driven
			applications etc.
		</p>
		<h2>SMILA Architecture</h2>
		<p>
			<a href="http://wiki.eclipse.org/SMILA/Architecture_Overview">
				<img src="images/SMILA_Architecture_Overview.png" alt="SMILA Architecture Overview" align="middle" width="600" height="424">
			</a>
		</p>
		<div class="homeitem3col">
			<h3>News</h3>
			
			<h4>2014-12-01 - 1.3-M1 available</h4>
			<p>
				Today we <a href="downloads.php">published the milestone M1</a> of the upcoming <a href="plan.php">release 1.3</a>. 
				The milestone contains the new <a href="http://wiki.eclipse.org/SMILA/Documentation/Scripting">scripting engine</a> based on JavaScript, which can be used for all kinds of synchronous processing.  
				It can also be seen as a (recommended) alternative for BPEL, while being faster, more flexible and easier to use. 
				The milestone M1 doesn't contain the Solr 4 integration yet, this will be finished in the next weeks. 
				As always, please try it out and give us your feedback.
			</p>
			<h4>July 2013 - Announcement for SMILA presentation in Berlin</h4>
			<p>
			    On 20th of August there will be a SMILA presentation at the Fraunhofer Heinrich-Hertz-Institut in Berlin: 
			    <a href="http://www.ebusiness-lotse-berlin.de/termine/termin/d/2013/08/20/a/informationsgewinnung-mit-semantischen-technologien-die-anwendung-smila/">Informationsgewinnung mit semantischen Technologien - die Anwendung SMILA</a>. 
				The participation is free, feel free to register and attend the event.				
			</p>
			<h4>April 2013 - SMILA 1.2 released!</h4>
			<p>
				Today we released <a href="downloads.php">SMILA 1.2</a>! 
				The major new features of this release are the integration of Apache Tika for extracting text from binary content and a lot of enhancements in the importing components (JDBC and Web Crawler, Remote crawling). 
				As always, please try it out and give us your feedback.
			</p>			
			<h4>February 2013 - 1.2-M1 available!</h4>
			<p>
				Today we published the milestone M1 of the upcoming <a href="plan_archive.php">release 1.2</a>.
				The major new features are the integration of Apache Tika for extracting text from binary content and crawling enhancements for Web- and JDBC-Crawler. As always, please try it out and give us your feedback.
			</p>
			<h4>July 2012 - Release 1.1 is out!</h4>
			<p>
				We are proud to announce the <a href="downloads_archive.php">SMILA release 1.1</a>. The major new features are the
				migration of file, web, JDBC and feed crawler implementations to self-scaling ETL and the integration of Solr 3.5. As always, please try it out and give us your feedback.
			</p>
			<h4>June 2012 - YourKit donates free licenses for its Java Profiler</h4>
			<p>
				We are happy to announce that thanks to YourKit's donation we are now able to profile and further improve SMILA!
				<br><br>
				<i>
					YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. 
					Take a look at YourKit's leading software products: <a href="http://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a> and <a href="http://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a>.
				</i>
			</p>
			<h4>June 2012 - 1.1 M1 is out!</h4>
			<p>
				Today on 6th June we have published our first milestone of the upcoming release 1.1. The major new features are the
				migration of file system and web crawler implementations to self-scaling ETL and the integration of Solr 3.5. As always, please try it out and give us your feedback.
			</p>
			<h4>April 2012 - Announcement for SMILA conference in Berlin</h4>
			<p>
				Curious about what has been done in SMILA in the last two releases and who and how has been using SMILA? Then you should visit our <a href="http://www.theseus-programm.de/de/1867.php">SMILA conference in Berlin</a> on 15th May.
				Make sure to register early at innovationszentrum@theseus-programm.de, since the number of participants is limited. 
			</p>
			<h4>March 2012 - Announcement for SMILA tutorial in Berlin</h4>
			<p>
				Demand for SMILA tutorials is growing, so we decided to organize another one in May. This time the tutorial will take place in Berlin, Germany at 
				<a href="http://theseus-programm.de/de/veranstaltungentiz.php" target="_blank">TIZ</a> on 14th May starting at 13:30.
				The participation is free, but since the number of participants is limited, make sure to register early at innovationszentrum@theseus-programm.de. 
			</p>
			
			
			<!--
			<h4>February 2012 - Meet us at CeBIT 2012, Hall  26, <a href="http://www.theseus-programm.de/de/cebit_2012.php" target="_blank">Theseus Program Booth</a> and join our tutorials</h4>
			<p>
				This year not only that you will be able to meet and talk to us, but we will also organize two 
				<a href="http://www.theseus-programm.de/documents/CeBIT2012-SMILA-Tutorial.pdf" target="_blank">SMILA tutorials</a> on 8th and 9th March starting both at 2PM.
				The participation is free, but the number of participants is limited so make sure to register early at innovationszentrum@theseus-programm.de. 
			</p>						
			<h4>February 2012 - SMILA 1.0 released!</h4>
			<p>
				We are happy to announce that after almost four years of development, SMILA finally graduated and left the incubator. There is only one major feature this time: Self-scalable ETL. 
				But since this is our first major release, the emphasis is on the API stability and longevity. Thanks to all committers, contributors, and users of SMILA for their contributions and support!
				As always, we are kindly asking you to try it out and give us your feedback. Enjoy!
			</p>						
			<h4>October 2011 - Release 0.9 is out!</h4>
			<p>
				Our third official release is out! This release brings two new features: The new asynchronous workflows and REST APIs of major core components. Besides 
				that we also provided a proof of concept for running BPEL designer on RAP. Please try it out and give us your feedback. Enjoy!
			</p>			
			<h4>SMILA tutorial at LWA 2011</h4>			
			<p>
				This year we were also invited to LWA. So if you like to get some deeper insights in SMILA's architecture and gain some practical experience in
				writing components for SMILA, then we kindly invite you to take part in our tutorial
				<a href="http://lwa2011.dke-research.de/index.php/program/tutorials/81-smila-tutorial.html" target="_blank">Mastering Unstructured Information with SMILA - the Unified Information Access Architecture</a>
				at
				<a href="http://lwa2011.dke-research.de/" target="_blank">LWA 2011</a>.
			</p>
			<h4>0.9 M1 is out!</h4>
			<p>
				Today on 12th September we have published our first milestone of the upcoming release 0.9. The major new features are the
				new asynchronous workflows and REST APIs of major core components. As always, please try it out and give us your feedback.
			</p>
			<h4>Second Eclipse DemoCamp in Kaiserslautern, Germany</h4>
			<p>
				On the 24th of November the second Eclipse DemoCamp in Kaiserslautern, Germany will take place. As always,
				anything related to Eclipse projects is welcome. Come, listen and network:
				<a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2011/Kaiserslautern" target="_blank">Eclipse DemoCamp 2011 in Kaiserslautern, Germany</a>.
			</p>
			<h4>Release 0.8 is out!</h4>
			<p>
				Our second official release is finally out! This release brings two new features: The extension of BPEL designer for comfortably 
				editing SMILA workflows and the	simplification of the data model. Please try it out and give us your feedback. Enjoy!
			</p>
			<h4>0.8 M1 is out!</h4>
			<p>
				As planned, today on 31st March we have published our first milestone of the upcoming release 0.8. The major new features are the
				BPEL editor extensions and the new and simplified data model. As always, please try it out and give us your feedback.
			</p>
			<h4>SMILA finally got a logo!</h4>
			<p>
				Thanks to community contribution and a public vote SMILA has finally got its own logo. We hope you'll like it as much as we do.
			</p>
			<h4>SMILA has a new tagline: Unified Information Access Architecture</h4>
			<p>
				Since the original tagline was not accepted well by the community we have chosen a new one which hopefully better reflects SMILA's nature.
			</p>
			<p>
				This year we were lucky to get two talks dealing with SMILA: 
				<a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1832" target="_blank">Building Cloud Applications with Eclipse</a> 
				which demonstrates the powerful symbiosis of several Eclipse projects (SMILA, g-Eclipse, RAP and p2) when it comes to building and managing a
				search application deployed in the cloud and  
				<a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1805" target="_blank">SMILA - The Search Framework</a>
				which provides a brief overview of the first official release SMILA 0.7 and demonstrates some of its features in live action. 
			</p>
			<h4>Meet us at CeBIT 2011, Hall  9, Theseus Program Booth!</h4>
			<h4>Meet us at Eclipse Summit Europe 2010 and see SMILA in the Cloud!</h4>
			<p>
				This year we were lucky to get two talks dealing with SMILA: 
				<a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1832" target="_blank">Building Cloud Applications with Eclipse</a> 
				which demonstrates the powerful symbiosis of several Eclipse projects (SMILA, g-Eclipse, RAP and p2) when it comes to building and managing a
				search application deployed in the cloud and  
				<a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&id=1805" target="_blank">SMILA - The Search Framework</a>
				which provides a brief overview of the first official release SMILA 0.7 and demonstrates some of its features in live action. 
			</p>
			<h4>SMILA tutorial at LWA 2010</h4>
			<p>
				Since our tutorial at LWA 2009 awoke a lot of interest, we are invited to hold another one on this 
				years LWA. So if you missed last years tutorial but still would like to get some deeper insights in current SMILA development 
				and gain some practical experience in writing components for SMILA, then we kindly invite you to take part in our tutorial
				<a href="http://www.kde.cs.uni-kassel.de/conf/lwa10/tutorial.html" target="_blank">Mastering Unstructured Information with SMILA - the SeMantic Information Logistics Architecture</a>
				at
				<a href="http://www.kde.cs.uni-kassel.de/conf/lwa10" target="_blank">LWA 2010</a>.
			</p>
			<h4>SMILA's first release is finally out!</h4>
			<p>
				After more than 20 months of intensive development and completion of an extreme long IP process (we broke all 
				the records by submitting more than the hundred CQs), we have fulfilled all the preconditions and finally got 
				the permission to publish our first release with the version number 0.7. Besides very good stability this 
				release brings also two new features: Web Service API support and Apache Solr integration (access to Apache 
				Solr's REST API). As always, please try it out and give us your feedback. Enjoy!

			</p>
			<h4>Meet us at EclipseCon 2010 and see SMILA in the Cloud!</h4>
			<p>
				Since one of SMILA's key features is the parallelization of processes/workflows than the normal thing to do
				would be to deploy SMILA in some kind of distributed environment like the Cloud. For this year's EclipseCon talk
				<a href="http://www.eclipsecon.org/2010/sessions/?page=sessions&id=1388" target="_blank">Searching the Cloud - the EclipseRT Umbrella!</a>
				we joined forces with our g-Eclipse and RAP friends and built a search application that runs in Amazon's EC2.
				If you are visiting	EclipseCon 2010 or will be somewhere near Santa Clara, CA on Monday next week, we kindly
				invite you to come and see how a powerful cloud applications can be built by leveraging existing EclipseRT and
				Eclipse Technology projects.
			</p>
			<h4>SMILA @ Eclipse DemoCamps in Germany</h4>
			<p>
				In the last weeks we have shown several demos with/about SMILA at Eclipse DemoCamps in Germany. Please have a look at the following urls:
			<ul>
				<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Braunschweig/Hanover" target="_blank"> Eclipse DemoCamp in Braunschweig</a></li>
				<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Kaiserslautern" target="_blank"> Eclipse DemoCamp in Kaiserslautern</a></li>
				<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Berlin" target="_blank"> Eclipse DemoCamp in Berlin</a></li>
				<li><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Karlsruhe" target="_blank"> Eclipse DemoCamp in Karlsruhe</a></li>
			</ul>
			</p>
			<h4>First Eclipse DemoCamp in Kaiserslautern, Germany</h4>
			<p>
				On the 26th of November the first Eclipse DemoCamp in Kaiserslautern, Germany will take place. Join us.
				Anything related to Eclipse projects is welcome. May it be a slideware or hands on. Just curious? Come,
				listen and network:
				<a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Kaiserslautern" target="_blank">Eclipse DemoCamp in Kaiserslautern, Germany</a>.
			</p>
			<h4>SMILA tutorial at LWA 2009!</h4>
			<p>
				If you would like to get some deeper understanding of SMILA's architecture and gain some practical experience in
				writing components for SMILA, then we kindly invite you to take part in our tutorial
				<a href="http://lwa09.informatik.tu-darmstadt.de/bin/view/LWA/Tutorial" target="_blank">Mastering Unstructured Information with SMILA</a>
				at
				<a href="http://lwa09.informatik.tu-darmstadt.de/bin/view/LWA/WebHome" target="_blank">LWA 2009</a>.
			</p>
			<h4>Meet us at Eclipse Summit Europe 2009 and see SMILA in action!</h4>
			<p>
				You were not able to visit EclipseCon 2009 and see our talk? No problem! In our next talk
				<a href="https://www.eclipsecon.org/summiteurope2009/sessions?id=876" target="_blank">SMILA - The Integration Framework</a>
				at Eclipse Summit Europe 2009 we will give you an update on the latest development efforts and present you
				several demo applications realized by integrating powerful recognition and extraction technologies in SMILA.
			</p>
			<h4>0.5 M3 is out!</h4>
			<p>
				As announced, today on 31st July we have published our third milestone 0.5 M3. The major new features are the
				bulk operations (to increase the throughput of data), two new data source connectors: XML and Job file and an
				alternative implementation of the binary storage based on JPA. Besides that we use now Eclipse 3.5 (Galileo)
				as a base for SMILA and we switched the development	to JDK 6. As always, please try it out and give us your feedback.
			</p>
			<h4>0.5 M2 is out!</h4>
			<p>
				Right on time, today on 29th May we have published our second milestone 0.5 M2. The major new features are the
				compound management and two new data source connectors: RSS and Atom agent. So give it a try and tell us what
				you think.
			</p>
			<h4>Our EclipseCon's session recording is now available on Eclipse Live</h4>
			<p>
				You couldn't make it to our EclipseCon session? No problem!
				A couple of days ago Eclipse foundation released the recording of our talk
				<a href="http://live.eclipse.org/node/734" target="_blank">SMILA - make sense of your data</a>.
			</p>
			<h4>SMILA's first milestone is out!</h4>
			<p>
				Just as planed, today on 23rd March we have published our first milestone 0.5 M1. So if you are interested in SMILA
				please try it out and give us your feedback.
			</p>
			<h4>Meet us at EclipseCon 2009 and see SMILA in action!</h4>
			<p>
				In case that you'll be visiting EclipseCon 2009 we kindly invite you to come to our long talk
				<a href="http://www.eclipsecon.org/2009/sessions?id=398" target="_blank">SMILA - make sense of your data</a>. <br>
				Apart from giving the short introduction to the project, the focus of this talk will be the demonstration of
				several example use cases which can be realized with SMILA. In brief: We wanted this time to concentrate on
				really cool stuff - for example indexing and search of chemical compounds (molecules) and their visualization.
			</p>
			<h4>SMILA initiative gains new supporters</h4>
			<p>
				After getting support from the German Research Center for Artificial Intelligence
				(<a href="http://www.dfki.de/" target="_blank">DFKI</a>) right after SMILA's creation review, now we are
				very pleased to announce that SMILA has got two new supporters: <a href="http://www.attensity.com/" target="_blank">Attensity</a>
				and <a href="http://www.living-e.de/" target="_blank">living-e</a>. <br>
				<br>
				This is the short excerpt from the official press release:<br>
				<i>
				"Retroactive to January 1, 2009, the initiative gains two significant semantic technology partners
				on the occasion of the Open Source Meets Business Congress (27. - 29. January 2009, Nuremberg, Germany)
				with Attensity, Inc., from Palo Alto, California and living-e AG from Karlsruhe, Germany. Both companies
				will continue development of their products based on the SMILA open architecture and infrastructure
				standard - Attensity with semantic text analytics technologies and living-e with its self-learning
				solutions for automated, intelligent responses to e-mails, SMS, faxes and letters."
				</i>
			</p>
			-->
		</div>
	</div>

EOHTML;

	include('rightColumn.php');
	$html .= $rightColumn;

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
