<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for gregheartsfield</title>
    <link>http://www.advogato.org/person/gregheartsfield/</link>
    <description>Advogato blog for gregheartsfield</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 25 May 2013 02:58:32 GMT</pubDate>
    <item>
      <pubDate>Sun, 11 Jan 2009 01:12:14 GMT</pubDate>
      <title>11 Jan 2009</title>
      <link>http://www.advogato.org/person/gregheartsfield/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/gregheartsfield/diary.html?start=0</guid>
      <description>&lt;p&gt;&#xD;
&lt;a href="http://hackage.haskell.org/" &gt;Hackage&lt;/a&gt; is a fantastic resource &#xD;
for developers, but one disadvantage is that non-Haskellers rarely get &#xD;
exposed to the great &#xD;
software that is being developed in Haskell.  Hackage lists nearly 1,000 &#xD;
projects currently, but checking on &lt;a href="http://freshmeat.net/" &gt;freshmeat.net&lt;/a&gt;, there &#xD;
are only 73 Haskell projects.  As a developer, I don't want to have to submit &#xD;
and maintain project pages at Hackage, Freshmeat, Sourceforge, etc., but of &#xD;
course, I still &#xD;
want the largest audience possible.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
One way to spread knowledge about software projects is to publish &#xD;
description-of-a-project (&lt;a href="https://trac.usefulinc.com/doap" &gt;DOAP&lt;/a&gt;) files.  These are &#xD;
formal descriptions of project stuff:  homepage, maintainers, contributors, &#xD;
language, versions, and much more.  There is a large overlap between the &#xD;
DOAP vocabulary &#xD;
and &lt;a href="http://haskell.org/cabal" &gt;Cabal&lt;/a&gt;, the packaging system &#xD;
used for all Hackage projects.  So, for the past few days I've been toying &#xD;
around with making &#xD;
a &lt;a href="http://gregheartsfield.com/cabal2doap" &gt;Cabal to DOAP &#xD;
converter&lt;/a&gt;, which is now ready for others to use.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
Running the program in the root of a cabalized project will output XML-RDF.  &#xD;
If the project is a Darcs repository, the commit history will be scanned, and &#xD;
developers &#xD;
will be noted in the output as well.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
I hope that this will lead in the near future to Hackage generating DOAP data &#xD;
every time a new project is uploaded.  There is lots of important data that is &#xD;
best gleaned &#xD;
directly from Hackage, such as the past releases, and download locations.  I &#xD;
plan on making future improvements to aid in Hackage-cabal2doap &#xD;
integration, especially &#xD;
in the area of processing multiple Cabal files to build up release history.  &#xD;
Before that though, I'd like to see if/how my projects become more accessible &#xD;
by virtue of &#xD;
having DOAP data published.  For example, how well aggregation services like &#xD;
&lt;a href="http://doapspace.org/" &gt;Doapspace&lt;/a&gt; and &lt;a href="http://doapstore.org" &gt;doap:store&lt;/a&gt; function.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
A neat way to understand some of the power of representing data formally in &#xD;
RDF is to view it in graph form, such as that provided by the &lt;a href="http://www.w3.org/RDF/Validator/" &gt;W3C RDF Validation Service&lt;/a&gt;.  &#xD;
For example, the following is a representation of the DOAP data published for &#xD;
cabal2doap &#xD;
itself.&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
&lt;a href="http://gregheartsfield.com/images/cabal2doap_doap_graph.png" &gt;&amp;lt;im&#xD;
g alt="Graph of Cabal2DOAP project information" &#xD;
src="http://gregheartsfield.com/images/cabal2doap_doap_graph_small.png"&#xD;
/&amp;gt;&lt;/a&gt;&#xD;
&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
You can start with the &lt;a href="http://gregheartsfield.com/cabal2doap/" &gt;official project &#xD;
homepage&lt;/a&gt;, or its &lt;a href="http://hackage.haskell.org/cgi-&#xD;
bin/hackage-&#xD;
scripts/package/cabal2doap" &gt;home on Hackage&lt;/a&gt;.  If you have Firefox &#xD;
and &lt;a href="http://www.w3.org/2005/ajar/tab" &gt;Tabulator&lt;/a&gt; or &lt;a href="http://sioc-&#xD;
project.org/firefox" &gt;Semantic Radar&lt;/a&gt;, you can browse to a couple &#xD;
projects I host, which have linked DOAP data generated from cabal2doap.&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;&lt;a href="http://gregheartsfield.com/hS3/" &gt;hS3&lt;/a&gt;&#xD;
&lt;li&gt;&lt;a href="http://gregheartsfield.com/cabal2doap/" &gt;cabal2doap&lt;/a&gt;&#xD;
&lt;li&gt;&lt;a href="http://gregheartsfield.com/fractal-hs/" &gt;fractal-hs&lt;/a&gt;&#xD;
&lt;/ul&gt;&#xD;
</description>
    </item>
  </channel>
</rss>
