Liblicense

From Creative Commons
Revision as of 22:30, 22 June 2007 by Scott Shawcroft (talk | contribs) (Example)
Jump to: navigation, search


System Overview

Purpose

To provide a simple way for developers to make their applications license aware. Additionally, supplemental modules aim to provide a method for users to track licenses of files on their system. This project complements Companion File metadata specification and Tracker CC Indexing.

Architecture

System architecture.png

svg version

Config Modules

  • in_use() - returns whether or not the corresponding config system exists on the computer
  • get() - returns the current default license uri
  • set(uri) - sets the default license uri and returns 0 upon success (non-zero for errors)

I/O Modules

  • mime_types - null terminated list of handled mime-types (all indicates external storage method which works for any file)
  • read(filename) - returns the license uri for the given file (embedded license takes precedence)
  • write(filename,uri) - writes the license uri for the given file

License Files (.rdf)

Attributes

  • cc:license
    • about
    • permits
    • requires
    • prohibits
  • dc:title - The human readable name of the license.
  • dc:description - Description of the license.
  • dc:coverage - The jurisdiction of the license. (country code from ISO3166)
  • dc:language - The language of the license. (language code under RFC3066)
  • dc:relation
    • hasVersion - version number
    • isReplacedBy - indicates retired license (URI)
    • isBasedOn - indicates ported version (URI)
  • dc:rights license - license the license is available under (URI)
  • dc:type - always "License"
  • dc:creator
  • dc:publisher
  • dc:identifier - URI of license (URI)

Example

<rdf:RDF
   xmlns="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
>
  <rdf:Description rdf:about="http://creativecommons.org/licenses/by-nd/2.0/za/">
    <dc:title>Creative Commons Attribution No Derivatives</dc:title>
    <dc:description>This license allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to you.</dc:description>
    <dc:coverage>za</dc:coverage>
    <dc:language>en</dc:language>
    <dc:hasVersion>2.0</dc:hasVersion>
    <dc:isReplacedBy>http://creativecommons.org/licenses/by-nd/2.5/za/</dc:isReplacedBy>
    <dc:isBasedOn>http://creativecommons.org/licenses/by-nd/2.5/</dc:isBasedOn>
    <dc:type>License</dc:type>
    <dc:creator>iCommons</dc:creator>
    <dc:publisher>Creative Commons</dc:publisher>
    <dc:identifier>http://creativecommons.org/licenses/by-nd/2.0/za/</dc:identifier>

    <rdf:type rdf:resource="http://creativecommons.org/ns#License"/>
    <permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
    <permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
    <requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
    <requires rdf:resource="http://creativecommons.org/ns#Notice"/>
  </rdf:Description>
</rdf:RDF>

Frontends

See Desktop Integration

Timeline

6/18

  • Finalize liblicense API.

6/25

  • Write liblicense.
  • Stub config and IO modules.

7/2

  • liblicense python bindings.

7/9

  • Gconf config module.
  • Nautilus IO module.

7/16

  • Nautilus GUI frontend.
  • Gnome control panel frontend.

7/23

  • Sugar Journal backend.
  • Sugar frontend.

7/30

  • Bug hunting.
  • Frontend polishing.

8/6

8/13

8/20