Showing posts with label turtle. Show all posts
Showing posts with label turtle. Show all posts

Friday, March 20, 2015

Linked Open Election Framework for Publishing Election Data and Results in Structured Formats

Author:
Topics: , , , , ,
Situation analysis

In most part of the world, there is hardly any freely available database of political election results in existence. This is because the data required to compile it is located in different websites or documents. The information is presented in many different formats and many different ways, and the only way the information can be compiled for re-use is by manual methods.

The Linked Open Election Framework is supporting the publication of election results as (the language used to write web pages) embed (called "Metadata") in the source code. Though invisible to normal users, publishing the information in this way gives it structure and meaning, and allowing machines to understand its meaning.

What is the Linked Open Election Framework?

The main point of is to aid accountability and transparency and this framework supports the publication and public access to Election results on websites as – data that is published under an open licence that allows unrestricted reuse, and that is marked up to identify the structure and meaning, making possible its automated collection for re-publishing and mashing up with other data.

How does it work?

Rather than publishing using not-so open formats or standards like PDF, HTML, Plain Text, etc, we embed machine-readable metadata in the HTML source code of web pages. These metadata is derived from information defined from the Election data. Entities or "things" that make up the Election data are defined as items and described in an HTML page. Each item is made up of one or more key-value pairs: a property and a value. The Microdata syntax is completely made up of HTML attributes. These attributes can be used on any valid HTML element. This gives the information structure and meaning, with a licence to allow collection, collation and reuse by anyone at no cost.

This structured information or "Structured Data" is a broad term that encompasses various standards and encoding mechanisms but, at the end of the day, refers to information provided to data consumers specifically for machine consumption. This machine-readable code is closely-allied to, but separate from, the presentation layer that us humans consume when we read a web page, providing a way for dumb machines to better understand the entities and connections between entities present in a piece of content.

Although this additional code does not directly impact the user's experience of the page, it makes a big difference to machines (including Bots, Smart Agents, Search Engines, etc), helping them to "understand" that (for example) this webpage:

  • Is a News Article
  • Has the headline "Election Results for Ekiti Governorship Election 2014"
  • Has information on a "Poll" event held on June 21, 2014

To make this metadata available we have used a vocabulary (or ) called Linked Open Election. This vocabulary provides a simple way of expressing Election data and information in Linked Data formats. Additionally, we used vocabulary proposed by Google, Bing, Yahoo and others

This metadata comprises of real-world entities refered by Uniform Resource Identifiers (URIs).

Benefits

: An immediate benefit of this work will be that search engines will be better able to display links to these News articles, helping users to find relevant stories and to determine from a search engine's listings the relevance of the article to the story that they are searching for and ultimately help to open up references to the data contained in those stories.

Linked Open Data: It will create an open database of election data and results.

Why is it important?

The use of Linked Open Data provides a clear signal to every organizations and governments the imminence of the "web of data" or Web 3.0. Every Web Site has to evolve into a Linked Data Space: a location on the Web that provides granular access to discrete data items in line with the core principles of the Linked Data meme.

Remember, the essence of the Linked Data meme is simply this: you reference data items and access their metadata, in variety of formats via a single HTTP based URI. This approach to Web data publishing is compatible with any HTTP aware user agent (e.g. your Web Browser or tools & applications that provide abstracted access to HTTP).

Do you need a special software to do this?

No, just the same way to mark up HTML. This also works in Content Management and Blogging system.

Tutorials & How to

  • How to Embed Election Data in HTML using HTML5, Microdata and Linked Data - Read
  • How to Publish Election Data in Nanotation (aka micro-Turtle) - Read
  • Sample Nanotation on Election Data and Results - View
  • Sample Election Data in RDF (turtle) document - View
  • Sample Election Data in HTML5, Microdata format - View
  • Sample Election Poll Data in RDF (turtle) document - View
  • List of Nigerian Political Parties in RDF (turtle) document - View
  • Linked Open Election Ontology - View
  • Prefix - loe
  • About Linked Open Election Framework - Read

Tuesday, March 10, 2015

Sample Nanotation on Election Data and Results

Sample Nanotation on Election Data

.

Nanotation,also known as micro , that describes an election that was held on the 21st of june 2014 in Nigeria is as follows:


	{

		@prefix schema:   .
		@prefix election:  .
		
		<>
		a schema:NewsArticle, election:Poll ;
		
		schema:name "Election Results";
		schema:headline "Election Results";

		schema:author [
				  a schema:Person ;
				  schema:name "Emeka Okoye" ;
				  schema:url  ;
		
		]	;
		schema:creator [
				  a schema:Person ;
				  schema:name "Emeka Okoye" ;
				  schema:url  ;
		
		]	;
		
		schema:about [
				  a schema:Thing ;
				  schema:name "Election" ;
				  schema:url  ;
		
		]	, 
		
		[
				  a schema:Thing ;
				  schema:name "Elections in Nigeria" ;
				  schema:url  ;
		
		]	; 
		
		schema:articleBody "your story or article goes here" ;
		schema:sourceOrganization 	[
				  a schema:Organization ;
				  schema:name "OpenDataNG" ;
				  schema:url  ;
		
		]	; 

		schema:provider [
				  a schema:Organization ;
				  schema:name "OpenDataNG" ;
				  schema:url  ;
		
		]	;  
		
		election:hasElectionDate "2014-06-21"^^xsd:date ;
		election:hasConstituency  ;
		election:hasRegisteredVoters "733766"^^xsd:integer ;
		election:hasAccreditedVoters "369257"^^xsd:integer ;
		election:hasTotalBallots "360455"^^xsd:integer ;
		election:hasInvalidBallots "10089"^^xsd:integer ;
		election:hasValidBallots "350366"^^xsd:integer ;
		election:hasViolence "false"^^xsd:boolean ;
		election:isCandidate <#candidate1>, <#candidate2>, <#candidate3> ;
		election:hasElectoralFraud "false"^^xsd:boolean .
		
		<#candidate1> a election:Candidate ;
		schema:name "Ayodele Peter Fayose" ;
		election:isOfPoliticalParty  ;
		election:hasVotes "203090"^^xsd:integer ;
		election:isElected "true"^^xsd:boolean .

		<#candidate2> a election:Candidate ;
		schema:name "John Olukayode Fayemi" ;
		election:isOfPoliticalParty  ;
		election:hasVotes "120433"^^xsd:integer ;
		election:isElected "false"^^xsd:boolean .
		
		
		<#candidate3> a election:Candidate ;
		schema:name "Bamidele Michael Opeyemi" ;
		election:isOfPoliticalParty  ;
		election:hasVotes "18135"^^xsd:integer ;
		election:isElected "false"^^xsd:boolean .
		
	
	}

Friday, March 6, 2015

Linked Open Election Framework Implementation Guide for Nanotation

How to Publish Election Data in Nanotation

.

Subjects: , , ,

Introduction:

This guide will show you how to implement the Linked Open Election Data using Nanotation and the Linked Election Framework.

Nanotations, which are micro Turtle, are deployable from any social media/networking space or service that offers the ability to post plain text (Twitter Tweets, Facebook Posts, Google+ Posts, LinkedIn Posts, Blog Posts, Comments, Mailing List Posts etc.. ).

This guide assumes a basic knowledge of Nanotation. If you're new to the subject or just need some brushing up, we recommend that you read the Kingsley Idehen's post on Nanotation.

Solution:

  1. First thing to do is to define the article or post that will host the election data:

    	{
    
    		@prefix schema:   .
    		
    		<>
    		a schema:NewsArticle ;
    		
    	}
     
    Please note that you can also use other Schema.org classes like schema:Article,schema:TechArticle, schema:BlogPost, schema:ScholarlyArticle as the document type.

  2. Define the name and headline of the post.

     
    	{
    
    		@prefix schema:   .
    		
    		<>
    		a schema:NewsArticle ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results".
    	
    	}
     

  3. Embed the author's name and profile URI (eg. Google+, WebID-Profile, DBpedia, Freebase, etc) :

    	{
    
    		@prefix schema:   .
    		
    		<>
    		a schema:NewsArticle ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results";
    
    		schema:author [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		schema:creator [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	.
    	
    	}
    
     

  4. Annotate the data, tags or subject associated with the article. You can define as many as possible using entities in Wikipedia, Freebase and Linked Open Data (LOD), delimited with commas :

     	{
    
    		@prefix schema:   .
    		
    		<>
    		a schema:NewsArticle ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results";
    
    		schema:author [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		schema:creator [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		
    		schema:about [
    				  a schema:Thing ;
    				  schema:name "Election" ;
    				  schema:url  ;
    		
    		]	, 
    		
    		[
    				  a schema:Thing ;
    				  schema:name "Elections in Nigeria" ;
    				  schema:url  ;
    		
    		]	. 
    	
    	}
    
     
    We're going to finish by annotating all of the data we've asserted concerning the article's associated entities.

  5. Embed your news story or article within the attribute "articleBody" .

     	{
    
    		@prefix schema:   .
    		
    		<>
    		a schema:NewsArticle ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results";
    
    		schema:author [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		schema:creator [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		
    		schema:about [
    				  a schema:Thing ;
    				  schema:name "Election" ;
    				  schema:url  ;
    		
    		]	, 
    		
    		[
    				  a schema:Thing ;
    				  schema:name "Elections in Nigeria" ;
    				  schema:url  ;
    		
    		]	; 
    		
    		schema:articleBody "your story or article goes here" .
    	
    	}
    
     

  6. Embed the election results. See subsequent steps on how to embed election polling data.

  7. Define and setup your poll and add the election schema.

     
     	{
    
    		@prefix schema:   .
    		@prefix election:  .
    		
    		<>
    		a schema:NewsArticle, election:Poll ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results";
    
    		schema:author [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		schema:creator [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		
    		schema:about [
    				  a schema:Thing ;
    				  schema:name "Election" ;
    				  schema:url  ;
    		
    		]	, 
    		
    		[
    				  a schema:Thing ;
    				  schema:name "Elections in Nigeria" ;
    				  schema:url  ;
    		
    		]	; 
    		
    		schema:articleBody "your story or article goes here" .
    	
    	}
      
     

  8. Add and update the attributes of the poll and candidates

     	{
    
    		@prefix schema:   .
    		@prefix election:  .
    		
    		<>
    		a schema:NewsArticle, election:Poll ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results";
    
    		schema:author [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		schema:creator [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		
    		schema:about [
    				  a schema:Thing ;
    				  schema:name "Election" ;
    				  schema:url  ;
    		
    		]	, 
    		
    		[
    				  a schema:Thing ;
    				  schema:name "Elections in Nigeria" ;
    				  schema:url  ;
    		
    		]	; 
    		
    		schema:articleBody "your story or article goes here" ;
    		
    		election:hasElectionDate "2014-06-21"^^xsd:date ;
    		election:hasConstituency  ;
    		election:hasRegisteredVoters "733766"^^xsd:integer ;
    		election:hasAccreditedVoters "369257"^^xsd:integer ;
    		election:hasTotalBallots "360455"^^xsd:integer ;
    		election:hasInvalidBallots "10089"^^xsd:integer ;
    		election:hasValidBallots "350366"^^xsd:integer ;
    		election:hasViolence "false"^^xsd:boolean ;
    		election:isCandidate <#candidate1>, <#candidate2>, <#candidate3> ;
    		election:hasElectoralFraud "false"^^xsd:boolean .
    		
    		<#candidate1> a election:Candidate ;
    		schema:name "Ayodele Peter Fayose" ;
    		election:isOfPoliticalParty  ;
    		election:hasVotes "203090"^^xsd:integer ;
    		election:isElected "true"^^xsd:boolean .
    
    		<#candidate2> a election:Candidate ;
    		schema:name "John Olukayode Fayemi" ;
    		election:isOfPoliticalParty  ;
    		election:hasVotes "120433"^^xsd:integer ;
    		election:isElected "false"^^xsd:boolean .
    		
    		
    		<#candidate3> a election:Candidate ;
    		schema:name "Bamidele Michael Opeyemi" ;
    		election:isOfPoliticalParty  ;
    		election:hasVotes "18135"^^xsd:integer ;
    		election:isElected "false"^^xsd:boolean .
    	
    	
    	}
    
    
    	
     

  9. Finally, you can add the provider organization data. The url attribute should be the website URL of the news or blogger organization while the name of the organization is added to the name attribute:

    
     	{
    
    		@prefix schema:   .
    		@prefix election:  .
    		
    		<>
    		a schema:NewsArticle, election:Poll ;
    		
    		schema:name "Election Results";
    		schema:headline "Election Results";
    
    		schema:author [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		schema:creator [
    				  a schema:Person ;
    				  schema:name "Creator's name" ;
    				  schema:url  ;
    		
    		]	;
    		
    		schema:about [
    				  a schema:Thing ;
    				  schema:name "Election" ;
    				  schema:url  ;
    		
    		]	, 
    		
    		[
    				  a schema:Thing ;
    				  schema:name "Elections in Nigeria" ;
    				  schema:url  ;
    		
    		]	; 
    		
    		schema:articleBody "your story or article goes here" ;
    		schema:sourceOrganization 	[
    				  a schema:Organization ;
    				  schema:name "Your organization name" ;
    				  schema:url  ;
    		
    		]	; 
    
    		schema:provider [
    				  a schema:Organization ;
    				  schema:name "Your organization name" ;
    				  schema:url  ;
    		
    		]	;  
    		
    		election:hasElectionDate "2014-06-21"^^xsd:date ;
    		election:hasConstituency  ;
    		election:hasRegisteredVoters "733766"^^xsd:integer ;
    		election:hasAccreditedVoters "369257"^^xsd:integer ;
    		election:hasTotalBallots "360455"^^xsd:integer ;
    		election:hasInvalidBallots "10089"^^xsd:integer ;
    		election:hasValidBallots "350366"^^xsd:integer ;
    		election:hasViolence "false"^^xsd:boolean ;
    		election:isCandidate <#candidate1>, <#candidate2>, <#candidate3> ;
    		election:hasElectoralFraud "false"^^xsd:boolean .
    		
    		<#candidate1> a election:Candidate ;
    		schema:name "Ayodele Peter Fayose" ;
    		election:isOfPoliticalParty  ;
    		election:hasVotes "203090"^^xsd:integer ;
    		election:isElected "true"^^xsd:boolean .
    
    		<#candidate2> a election:Candidate ;
    		schema:name "John Olukayode Fayemi" ;
    		election:isOfPoliticalParty  ;
    		election:hasVotes "120433"^^xsd:integer ;
    		election:isElected "false"^^xsd:boolean .
    		
    		
    		<#candidate3> a election:Candidate ;
    		schema:name "Bamidele Michael Opeyemi" ;
    		election:isOfPoliticalParty  ;
    		election:hasVotes "18135"^^xsd:integer ;
    		election:isElected "false"^^xsd:boolean .
    		
    	
    	}
    
    
    	
    	
     

That is it.

Information:

References

- http://en.wikipedia.org/wiki/DBpedia

- http://en.wikipedia.org/wiki/SPARQL

- http://www.w3.org/TR/turtle/

- http://kidehen.blogspot.com/2015/01/review-publishing-for-everyone.html

- http://kidehen.blogspot.com/2014/07/nanotation.html

Keywords: linked data, election, semantic web, turtle