Git Product home page Git Product logo

ogdi-datalab's Introduction

Open Government Data Initiative v6

About

OGDI DataLab is a cloud-based Open Data Catalogue for organizations that seek to:

  • Give citizens access to government data, including browse, visualize, analyze & download in multiple formats
  • Enable developers access the data via open standards Application Programming Interfaces (APIs)
  • Streamline publishing data from government systems or by government employees from their desktops
  • Reduce up-front infrastructure costs (servers, software, etc.) by moving to a cloud service
  • Ensure reliability and scalability (grow compute requirements as catalogue grows) via cloud
  • Full access to the code to modify & customize the catalogue as you see fit.

OGDI is being used by a number of organizations such as the Government of Columba, Estonia & the European Union, City of Medicine Hat, AB, Canada, City of Regina, SK, Canada, most recently Niagara Region and others.

The older versions of OGDI v1/v2 are available on CodePlex, those been forked by City of Nanaimo

To see OGDI in action please watch this short video.

OGDI DataLab is written using C# and the .NET Framework and uses the Windows Azure Platform

OGDI DataLab Components

###Data Service OGDI uses RESTful Web service [a web service implemented using HTTP and the principles of Representational State Transfer (REST)] to expose data for programmatic access. Data service renders data using a number of formats, including Open Data Protocol (OData), an extension to Atom Publishing Protocol (AtomPub), Keyhole Markup Language (KML), JSON and JSONP. OData leverages Uniform Resource Identifiers (URIs) for resource identification and an HTTP-based uniform interface for interacting with those resources just as a user would do with any Web-based application. By building on these principles, OData enables users to achieve high levels of data integration and interoperability across a broad range of clients, servers, services, protocols and tools.

In fact, OGDI-based web APIs can be accessed through a wide variety of client technologies, including: JavaScript, Flex, PHP, Python, Ruby, ASP.NET and Silverlight. These well understood formats allow developers to start quickly on new applications.

Many of the data sets in OGDI also include geospatial data, which is returned in the KML format, making OGDI compatible with popular desktop and Web-based mapping technologies including Microsoft Bing Maps, Google Maps, Yahoo! Maps, and Google Earth.

###Data Browser The Data Browser is an ASP.NET MVC 1.0 web application. It uses jQuery and a variety of other open source components and enables users to browse and query published data. The data can be conveniently visualized in widely used and recognizable formats such as tables, maps, bar graphs or pie charts. Thus, instead of downloading a file and poring over rows upon rows of data, end-users can interact with user-friendly visual tools that present complex data in a more meaningful manner.

In addition to browsing the data, developers can quickly learn how to use published data exposed by OGDI in their own applications from ready-to-run samples available on the site. These samples are available in a variety of languages and frameworks widely used on the Web, including JavaScript, PHP, Python, Flex, Silverlight, C#, among others.

###Data Loader The data loader is a tool that helps implementers quickly start enjoying the benefits of OGDI. OGDI includes both GUI-based and console-based data loader tools. The console tool takes CSV formatted data and publishes it into OGDI. In the process of loading the data, the utility can create a new dataset, add data, or update data in an already published dataset. Console tool is controlled through command line parameters and can be automated using shell scripts.

Contributors

###Ville de Bordeaux

Open Data Bordeaux

To fully realize its opendata approach, the City of Bordeaux has focused on tools, data formats and licensing standards the most open as possible. Thus, in the opendata.bordeaux.fr portal, different file formats are available for all users, experts or novices, so they can download and use municipal data very easily.

In this spirit, Bordeaux chose OGDI DataLab, the publishing platform for open data developed by Microsoft. The city worked in close collaboration with teams from Steria and Microsoft to improve the data service in accordance with the specifications of the OData open protocol. The goal was to extend the management of the OData specification by the OGDI DataLab data service, including new keywords and many query options in order to facilitate access and reuse of public data.

These developments, and others to come, are now available for all users in the new version of the publication platform OGDI DataLab v6 proposed in the Microsoft Open Data "in a box" solution.

License

###Microsoft Public License (Ms-PL)

This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.

  1. Definitions

The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.

A "contribution" is the original software, or any additions or changes to the software.

A "contributor" is any person that distributes its contribution under this license.

"Licensed patents" are a contributor's patent claims that read directly on its contribution.

  1. Grant of Rights

(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.

(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

  1. Conditions and Limitations

(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.

(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.

(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.

(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.

(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

ogdi-datalab's People

Contributors

barranger avatar ludovicp avatar nikg avatar remiolivier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ogdi-datalab's Issues

Version of Fluent.dll downgraded when using NuGet

When following the instructions for wiki installing OGDI DataLab Version 5 on Azure and using NuGet to get the dependencies for DataLaoderGuiApp, the package downgrades the version of the Fluent.dll. It changes the project references away of the Shared folder.

Actually, the NuGet package "OGDI DataLab DataLoaderGuiApp Dependencies" is not required anymore in the current release.

The wiki should not include "OGDI DataLab DataLoaderGuiApp Dependencies" as an item in point 6 under "To install the OGDI DataLab dependencies" heading.

How can I update existing dataset?

I want to change one dataset's field types. For the time being my fields are strings and I want to change it to integers.
I tryied from data loader loading the dataset changing the fields' types, saving and seting upload mode to update.

I get the following results:
Metadata for GoatsByRegionBrokenDownByMainCategories was changed.
totalholdings : existing = System.Int32 : new = System.Double
totalgoats : existing = System.Int32 : new = System.Double
goatswhichhavealreadykidded : existing = System.Int32 : new = System.Double
goatsmated : existing = System.Int32 : new = System.Double
othergoatsnotmated : existing = System.Int32 : new = System.Double
otherfemale : existing = System.Int32 : new = System.Double
billygoats : existing = System.Int32 : new = System.Double
othermales : existing = System.Int32 : new = System.Double

What I have to do to update an existing dataset. I just need to change field types. Nothing more.

Thanks in advance.

Allow Analytics to be Disabled via Configuration

Currently you must modify code in order to remove the ability to disable analytic capturing in DataLab.

If we are not allowed to track personal information as a legal standpoint, it would be nice to be able to disable this by configuration.

Seems that a configuration check could be made in Ogdi.Azure.AnalyticsRepository before writing the information to Storage.

DataLoader - validate table name

Data Loader: Before throwing an error "XYZ is not a valid Table Name" after you click "Start", validate that the table name is named correctly:

Table names may contain only alphanumeric characters.
Table names cannot begin with a numeric character.
Table names are case-insensitive.
Table names must be from 3 to 63 characters long.

These rules are also described by the regular expression "^[A-Za-z][A-Za-z0-9]{2,62}$". Table names preserve the case with which they were created, but are case-insensitive when used.

Path from local SQL Server to Azure?

I am pretty excited about OGDI. Would it be possible to do a local installation and later deploy to Azure?

If I can do a proof-of-concept, I could use the prototype to gather internal support.

Recapcha keys don't take

Setting RecaptchaPrivateKey & RecaptchaPublicKey values doesn't "take" and causes errors.
Keys set in:

\DataBrowser\DataBrowser.WebRole\Web.Release.config
\DataBrowser\DataBrowser.WebRole\Web.config
\DataBrowser\DataBrowser.Cloud\ServiceConfiguration.Cloud.cscfg
\DataBrowser\DataBrowser.Cloud\ServiceConfiguration.Local.cscfg

End-result the error below:

Source File: e:\sitesroot\0\Views\Shared\Rates.ascx Line: 72

Line 70:
Line 71: function ShowRecaptcha() {
Line 72: Recaptcha.create('<%= Ogdi.Azure.Configuration.OgdiConfiguration.GetValue("RecaptchaPupblicKey")%>', "RecaptchaDiv", { callback: Recaptcha.focus_response_field });
Line 73: document.getElementById('RecaptchaButtons').style.display = "block";
Line 74: }

Unable to use Windows Azure Storage Emulator

This issue is caused by the how Data Container (Windows Azure Storage) urls are created by using a replacement token (http://{0}.table.core.windows.net).

When the Data Container is setup in the ConfigTool, a storagename and storagekey is provided. This is used to provide the application a Storage Location to retrieve the data loaded using the DataLoader.

This is a problem when providing the local storage values as http://devstoreaccount1.table.core.windows.net is not a valid storage account most likely doesn't have the accountkey of Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Here is how storage urls differ between production and the storage emulator:

Windows Azure Storage Url

  • Blob: http://<accountname>.blob.core.windows.net/<resource-path>
  • Table: http://<accountname>.table.core.windows.net/<resource-path>
  • Queue: http://<accountname>.queue.core.windows.net/<resource-path>

Windows Azure Storage Emulator Url

More details found on msdn article, overview of running a windows azure application with local storage

Catalog upload

Hi,
I installed ogdi for test purpose. For now, I put the information that is available from datahub. But each csv file has an error...
"Failed to process entity.

Entity Start:
Name = 'EntityId' Value = '80ee7cda-9871-4ce6-88d2-68bf9f98e645'
Name = 'DATE' Value = '1970-01-01'
Name = 'VALUE' Value = '55.8'
Name = 'RdfSnippet' Value = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ogdi="ogdiUrl">rdf:Description<ogdi:date rdf:datatype="xs:string">1970-01-01/ogdi:date<ogdi:value rdf:datatype="xs:double">55.8/ogdi:value/rdf:Description/rdf:RDF'
Entity End

Value cannot be null.
Parameter name: field

Failed to process entity."

Ok, some of these files, regardless to the errors,was successfully uploaded.
Can someone explain what's going on? Of course, I used DataLoaderGuiApp...

ServiceURI port

serviceUri keys should be pre-set to port 8080 for the
http://[DataServiceDNS].cloudapp.net:8080/v1/

Azure 1.7 SDK update

The problem is that the full web auto installer from Microsoft forces upgrading to the newer version of the SDK and that breaks the project.


According an instruction document I received from an Andrew Stewart:

"One issue I encountered was with Microsoft.WindowsAzure.StorageClient library reference within DataLoaderGUIApp. I had previously installed Azure SDK for Visual Studio 2012 which had newer libraries. I was required to uninstall these tools and reinstall the SDK for Visual Studio 2010 (November release). I had to rebuild the project and it was fixed, may also have to re-add references manually."


I can confirm that this problem does exist in the project. The DataLoaderGUIApp will not run the XmlSerializer properly when creating a config file with the new SDK. That was as far as I could get tracing the problem.

https://github.com/openlab/DataLab/blob/datalab/DataLoader/DataLoader/Helpers/SerializationHelper.cs

line 30 : var serializer = new XmlSerializer(data.GetType()); //This is where it fails in the code.

ConfigTool usage - no way to make it running like v2.0

In version 2.0 the ConfigTool prepared your Storage accounts to run the application against your own datasets, in this version there are several errors related to this configuration. Firs it only runs properly against Storage account and original service (ServiceURI) and if you use your own service browser URI you will get always the same error (due an exception because it can'not find the model (table sotorage with the curren configuration).

Documentation in the wiki area is confusing, mixing concepts and names that doesn't exist in the current version (4 or 5). InteractiveSDK is the name of the namespace but not the projects, and the page of the Service Topology is confusing either due there is like a Hosted Service for the Data Service but in the real solution this is included into the Web Role (DataBrowser)

Is there any way to create and configure Table Storage using our accounts and load only our datasets or is only available for using the current datatasets and configurations from http://data.govdata.eu

FireFox endless loop: p_elSource.attachEvent is not a function

Services project excluded from solution (and not working)

Hi

I'm new in github so if I wrote in the wrong place I apologize

I'm trying to use dataservices but I found the cloud project outsite the solution in (DataService\Services)
are you working on it?

Why innerside the servicedefinitions.csdef there are errors like:
"<<<<<<< HEAD:DataService/Services/ServiceConfiguration.Cloud.cscfg".. or "======="... ??????

With the correct cloud project, and working dataservices, will I be able to upload and after download/use a KML file like http://datigis.comune.fi.it/kml/areeverdi.kmz??

many thanks everyone

Antonio

Deploy - guideline

Hi,
Is there deploy guideline for version v6? I have not found guideline doc.

Best regards,
Milos

views_today/views_total increases by 2

Analytics information - config storage account. The main databrowser page lists total views. When choosing a dataset and going to Data Browser page, views_today/views_total are incremented by 2 each time the page is reloaded.

Problem with the data loader

I have a great problem in the last step of running the ogdi.
I have tested both v2 and v4 and I face exactly the same problem with the data loader utility.
I created all storages and services all went well and when i try to upload a simple csv file (in v4 its not , seperated but ; seperated) it seems to be imposible.
I try to upload a simple CSV file with contents like below:

a,b,c,d,e
1,51,35,14,2
2,49,30,14,2
3,47,32,13,2
4,46,31,15,2
5,50,36,14,2
6,54,39,17,4

The cfg that is created is below:

string string string string string (UTC+02:00) Athens, Bucharest, Istanbul b a Name New.Guid EntitySet EntityKind iris iris iris iris 2012-06-03T01:12:46.1453125+03:00 2012-06-03T01:12:46.1453125+03:00 2012-06-04T01:12:46.1453125+03:00 false

When the cfg is created and i push the start button i get the result below:

Entity Start:
Name = 'EntityId' Value = '2825dda9-909a-4e80-bf89-c951727a2b92'
Name = 'primar' Value = '1'
Name = 'a' Value = '51'
Name = 'b' Value = '35'
Name = 'c' Value = '14'
Name = 'd' Value = '2'
Entity End

Value cannot be null.
Parameter name: field

Failed to process entity.

Entity Start:
Name = 'EntityId' Value = 'fb64a28d-f716-4644-9fc9-2398f2c22939'
Name = 'primar' Value = '2'
Name = 'a' Value = '49'
Name = 'b' Value = '30'
Name = 'c' Value = '14'
Name = 'd' Value = '2'
Entity End

Value cannot be null.
Parameter name: field

Failed to process entity.

Entity Start:
Name = 'EntityId' Value = '75cdffbf-7add-4e7d-a283-1e37fa093fc2'
Name = 'primar' Value = '3'
Name = 'a' Value = '47'
Name = 'b' Value = '32'
Name = 'c' Value = '13'
Name = 'd' Value = '2'
Entity End

Value cannot be null.
Parameter name: field

Failed to process entity.

Entity Start:
Name = 'EntityId' Value = 'ca164c9c-9059-4654-b30f-71f6a3b2934a'
Name = 'primar' Value = '4'
Name = 'a' Value = '46'
Name = 'b' Value = '31'
Name = 'c' Value = '15'
Name = 'd' Value = '2'
Entity End

Value cannot be null.
Parameter name: field

Failed to process entity.

Entity Start:
Name = 'EntityId' Value = '2b86197d-731e-4a84-99a6-5f177382aff7'
Name = 'primar' Value = '5'
Name = 'a' Value = '50'
Name = 'b' Value = '36'
Name = 'c' Value = '14'
Name = 'd' Value = '2'
Entity End

Thanks

DataBrowser - Gets stuck on loading data

DataBrowser sporadically hangs with the dataset not showing, only the '/mages/loading2.gif"

Example: http://waodpreview1.cloudapp.net/DataBrowser/waodpreview1/BicycleLanesWaterlooV1#param=NOFILTER--DataView--Results

Most of the time latent elements BEFORE the dataset shows seem to be (from a few tests):
/DataBrowser/DataBrowserRun/ - Avg Latency 1.8 minute !
/HistoryIframeHelper/Index - Avg Latency 1.8 minute !

Most of the time AFTER the dataset shows it's the: addthis_widget.js that gets "stuck"

Query CASE Sensitivity

TopList Dates of 41/15/2012.

I was working with my copy of the project and noted a typo in the TopList date format.

The DateFormat resource has a value of "mm/dd/yyyy". In C# date format that means: minutes/days/years. The correct DateFormat to be used (which IS used on the LastUpdateDateFormat is "MM/dd/yyyy". This issue is in Resources->Views->DataCatalog->TopList.resx.

KMZ Support to project

I'm not sure if this is a decision to add to the project or not, but adding fuller support for KMZ files. I was able to modify the uploader with another project that is open source so the DataLoader can open a kml file within a KMZ file. The project that I used is SharpKML off of codeplex and it uses a Zip file framework. So far the implementation was fairly simple by adding references to the new format type, and adding a new KMZ implementation closely based upon the KML implementation for upload in the DataLoader project. I'm now working on seeing if I can get the downloader to also allow to download a KML or KMZ file afterwards from the website.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.