By Greg Lawrance, Metadata & Catalogue Services, DataBC
Getting the code into GitHub has been a pathfinder project for the BC Developers’ Exchange (BCDevExchange). We have ‘learned by doing,’ developing new policy innovations to make it possible. In doing so, we have cleared the path for future government open source projects.
What is the BC Data Catalogue?
Launched last year, the BC Data Catalogue (BCDC) lists more than 3,500 datasets, applications and APIs, including over 1500 datasets licensed for commercial use under the Open Government License – BC .
The BCDC is powered by open source software called CKAN (Comprehensive Knowledge Archive Network). Originally developed by the non-profit Open Knowledge Foundation (OKFN) for the Government of the United Kingdom, CKAN has been adopted by governments around the world, including the Government of Canada.
The OKFN provides CKAN software under the GNU Affero Public License v3.0 (AGPL). Specifically designed to foster collaboration, the AGPL is a ‘copy-left’ or share-a-like license. The license requires those who deploy the software to the web to share their code modifications, revisions and contributions back to the community under the same license terms.
Accordingly, we are sharing our CKAN code modifications back to the community via GitHub. Features we have added include a data dictionary that pulls schema descriptions directly from our database, linkages to web mapping applications, and integration of the Government of Canada’s open source Web Experience Toolkit that provides responsive design and multi-lingual and accessibility features. We hope some of the new features developed for the BCDC make their way back into the core code, or are leveraged by other developers.
Why Open Source?
Choosing CKAN places the Province in good company. More than 115 governments and institutions around the globe use CKAN for their data catalogues. Because code enhancements are shared, everyone using the software benefits from enhancements made by the community, creating a better product at a lower cost.
Community knowledge is another advantage of choosing open source software. We used GitHub, mailing lists, IRC channels and forums to connect with a vibrant community of over 100 CKAN developers around the world. This developer community shared their experiences and advice on how to customize and implement the software to meet the Province’s requirements.
To contribute code back required a number of policy innovations including the Province’s entry into GitHub, a move that sets the stage for government to collaborate with developers on future open source projects.
We modified contract language to create appropriate intellectual property rights to distribute the code under an open source license and to allow the vendor to work on open source code on behalf of government. These contract innovations can now be used by other B.C. government open source projects.
Our next step is to explore how we use the BCDevExchange to expose our backlog of catalogue issues and enhancements so that people interested in helping can pitch in and help us learn to ‘develop in the open.’ Are you one of those people?
Do you have opinions on how we can do this?
Let us know what you think by posting a comment on this blog.