<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.stanbol</groupId>
  <artifactId>org.apache.stanbol.enhancer.engines.reactor</artifactId>
  <version>0.10.0-incubating-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Stanbol Enhancer Engines Reactor</name>
  <description>
    Pseudo project to build Enhancer Engines
  </description>
  <inceptionYear>2010</inceptionYear>

  <scm>
    <connection>
      scm:svn:http://svn.apache.org/repos/asf/incubator/stanbol/trunk/enhancer/engines
    </connection>
    <developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/incubator/stanbol/trunk/enhancer/engines
    </developerConnection>
    <url>http://incubator.apache.org/stanbol/</url>
  </scm>

  <modules>
    <module>opennlp-ner</module>
	<module>langdetect</module>
    <module>langid</module>
    <module>topic</module>
    <module>metaxa</module>
    <module>tika</module>
    <module>entitytagging</module>
    <module>keywordextraction</module>
    <module>refactor</module>
    <!-- Enhancement Engines using external services -->
    <module>celi</module> <!-- http://linguagrid.org -->
    <module>geonames</module> <!-- http://geonames.org -->
    <module>opencalais</module> <!-- http://opencalais.com/ -->
    <module>zemanta</module> <!-- htt://zemanta.com -->
    <!-- Disambiguation Engine -->
    <module>disambiguation-mlt</module>
  </modules>
</project>
