<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
    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 rdf:about="http://gora.apache.org">
    <created>2012-01-30</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Gora</name>
    <homepage rdf:resource="http://gora.apache.org" />
    <asfext:pmc rdf:resource="http://gora.apache.org" />
    <shortdesc>The Apache Gora open source framework provides an in-memory data model and persistence for big data. Gora supports persisting to column stores, key value stores, document stores and RDBMSs, and analyzing the data with extensive Apache Hadoop MapReduce support.</shortdesc>
    <description>Although there are various excellent ORM frameworks for relational databases, data modeling in NoSQL data stores differ profoundly from their relational cousins. Moreover, data-model agnostic frameworks such as JDO are not sufficient for use cases, where one needs to use the full power of the data models in column stores. Gora fills this gap by giving the user an easy-to-use in-memory data model and persistence for big data framework with data store specific mappings and built in Apache Hadoop support.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/GORA" />
    <mailing-list rdf:resource="http://gora.apache.org/mailing_lists.html" />
    <download-page rdf:resource="http://gora.apache.org/releases.html" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/database" />
    <releases>
    <release>
      <Version>
        <name>0.2 release</name>
        <created>2012-04-20</created> 
        <revision>0.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>0.1.1-incubating release</name>
        <created>2011-09-24</created>
        <revision>0.1.1-incubating</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>0.1-incubating release</name>
        <created>2011-04-06</created>
        <revision>0.1-incubating</revision>
      </Version>
    </release>
    </releases>
    <repository>
      <SVNRepository>
        <location rdf:resource="https://svn.apache.org/repos/asf/gora/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/viewvc/gora/trunk/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Gora Development Team</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@gora.apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
