<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#"
         xmlns:rdf="https://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:asfext="https://projects.apache.org/ns/asfext#"
         xmlns:foaf="https://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://doris.apache.org/">
    <created>2018-07-08</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Doris</name>
    <homepage rdf:resource="https://doris.apache.org/" />
    <asfext:pmc rdf:resource="https://doris.apache.org" />
    <shortdesc>Apache Doris is a new-generation open-source real-time data warehouse based on MPP architecture, with easier use and higher performance for big data analytics.</shortdesc>
    <description>Apache Doris is an easy-to-use, high-performance and real-time analytical database based on MPP architecture, known for its extreme speed and ease of use. It only requires a sub-second response time to return query results under massive data and can support not only high-concurrent point query scenarios but also high-throughput complex analysis scenarios.
                 All this makes Apache Doris an ideal tool for scenarios including report analysis, ad-hoc query, unified data warehouse, and data lake query acceleration. On Apache Doris, users can build various applications, such as user behavior analysis, AB test platform, log retrieval analysis, user portrait analysis, and order analysis.</description>
    <bug-database rdf:resource="https://github.com/apache/doris/issues" />
    <mailing-list rdf:resource="https://lists.apache.org/list.html?dev@doris.apache.org" />
    <download-page rdf:resource="https://doris.apache.org/download" />
    <programming-language>C++,Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/database" />
    <repository>
      <SVNRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/doris.git"/>
        <browse rdf:resource="https://github.com/apache/doris"/>
      </SVNRepository>
    </repository>
  </Project>
</rdf:RDF>
