<?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.
-->
<?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/">
  <Project rdf:about="http://reef.apache.org/">
    <created>2014-08-12</created>
    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0" />
    <name>Apache REEF</name>
    <homepage rdf:resource="http://reef.apache.org/" />
    <asfext:pmc rdf:resource="http://reef.apache.org/" />
    <shortdesc>
      Apache REEF (Retainable Evaluator Execution Framework) is 
      a scale-out computing fabric that eases the development of Big Data 
      applications on top of resource managers such as Apache YARN and Mesos.
    </shortdesc>
    <description>
      Apache REEF (Retainable Evaluator Execution Framework) is a development
      framework that provides a control-plane for scheduling and coordinating
      task-level (data-plane) work on cluster resources obtained from a
      Resource Manager. REEF provides mechanisms that facilitate resource
      reuse for data caching, and state management abstractions that greatly
      ease the development of elastic data processing workflows on cloud
      platforms that support a Resource Manager service.
    </description>
    <bug-database rdf:resource="http://issues.apache.org/jira/browse/REEF" />
    <mailing-list rdf:resource="http://reef.apache.org/mailing-list.html" />
    <download-page rdf:resource="http://reef.apache.org/downloads.html" />
    <programming-language>Java</programming-language>
    <programming-language>C#</programming-language>
    <programming-language>C++</programming-language>
    <category rdf:resource="http://projects.apache.org/category/big-data" />
    <release>
      <Version>
        <name>0.16.0</name>
        <created>2017-08-11</created>
        <revision>0.16.0</revision>
      </Version>
    </release>
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/reef.git"/>
        <browse rdf:resource="https://gitbox.apache.org/repos/asf?p=reef.git"/>
      </GitRepository>
    </repository>
  </Project>
</rdf:RDF>
