<?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://mesos.apache.org">
    <created>2014-06-19</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache Mesos</name>
    <homepage rdf:resource="http://mesos.apache.org" />
    <asfext:pmc rdf:resource="http://mesos.apache.org" />
    <shortdesc>Apache Mesos is a cluster manager that provides efficient resource isolation 
and sharing across distributed applications, or frameworks.</shortdesc>
    <description>Apache Mesos is a cluster manager that provides efficient resource isolation 
and sharing across distributed applications, or frameworks. It can run Hadoop, 
MPI, Hypertable, Spark, and other frameworks on a dynamically shared pool of 
nodes.
</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/MESOS" />
    <mailing-list rdf:resource="http://mesos.apache.org/community/" />
    <download-page rdf:resource="http://mesos.apache.org/downloads/" />
    <programming-language>C++</programming-language>
    <category rdf:resource="http://projects.apache.org/category/cloud" />
    <release>
      <Version>
        <name>Mesos 0.19.0</name>
        <created>2014-06-09</created>
        <revision>0.19.0</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/mesos/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/repos/asf/mesos/trunk/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Benjamin Hindman</foaf:name>
          <foaf:mbox rdf:resource="mailto:benjamin.hindman@gmail.com"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
