<?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://vxquery.apache.org/">
    <created>2014-10-09</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache VXQuery</name>
    <homepage rdf:resource="http://vxquery.apache.org/" />
    <asfext:pmc rdf:resource="http://vxquery.apache.org" />
    <shortdesc>Apache VXQuery implements a parallel XML Query processor.</shortdesc>
    <description>Apache VXQuery will be a standards compliant XML Query processor implemented in Java. The focus is on the evaluation of queries on large amounts of XML data. Specifically the goal is to evaluate queries on large collections of relatively small XML documents. To achieve this queries will be evaluated on a cluster of shared nothing machines.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/VXQUERY" />
    <mailing-list rdf:resource="http://vxquery.apache.org/mail-lists.html" />
    <download-page rdf:resource="http://www.apache.org/dyn/closer.cgi/vxquery/" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/big-data" />
    <category rdf:resource="http://projects.apache.org/category/xml" />
    <release>
      <Version>
        <name>Apache VXQuery</name>
        <created>2015-03-05</created>
        <revision>0.5</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache VXQuery</name>
        <created>2016-05-26</created>
        <revision>0.6</revision>
      </Version>
    </release>
    <repository>
      <GitRepository>
        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/vxquery.git"/>
        <browse rdf:resource="https://git-wip-us.apache.org/repos/asf/vxquery.git"/>
      </GitRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Till Westmann</foaf:name>
          <foaf:mbox rdf:resource="mailto:tillw@apache.org"/>
      </foaf:Person>
    </maintainer>
    <asfext:implements><asfext:Standard>
      <asfext:title>XQuery 1.0: An XML Query Language</asfext:title>
      <asfext:body>W3C</asfext:body>
      <asfext:id>XQuery 1.0</asfext:id>
      <asfext:url rdf:resource="http://www.w3.org/TR/xquery/"/>
    </asfext:Standard></asfext:implements>
  </Project>
</rdf:RDF>
