<?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://lucenenet.apache.org/">
    <created>2014-04-14</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Lucene.Net</name>
    <homepage rdf:resource="http://lucenenet.apache.org/" />
    <asfext:pmc rdf:resource="http://lucenenet.apache.org" />
    <shortdesc>Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.</shortdesc>
    <description>Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users. The Lucene search library is based on an inverted index. Lucene.Net has three primary goals:

1. Maintain the existing line-by-line port from Java to C#, fully automating and commoditizing the process such that the project can easily synchronize with the Java Lucene release schedule;
2. Maintaining the high-performance requirements expected of a first class C# search engine library;
3. Maximize usability and power when used within the .NET runtime. To that end, it will present a highly idiomatic, carefully tailored API that takes advantage of many of the special features of the .NET runtime.
</description>
    <bug-database rdf:resource="https://github.com/apache/lucenenet/issues" />
    <mailing-list rdf:resource="https://lucenenet.apache.org/contributing/mailing-lists.html" />
    <download-page rdf:resource="https://lucenenet.apache.org/download/download.html" />
    <programming-language>C#</programming-language>
    <category rdf:resource="http://projects.apache.org/category/database" />
    <release>
      <Version>
        <name>Apache Lucene.Net 3.0.3</name>
        <created>2012-10-10</created>
        <revision>3.0.3</revision>
      </Version>
    </release>
  </Project>
</rdf:RDF>