<?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://cordova.apache.org/">
    <created>2013-01-11</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Cordova</name>
    <homepage rdf:resource="http://cordova.apache.org" />
    <!-- see the comment at the top of pmc_list.xml that explains asfext:pmc rdf:resource -->
    <asfext:pmc rdf:resource="http://svn.apache.org/repos/asf/cordova/site/public/infra/doap_Cordova_PMC.rdf" />
    <shortdesc>A platform for building native mobile applications using HTML, CSS and JavaScript.</shortdesc>
    <description>Apache Cordova is a set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript. Combined with an UI framework, this allows a smartphone app to be developed with just HTML, CSS, and JavaScript.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/CB" />
    <mailing-list rdf:resource="http://cordova.apache.org/#mailing-list" />
    <download-page rdf:resource="http://cordova.apache.org/#download" />
    <programming-language>JavaScript</programming-language>
    <programming-language>Java</programming-language>
    <programming-language>Objective-C</programming-language>
    <programming-language>C++</programming-language>
    <programming-language>C#</programming-language>
    <programming-language>node.js</programming-language>
    <category rdf:resource="http://projects.apache.org/category/mobile" />
    <category rdf:resource="http://projects.apache.org/category/library" />
    <release>
       <Version>
           <name>Latest Stable</name>
           <created>2016-08-12</created>
           <revision>6.3.1</revision>
       </Version>
   </release>
    <!-- at some point we should list the W3C standards we support.
         See http://projects.apache.org/docs/standards.html
         and the projects listed in the "Standards" index as example users of standards. -->
    <repository>
      <SVNRepository>
        <location rdf:resource="http://cordova.apache.org/#contribute"/>
        <browse rdf:resource="http://cordova.apache.org/#contribute"/>
      </SVNRepository>
    </repository>
  </Project>
</rdf:RDF>
