\title{GeoNetwork opensource}
\subtitle{Internationally Standardized Distributed Spatial Information Management}
\author{by Jeroen Ticheler and Jelle U. Hielkema}
\maketitle

\textit{GeoNetwork "opensource"} is a standardized and decentralized Geospatial Information Management System, based on the concept of distributed data and information ownership and is designed to enable access to geo-referenced data and cartographic products through descriptive metadata. Collections maintained at different organizations are accessible through a single entry point. This approach of geographic information management enhances easy and timely access to existing spatial data for a wide community of users, supporting informed decision-making in a variety of application fields. Web 2.0 techniques have been adopted to allow more interactive and intuitive use of the system and to offer building blocks for future web service offerings.

The main goal of the \textit{GeoNetwork opensource} project is to provide free and open source software that improves accessibility to a wide variety of geospatial data and information products at different scales and from distributed sources. The collections are organized, documented and published in a standardized, consistent way both at the metadata and data level following international standards. As such the tool has become a popular and widely accepted geospatial Information Management System within the UN system, forming a central and basic element in the development of a United Nations Spatial Data Infrastructure (UNSDI). In other national and international organizations and initiatives such as the Consultative Group on International Agricultural Research (CGIAR), the European Space Agency (ESA), the US Federal Geographic Data Committee (FGDC), in countries implementing National Spatial Data Infrastructures (NSDI), in Europe in the context of The \textbf{IN}frastructure for \textbf{SP}atial \textbf{I}nfo\textbf{R}mation in \textbf{E}urope (INSPIRE), as contribution to the Group on Earth Observations (GEO) and others, \textit{GeoNetwork opensource} has also seen a remarkable uptake.

\section{The \textit{GeoNetwork opensource} project}

\textit{GeoNetwork opensource} is a decentralized geospatial information management system based on international standards. It is designed to enable easy and timely access to geo-referenced data and cartographic products through descriptive metadata from a variety of data providers. The system tries to support a wide community of spatial information users to make better-informed decisions. It improves geospatial information sharing between organizations and their users, using the capacities of the Internet. It often triggers improved collaboration within and between organizations, reducing duplication and enhancing information consistency and data preparedness.

Maps, including those derived from satellite imagery, are effective communication tools and play an important role in the work of various user communities:

\begin{itemize}
	\item Decision Makers, e.g. sustainable development planners and humanitarian and disaster emergency managers in need of quick, reliable and up to date cartographic products as a basis for better planning, action and monitoring of their activities. 
	\item GIS Experts in need of exchanging consistent and updated geographic data. 
	\item Spatial analysts in need of multidisciplinary geospatial data to perform geographic analysis, resulting in more reliable forecasts that help to better organize interventions in vulnerable areas. 
\end{itemize}

In 2001 the Food and Agriculture Organization (FAO) of the United Nations started the development of a prototype catalog system to systematically archive and publish geospatial data developed and used within the organization. The prototype built on experiences within and outside the organization. It used metadata content available from legacy systems that was transformed into what was than a preliminary draft metadata standard, ISO 19115.


Joined in 2003 by the World Food Programme (WFP), the prototype was taken as input for a first version of \textit{GeoNetwork opensource}. It was decided to develop the software as a Free and Open Source Software (FOSS) to allow other parties to benefit from the development efforts and to allow for their participation. The result was a 1.0 release in 2003 of the software as well as the establishment of operational catalogues in FAO and WFP. The system was based on the ISO19115:DIS metadata standard and provided an embedded Web Map Client, InterMap, that supported Open Geospatial Consortium (OGC) compliant Web Map Services. Distributed searches were possible using the Z39.50 catalog protocol.

With support from the UN Environment Programme (UNEP) a second GeoNetwork version was developed in 2004. The release allowed users to work with multiple metadata standards in a transparent manner. It also allowed metadata to be shared between catalogues through a caching mechanism, improving reliability when searching in multiple catalogs. A further major improvement was made with the release of version 2.0.2 in April 2006 which was accompanied by CD version of the software, including a variety of other open sources packages, as well as a detailed user installation manual and an attractive flyer, followed up by a DVD version in October 2006.

The latest release of \textit{GeoNetwork opensource}, version 2.1 (July 2007), is the result of another round of critical improvements, supported by among others FAO, the UN Office for the Coordination of Humanitarian Affairs (OCHA), the Spatial Consortium of the Consultative Group on International Agricultural Research (CSI-CGIAR) and UNEP. Support for the final metadata standard ISO19115:2003 has been added by using the ISO19139:2007 implementation specification released in May 2007. The release also serves as the open source reference implementation of the OGC Catalog Service for the Web (CSW 2.0.1) specification. Improvements to give users a more responsive and interactive experience have been made on parts of the system, including the web map viewer and the search interface.

\begin{figure}[htbp]
   \centering
   \includegraphics[width=1\textwidth]{./project_spotlight/ticheler/GeoNetwork_1.png}
   \caption{\textit{GeoNetwork opensource} version 2.0. Shown is the Map Viewer that is embedded in the application.}
   \label{fig:label_of_your_image}
\end{figure}


At present, \textit{GeoNetwork opensource} is a central and basic building block in the UN Spatial Data Infrastructure (UNSDI) currently under development. In other national and international organizations and initiatives such as the (CGIAR), the European Space Agency (ESA), the US Federal Geographic Data Committee (FGDC), in countries implementing National Spatial Data Infrastructures (NSDI), in Europe in the context of The INfrastructure for SPatial InfoRmation in Europe (INSPIRE), as contribution to the Group on Earth Observations (GEO) etc., \textit{GeoNetwork opensource} has also seen a remarkable uptake.

\section{Free and Open Source Software and Community Development}

Started as a small open source project in a very specialized field, the community of users and developers of the \textit{GeoNetwork opensource} software has increased dramatically since the release of version 2.0 in December 2005 and the subsequent pre-releases of version 2.1. At present the project sees over 800 downloads of the software per month from the website. The user and developer mailing lists have close to 200 subscriptions each. Members provide feedback within the community and provide translations, new functionality, bug reports, fixes and useful instructions to the project as a whole.

Building a self sustaining community of users and developers is one of the biggest challenges for the project. This community building process relies on active participation and interaction of its members. It also relies on building trust and operating in a transparent manner, thereby agreeing on the overall objectives, prioritization and long term direction of the project. A number of actions have been taken by the project to facilitate this process.

A work plan is developed and presented at the yearly GeoNetwork workshop. This plan is maintained and updated throughout the year where needed. The foundation for the establishment of a GeoNetwork Advisory Board was laid at the 2006 workshop in Rome and membership was defined. The project management team reports back to the advisory board during the GeoNetwork workshop.

Two public websites have been established. One focuses on the users of the software, the other focuses on the developers. Both can be updated and maintained online by trusted members of the community. They provide documentation, bug reporting and tracking, WIKI pages et cetera.

Source code is maintained in a publicly accessible code repository, hosted at an independent service provider, SourceForge.net that hosts thousands of FOSS projects. Developers and users have full access to all source code, while trusted developers can make changes in the repository. Standardizing documentation development is the next challenge taken up by the project to ensure versioning and multiple output formats (e.g. HTML and pdf) are supported.

A small part of the community connects through Internet Relay Chat (IRC) on a public \#geonetwork channel. But most interaction takes place on the user and the developer mailing lists. Subscription to these lists is open to anyone interested. The archive of the mailing lists provide an important resource for users and can be browsed online. A special mailing list has been established to monitor changes in the code repository. This so-called commit mailing list delivers change reports by email to its subscribers.

During the 2006 workshop, the project advisory board decided to propose the \textit{GeoNetwork opensource} project as an incubator project to the newly founded Open Source Geospatial Foundation (OSGeo). This incubation process is currently ongoing and is close to conclusion. The project websites have been moved to servers accessible under the umbrella of the OSGeo foundation. Web pages have been updated to reflect the OSGeo umbrella function and a source code review with related changes to the code has been done. The GeoNetwork team has dedicated efforts to develop a DVD containing the best free and open source software in the field of Geoinformatics. This DVD has been printed and distributed in hard copy to over three thousand people and is also available through the Internet.

\begin{figure*}[htbp]
   \centering
   \includegraphics[scale=0.4]{./project_spotlight/ticheler/GeoNetwork_2.png}
   \caption{\textit{GeoNetwork opensource} version 2.0. Shown is a screenshot of a metadata record.}
   \label{fig:label_of_your_image}
\end{figure*}

\section{Technology}

As discussed, the \textit{GeoNetwork opensource} has been developed to connect spatial information communities and their data using a modern architecture, which is at the same time powerful and low cost, based on the principles of Free and Open Source Software (FOSS) and International and Open Standards for services and protocols, among others from ISO/TC211 and the OGC. The \textit{GeoNetwork opensource} architecture, in fact, is largely compatible with the Geospatial Portal Reference Architecture, which is the Open Geospatial Consortium (OGC) Guide to implement a standardized geospatial portal. 

To deploy a full Spatial Data Infrastructure, a range of related software packages can be implemented in addition to \textit{GeoNetwork opensource} and the embedded InterMap opensource. Within the range of FOSS solutions, these include Web Map Server software like MapServer, GeoServer and MapGuide Open Source; GIS desktop software like GRASS, OSSIM, Quantum GIS, uDIG and gvSIG; Web Map Viewers like MapBender, MapBuilder and OpenLayers.

\begin{figure}[htbp]
   \centering
   \includegraphics[width=1\textwidth]{./project_spotlight/ticheler/version21.png}
   \caption{GeoNetwork 2.1 preview.}
   \label{fig:label_of_your_image}
\end{figure}

The software uses an approach that separates content and format as much as possible from the internal business logic. It therefore uses XML encoding for much of its internal information and data handling. Using Stylesheet transformations (XSLT), XML content is modified to provide the required output at different levels in the application. Metadata is handled in this way and is stored in its original format, giving full flexibility when manipulating its content as well as format.

A generic framework has been developed in Java. Web services are exposed to the network through a servlet engine like Apache Tomcat or Jetty and produce among others HTML and XML output. The framework provides all the required functionality to deal with XML, XSLT, database connections through JDBC, Internet protocols, user sessions and file systems. Custom web services can be developed using existing functionality or by writing small extensions.

Recently, the use of AJAX techniques in the web interface has started. By splitting existing services into smaller services, the user can now interact with the system in a more interactive manner. A comprehensive search interface has been build without compromising on speed. This has allowed to integrate the existing web map viewer in the home page. In earlier versions this viewer was available as a pop-up window, causing confusion to users. In the administrative part of the system, similar interactive functionality has been implemented that provides easy access to the system configuration pages dealing with site settings, catalog harvesting and scheduling and maintenance.

\section{Conclusion}

This article provided an insight in the history, project structure and technologies behind the \textit{GeoNetwork opensource} Geospatial Information Management System. It only touched the related FOSS components that are required to implement a full Spatial Data Infrastructure and that are part of the OSGeo Foundation and the wider Geoinformatics FOSS community.

The future of the project looks bright, receiving a wider attention every day. The biggest challenges will be in further community building and in keeping focus on the original goals of the project. At the same time, more demanding and challenging requirements have to be met and new technologies have to be used where they provide significant benefits to the project.

The system will have to be split into well defined server and client components in order to allow third parties to integrate components into their existing evironments. A plug-in mechanism has to be developed for key functions in the system, like language support, custom user interfaces as well as metadata application profiles. It is likely that the use of AJAX will be taken further in the future releases, including most importantly in the online metadata editor. This poses exciting technological challenges resulting in more intuitive and responsive user-system interaction.

A large user and developer community will allow the project to flourish and advance the development of interoperable global spatial data infrastructures. Taking the Free and Open Source Software development approach results in comprehensive Geospatial Information Management Software that can be used by any interested party as a straightforward and cost-effective means of publishing geographical metadata and data on the web.

\address{Jeroen Ticheler and Jelle U. Hielkema (rtd)\\
Environment, Climate Change and Bioenergy Division (NRC)\\
Food and Agriculture Organization of the United Nations (FAO)\footnote{Food and Agriculture Organization of the United Nations (FAO): \url{http://www.fao.org/geonetwork}}\\
UN Geospatial Information Working Group (UNGIWG)\footnote{UN Geospatial Information Working Group (UNGIWG): \url{http://www.ungiwg.org}}\\
GeoNetwork opensource\footnote{GeoNetwork opensource: \url{http://geonetwork-opensource.org}}\\
  \email{Jeroen.Ticheler AT fao.org}\\
  \email{jellefroukje AT gmail.com}
}