<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>the law of averages &#187; ccRdf</title>
	<atom:link href="http://yergler.net/blog/category/projects/ccrdf/feed/" rel="self" type="application/rss+xml" />
	<link>http://yergler.net/blog</link>
	<description>...because eventually i'll be right...</description>
	<pubDate>Sun, 09 Nov 2008 19:45:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
	http://creativecommons.org/licenses/by-sa/3.0/us/<creativeCommons:license></creativeCommons:license>		<item>
		<title>ccRdf 0.4.5 Available</title>
		<link>http://yergler.net/blog/2004/06/24/ccrdf-045-available/</link>
		<comments>http://yergler.net/blog/2004/06/24/ccrdf-045-available/#comments</comments>
		<pubDate>Thu, 24 Jun 2004 18:44:07 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2004/06/24/ccrdf-045-available</guid>
		<description><![CDATA[	ccRdf 0.4.5 is now available.  Improvements include:
	
		updated to support RDFlib 2.0.3 and it&#8217;s new API
		added unit tests
	
	
		added new rdfextract.py module, a nascent pluggable RDF extraction module under development for use in the new version of ccValidator.
	ccRdf is a set of Python classes which allow developers to easily parse and manipulate Creative Commons licensing metadata. [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://yergler.net/projects/ccrdf" >ccRdf</a> 0.4.5 is now <a href="http://yergler.net/projects/ccrdf/download" >available</a>.  Improvements include:</p>
	<ul>
		<li>updated to support <a href="http://rdflib.net" onclick="javascript:pageTracker._trackPageview('/outbound/article/rdflib.net');">RDFlib</a> 2.0.3 and it&#8217;s new API</li>
		<li>added unit tests</li>
	</ul>
	<ul>
		<li>added new rdfextract.py module, a nascent pluggable RDF extraction module under development for use in the new version of <a href="http://yergler.net/projects/ccvalidator" >ccValidator</a>.
	<p>ccRdf is a set of Python classes which allow developers to easily parse and manipulate Creative Commons licensing metadata.  ccRdf supports parsing, manipulating and emitting license metadata in RDF format.  ccRdf performs the core validation and parsing for the Creative Commons RDF Validator.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2004/06/24/ccrdf-045-available/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CC RDF in JavaScript</title>
		<link>http://yergler.net/blog/2004/01/20/cc-rdf-in-javascript/</link>
		<comments>http://yergler.net/blog/2004/01/20/cc-rdf-in-javascript/#comments</comments>
		<pubDate>Tue, 20 Jan 2004 17:43:42 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<category><![CDATA[mozCC]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2004/01/20/cc-rdf-in-javascript</guid>
		<description><![CDATA[	It&#8217;s taking much longer than I&#8217;d like, but I&#8217;m slowly making progress on a new release of mozCC.  The update, when it&#8217;s finally available, will hopefully play better with more browsers and have fewer &#8220;quirks&#8221; (read: bugs).
	As part of the development process, I decided that Jim Ley&#8217;s excellent all-JavaScript RDF parser just wasn&#8217;t a [...]]]></description>
			<content:encoded><![CDATA[	<p>It&#8217;s taking much longer than I&#8217;d like, but I&#8217;m slowly making progress on a new release of <a href="http://yergler.net/projects/mozcc" >mozCC</a>.  The update, when it&#8217;s finally available, will hopefully play better with more browsers and have fewer &#8220;quirks&#8221; (read: <a href="http://mozcc.mozdev.org/bugs.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/mozcc.mozdev.org');">bugs</a>).</p>
	<p>As part of the development process, I decided that Jim Ley&#8217;s excellent <a href="http://jibbering.com/rdf-parser/" onclick="javascript:pageTracker._trackPageview('/outbound/article/jibbering.com');">all-JavaScript RDF parser</a> just wasn&#8217;t a good fit.  There were an increasing number of things I wanted to do that were CC specific and uncomfortable to accomodate with the code base.  What I needed was a library designed to manipulate licenses.  Like <a href="http://yergler.net/projects/ccrdf" >ccRdf</a> does for Python.  So taking what I learned from <a href="http://www.yergler.net/averages/archives/2003/12/14/filing_mail_in_thunderbird" >QuickFile</a>, I put together ccRdf.js.  </p>
	<p><strong>ccRdf.js</strong> is a limited port of ccRdf to JavaScript.  Instead of attempting to provide facilities for both creation and consumption of RDF, it focuses solely on consuming RDF licenses.  The API is similar, and it seems to work fairly well thus far.  You can find the source <a href="http://yergler.net/projects/ccrdf/javascript/ccrdf.js" onclick="javascript:pageTracker._trackPageview('/downloads/projects/ccrdf/javascript/ccrdf.js');">here</a>.  There currently isn&#8217;t any other documentation, so <a href="http://www.yergler.net/pages/contact" >e-mail</a> me if you run into problems or have questions.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2004/01/20/cc-rdf-in-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ccRdf 0.4.0</title>
		<link>http://yergler.net/blog/2003/12/22/ccrdf-040/</link>
		<comments>http://yergler.net/blog/2003/12/22/ccrdf-040/#comments</comments>
		<pubDate>Tue, 23 Dec 2003 03:45:07 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/12/22/ccrdf-040</guid>
		<description><![CDATA[	ccRdf is now available for download.  This release fixes several bugs related to the getAll and getFirst methods of the rdfDict class.  There have also been minor internal implementation changes made.
	In addition to bug fixes, I want to note a change in functionality.  In previous versions, casting a rdfDict to a string [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://yergler.net/projects/ccrdf" >ccRdf</a> is now available for <a href="http://yergler.net/projects/ccrdf/releases" >download</a>.  This release fixes several bugs related to the getAll and getFirst methods of the rdfDict class.  There have also been minor internal implementation changes made.</p>
	<p>In addition to bug fixes, I want to note a change in functionality.  In previous versions, casting a rdfDict to a string returned it&#8217;s RDF subject.  This is <strong>no longer the case</strong>.  <i>str</i> now returns a contrived string representation of the current instance, based (very) loosely on the <a href="http://dublincore.org/documents/dcq-rdf-xml/#sec3" onclick="javascript:pageTracker._trackPageview('/outbound/article/dublincore.org');">Dublin Core Dumb-down Algorithm</a>.  If someone has a suggestion or better implementation, I welcome it.  You can still access the RDF subject using the subject attribute or the new about method.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/12/22/ccrdf-040/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ccRdf 0.3.0 Available</title>
		<link>http://yergler.net/blog/2003/12/05/ccrdf-030-available/</link>
		<comments>http://yergler.net/blog/2003/12/05/ccrdf-030-available/#comments</comments>
		<pubDate>Fri, 05 Dec 2003 13:14:10 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/12/05/ccrdf-030-available</guid>
		<description><![CDATA[	After some great debate and discussion with Mike and Ben, ccRdf 0.3.0 is now available.  Improvments include smarter handling of predicate-object pairs in the RDF and clarification of the API.  You can find more information here.  Enjoy.

 ]]></description>
			<content:encoded><![CDATA[	<p>After some great debate and discussion with Mike and Ben, ccRdf 0.3.0 is now available.  Improvments include smarter handling of predicate-object pairs in the RDF and clarification of the API.  You can find more information <a href="http://yergler.net/projects/ccrdf" >here</a>.  Enjoy.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/12/05/ccrdf-030-available/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ccLicense is now ccRdf</title>
		<link>http://yergler.net/blog/2003/12/02/cclicense-is-now-ccrdf/</link>
		<comments>http://yergler.net/blog/2003/12/02/cclicense-is-now-ccrdf/#comments</comments>
		<pubDate>Tue, 02 Dec 2003 21:14:03 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/12/02/cclicense-is-now-ccrdf</guid>
		<description><![CDATA[	I&#8217;m very happy to announce that ccLicense.py is now ccRdf.  And this is more than a name change.  Previously ccLicense.py existed only to serve the needs of ccValidator.  While it was initially intended to stand on it&#8217;s own, I destroyed that objective in my haste to get the validator working.  After [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;m very happy to announce that ccLicense.py is now ccRdf.  And this is more than a name change.  Previously ccLicense.py existed only to serve the needs of <a href="http://yergler.net/projects/ccvalidator" >ccValidator</a>.  While it was initially intended to stand on it&#8217;s own, I destroyed that objective in my haste to get the validator working.  After some friendly prodding from <a href="http://gondwanaland.com/ml/" onclick="javascript:pageTracker._trackPageview('/outbound/article/gondwanaland.com');">Mike</a> and <a href="http://ben.adida.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/ben.adida.net');">Ben</a>, and some good discussions about what the API should look like, I&#8217;ve rewritten the code as it&#8217;s own Python module.  And because it handles more than just licenses (works, for one), it&#8217;s now ccRdf.</p>
	<p>First, where to find it.  I&#8217;ve put up a very simple page for it <a href="http://yergler.net/projects/ccrdf" >here</a>.  You can find download and documentation links there, along with a brief description.</p>
	<p>Second, expectations.  I hacked the code together this afternoon, so there may be omissions or bugs.  I&#8217;ve done some simple testing, but it hasn&#8217;t undergone any extensive testing.  At all.  I&#8217;m planning to port ccValidator over to it in the very near future, which I believe will help expose flaws in the design and bugs in the code.</p>
	<p>So download, code, enjoy, and as always, feedback, criticism, and bug reports are welcome.  You can e-mail them to <a href="mailto:ccrdf@yergler.net">ccrdf@yergler.net</a> if they&#8217;re ccRdf specific.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/12/02/cclicense-is-now-ccrdf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thoughts on the future of ccLicense.py</title>
		<link>http://yergler.net/blog/2003/10/24/thoughts-on-the-future-of-cclicensepy/</link>
		<comments>http://yergler.net/blog/2003/10/24/thoughts-on-the-future-of-cclicensepy/#comments</comments>
		<pubDate>Fri, 24 Oct 2003 16:28:26 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/10/24/thoughts-on-the-future-of-cclicensepy</guid>
		<description><![CDATA[	With the Validator up and running, I&#8217;ve been thinking more about cclicense.py, and how it could be used on it&#8217;s own.  My conclusion is that in an effort to make it handle all the RDF requirements of the Validator, I&#8217;ve pretty much screwed it up for use on it&#8217;s own.  Not that it [...]]]></description>
			<content:encoded><![CDATA[	<p>With the Validator up and running, I&#8217;ve been thinking more about cclicense.py, and how it could be used on it&#8217;s own.  My conclusion is that in an effort to make it handle all the RDF requirements of the Validator, I&#8217;ve pretty much screwed it up for use on it&#8217;s own.  Not that it couldn&#8217;t be used on its own, but the APIs are inconsistent, poorly documented and incomplete.  I&#8217;d like to remedy that so it feels like I&#8217;ve completed something else.  To that end, I think these are the goals for a good Python API for Creative Commons licenses:</p>
	<ul>
		<li>the ability to consume and emit existing licenses in RDF</li>
		<li>the flexibility to discover new licensing terms through introspecting the incoming RDF</li>
		<li>the ability to get and set basic license permissions</li>
		<li>intelligent handling of Work, Agent and other &#8220;sub-objects&#8221;</li>
	</ul>
	<ul>
		<li>clarity of API so that simple solutions are obvious and complex solutions are clearly possible
	<p>I think the biggest problem I have with the current API is that it is very biased towards consuming and reading licenses; a successful API should probably have a balance between reading and writing licenses.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/10/24/thoughts-on-the-future-of-cclicensepy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Updated ccLicense.py Available</title>
		<link>http://yergler.net/blog/2003/10/17/updated-cclicensepy-available/</link>
		<comments>http://yergler.net/blog/2003/10/17/updated-cclicensepy-available/#comments</comments>
		<pubDate>Fri, 17 Oct 2003 18:13:01 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/10/17/updated-cclicensepy-available</guid>
		<description><![CDATA[	I&#8217;ve just posted an updated version of ccLicense.py, which I&#8217;ve dubbed 0.2.  You can find it here .  Changes are largely related to the way it extracts work and agent information from the license RDF.  The interfaces have been more generalized to accomodate nested RDF structures.  However, 0.2 is a step [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;ve just posted an updated version of ccLicense.py, which I&#8217;ve dubbed 0.2.  You can find it <a href="http://www.yergler.net/projects/cclicense/cclicense.02.txt" >here</a> .  Changes are largely related to the way it extracts work and agent information from the license RDF.  The interfaces have been more generalized to accomodate nested RDF structures.  However, 0.2 is a step back in terms of license creation; generalizing the extraction interfaces means the interfaces for creation need to be reworked as well.  Since the improvments were driven by <a href="http://www.yergler.net/projects/ccvalidator" >ccValidator</a> , the creation stuff was left behind.  I hope to have a more complete version ready in the near future.  As always, comments and feedback are welcome.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/10/17/updated-cclicensepy-available/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why didn&#8217;t I think of that sooner?</title>
		<link>http://yergler.net/blog/2003/10/16/why-didnt-i-think-of-that-sooner/</link>
		<comments>http://yergler.net/blog/2003/10/16/why-didnt-i-think-of-that-sooner/#comments</comments>
		<pubDate>Thu, 16 Oct 2003 21:42:36 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<category><![CDATA[ccValidator]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/10/16/why-didnt-i-think-of-that-sooner</guid>
		<description><![CDATA[	Shortly after announcing the validator to the cc-metadata list this morning, I had my first bug report.  In my defense, it&#8217;s not even a bug in my code, per say, but some invalid metadata.  However, there were several discoveries I made that I&#8217;m working to roll into both ccValidator and ccLicense.py.  In [...]]]></description>
			<content:encoded><![CDATA[	<p>Shortly after announcing the validator to the <a href="http://lists.ibiblio.org/mailman/listinfo/cc-metadata" onclick="javascript:pageTracker._trackPageview('/outbound/article/lists.ibiblio.org');">cc-metadata list</a> this morning, I had my first bug report.  In my defense, it&#8217;s not even a bug in my code, per say, but some invalid metadata.  However, there were several discoveries I made that I&#8217;m working to roll into both ccValidator and ccLicense.py.  In no particular order:</p>
	<ul>
		<li>Python 2.2 seems to have a broken <code>re</code> module which barfs on really long matches.  2.2.3 and all the 2.3 series seem to have this fixed (note: this is just my observation, if anyone can confirm/correct this, feel free)</li>
		<li>ccLicense.py returns incorrect results if the RDF block defines more than one work and&#8230;</li>
		<li>...I was trying <strong>way</strong> to hard to parse the work meta-data; some simple <a href="http://rdflib.net/stable/doc/triple_store.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/rdflib.net');">TripleStore</a> action will do fine, thank-you</li>
	</ul>
	<ul>
		<li>And finally, the way I extracted the licenses was also a little embarassing.  
	<p>So I&#8217;ve fixed the last three and my webhost is graciously upgrading Python as we speak (I hope), so a new, improved, working better than ever version of the Validator should be ready real soon now.  And I&#8217;m just kicking myself that I didn&#8217;t think of the last 3 issues sooner.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/10/16/why-didnt-i-think-of-that-sooner/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ccLicense.py 0.1</title>
		<link>http://yergler.net/blog/2003/10/16/cclicensepy-01/</link>
		<comments>http://yergler.net/blog/2003/10/16/cclicensepy-01/#comments</comments>
		<pubDate>Thu, 16 Oct 2003 16:37:40 +0000</pubDate>
		<dc:creator>Nathan Y.</dc:creator>
		
		<category><![CDATA[ccRdf]]></category>

		<guid isPermaLink="false">http://yergler.net/blog/archives/2003/10/16/cclicensepy-01</guid>
		<description><![CDATA[	As part of my effort to complete the Creative Commons web validation service, I inadvertently addressed another of their challenges: creating a language (in this case Python, of course) API for manipulating licenses.  So with muted fanfare, here&#8217;s version 0.1 of cclicense.py.  It currently supports parsing a license and extracting of permissions, restrictions, [...]]]></description>
			<content:encoded><![CDATA[	<p>As part of my effort to complete the Creative Commons web validation service, I inadvertently addressed another of their challenges: creating a language (in this case Python, of course) API for manipulating licenses.  So with muted fanfare, here&#8217;s <a href="http://www.yergler.net/projects/cclicense/cclicense.01.txt" >version 0.1 of cclicense.py</a>.  It currently supports parsing a license and extracting of permissions, restrictions, etc.  It also will emit RDF, although that&#8217;s not exactly perfect yet.</p>
	<p><strong>Future plans:</strong></p>
	<ul>
		<li>complete the methods that allow creation of new licenses</li>
		<li>fix the emitRdf method to use namespaces in a cleaner way</li>
	</ul>
	<ul>
		<li>either replace or just accept the way it handles work information (which I&#8217;m not currently a huge fan of)
	<p>In order to use it you&#8217;ll need <a href="http://www.rdflib.net" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rdflib.net');">RDFlib</a> and Aaron Swartz&#8217;s <a href="http://www.aaronsw.com/2002/tramp" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.aaronsw.com');">TRAMP</a>.  I&#8217;ll make a distutils package once I get the rest of the methods fleshed out.  As always, suggestions, comments and feedback welcome.</p>

 ]]></content:encoded>
			<wfw:commentRss>http://yergler.net/blog/2003/10/16/cclicensepy-01/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
