<?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="https://calcite.apache.org/avatica">
    <created>2017-03-31</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache Calcite Avatica</name>
    <homepage rdf:resource="https://calcite.apache.org/avatica" />
    <asfext:pmc rdf:resource="https://calcite.apache.org/avatica" />
    <shortdesc>Avatica is a JDBC driver framework which is a part of Apache Calcite.</shortdesc>
    <description>Avatica is defined by a wire API between a client
      and a server. The Avatica server is an HTTP server, the
      Avatica client is a JDBC driver, and the wire API is defined
      by JSON or Protobuf Buffers. The flexibility of the wire API
      and HTTP transport allows other Avatica clients to be built
      in any language, implementing any client specification.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/CALCITE" />
    <mailing-list rdf:resource="https://calcite.apache.org/avatica/develop" />
    <download-page rdf:resource="https://calcite.apache.org/avatica/downloads" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/big-data" />
    <category rdf:resource="http://projects.apache.org/category/hadoop" />
    <category rdf:resource="http://projects.apache.org/category/sql" />
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/calcite-avatica.git"/>
        <browse rdf:resource="https://github.com/apache/calcite-avatica"/>
      </GitRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Josh Elser</foaf:name>
          <foaf:mbox rdf:resource="mailto:elserj@apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
