<?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/">
<!--
  =======================================================================

   Copyright (c) 2006 The Apache Software Foundation.  
   All rights reserved.

  =======================================================================
-->
  <Project rdf:about="http://juddi.apache.org/scout">
    <created>2006-03-28</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Scout</name>
    <homepage rdf:resource="http://juddi.apache.org/scout" />
    <asfext:pmc rdf:resource="http://juddi.apache.org" />
    <shortdesc>Apache Scout is an implementation of the JSR 93 (JAXR).</shortdesc>
    <description>Apache Scout is an implementation of the JSR 93 (JAXR). It provides an implementation to access UDDI registries (particularly Apache jUDDI) in a standard way.</description>
    <bug-database rdf:resource="http://issues.apache.org/jira/" />
    <mailing-list rdf:resource="http://juddi.apache.org/scout/mail-lists.html" />
    <download-page rdf:resource="http://juddi.apache.org/scout/downloads.html" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/xml" />
    <release>
      <Version>
        <name>Scout v1.2.2</name>
        <created>2010-07-18</created>
        <revision>1.2.2</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="https://svn.apache.org/repos/asf/juddi/scout"/>
        <browse rdf:resource="http://svn.apache.org/viewcvs.cgi/juddi/scout/trunk/?root=Apache-SVN"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Tom Cunningham</foaf:name>
          <foaf:mbox rdf:resource="mailto:tcunning@apache.org"/>
      </foaf:Person>
    </maintainer>
   <asfext:implements>
    <asfext:standard>
      <asfext:title>Java API For XML Registries</asfext:title>
      <asfext:body>JCP</asfext:body>
      <asfext:id>93</asfext:id>
      <asfext:url rdf:resource="http://jcp.org/en/jsr/detail?id=93"/>
    </asfext:standard>
   </asfext:implements>
  </Project>
</rdf:RDF>
