Difference between revisions of "Main Page/VisualizationiAnnEvents"

From Protein Prediction 2 Winter Semester 2014
(Proposal for Schema changes)
Line 269: Line 269:
   
 
While using newly proposed scheme iAnn will have a possibility to serve even more diverse data. This will serve as a basis for new services on top of Solr search engine. On top of that, migration to newer version of Solr will make it safer.
 
While using newly proposed scheme iAnn will have a possibility to serve even more diverse data. This will serve as a basis for new services on top of Solr search engine. On top of that, migration to newer version of Solr will make it safer.
  +
  +
== Week 3(5.12.2014 - 11.12.2014) ==
  +
  +
Activities :
  +
  +
===Word Cloud===
  +
* We have improved our word cloud look compared to our previous week.
  +
* Also we had an issue in bringing all the words in to cloud and now this is also solved.
  +
  +
===3D Globe===
  +
* We tried with adding markups in the Globe, but we had an issue while converting to 2D map, as you can imagine the markup positions varies for each country with respect to 3D and 2D view, that transition we can't able to achieve with the markup.
  +
* We even tried with adding colors for each country, but it doesn't looks good.
  +
  +
===Partition Layout===
  +
* We have developed the Tree map with respect to keywords.
  +
* Currently it's not interactive, we are working on it.
  +
* Once we are done with Tree map, we will also do the BiLevel Partition which is one of the visualization our mentors are very much interested.
   
 
====GitHub Repository====
 
====GitHub Repository====

Revision as of 12:53, 12 December 2014

iAnn is an open source community-driven platform for dissemination of life science announcements, such as courses, conferences and workshops.Announcements are curated into a centralised registry through an editor. The information from the registry is exposed to the users through web services. And on top of the web services a javascript application is build to visualize the content using different views (list, maps and calendar).

IAnn workflow.png

Git Repository


1. GUI mockups

User experience

  • Currently the user interface looks like this

Ui1.PNG

Ui2.PNG

How we are going to improve it ?

By incorporating the following visualizations

  • 3D Globe for Maps
  • Word Cloud for filtering.
  • Bilevel/Zoomable Partition Layout for Events.

3D Globe for maps

Functionality
  • Can able to Rotate the map.
  • Able to view information of each events, here we plan to implement this module using the technique Orthographic to Equirectangular.
  • Along with the event information corresponding url will also be embedded.
3dglobe.PNG Orthographic to Equirectangular.gif
3D Globe Orthographic_to_Equirectangular

Features

  • User can filter the events based on country and date.
  • Interconnected lines between the countries which are likely to have events happening on same date.

BiLevel/Zoomable Partition Layout for Events

Functionality
  • Navigation through events, with an emphasis on usability.
Vis1.png Vis2.png
Zoomable Partition BiLevel Partition
Features
  • Each inner circle is representing root category, i.e. country, which expands on click and displays details, i.e. events in a selected country.

Word Cloud for Keywords

Functionality
  • Visualization of the most used keywords in iAnn search.
Features
  • Based on popularity, the size of each word varies.

2. Application design

Expected technical difficulties

  • Implementing Orthographic to Equirectangular on each marker points(countries).
  • Interconnecting lines between the countries when the events from different countries likely to happen on same date, because we need latitude and longitude points to map.

Fancy libraries you plan to use

  • D3.js
  • Ajaxsolr


3. Data Format

Remarks

  • Input is likely to be in json format with events,location and date, etc.
  • With the above information it’s difficult to map the exact location in map, we need the latitude and longitude points to overcome it.

4. Roadmap

  • Finalize our proposed ideas.
  • Refactor the existing code of widget to make sure that object oriented approach is followed, so that it’s easy to combine with javascript events.
  • Developing all the required and accepted visualization components.
  • Finally Integrating into widget and upload to BioJs


Week 1(21.11.2014 - 27.11.2014)

"Mentors are happy with our proposed ideas"

After the discussion with our mentors we were able to finalize our task.

Below you can find the list of tasks based on the priority

  • Refactoring the code
  • Refactoring the Solr scheme
  • Solr Migration from 2.1.0 to 2.10
  • Word Cloud
  • 3D Globe
  • Bilevel Partition (if time permits)
  • Configurating Tomcat server instead of Jetty, due to security concerns (if time permits)
  • Preparing endpoints for our visualisation widgets (if time permits)

Challenges

  • Understanding the working of Ajax Solr.
  • Integrating the new components with the existing widget.
  • Proposing changes for the new general Solr schema.
  • Migrating from version 2.1.0 to 2.10.

Status

  • Setup of repositories, working directories and shared documents
  • Go through some basic tutorials of Ajax Solr.
  • We were successfully able to design a word cloud using D3 for one of the filter options "Host", but need to work on size and onclick events.
  • Apache Solr installed and running in a private virtual machine.
  • Analysed requirements and old schema + started writing proposal for a new one.

Plans for Week 2

  • Implement the word cloud for rest of the filter options.
  • And also to include the onclick events.
  • Initial setup for 3D Globe
  • Deliver proposal (document) for changes in a Solr schema and discuss them with project sponsors.

Week 2(28.11.2014 - 4.12.2014)

Word Cloud

  • Implementation of Word Cloud for advanced filter options is done, waiting for the feedback.
    • Greater the size of word, the more popular it is.

Screenshots

Wordcloud.JPG

GitHub Repository

GitHub : iANN_WORD_CLOUD

3D Globe

  • Initial setup for 3D Globe is done.
 Note : Currently there is a problem in running with chrome due to queue library for asynchronous request, it is advised to view either in Mozilla firefox or safari
  • In addition filter based on country is also included.
    • List of all countries are available in dropdown for user selection.

Screenshots

3dglobe initial.JPG

  • Rotate function is also incorporated.
    • Based on the country selection, the globe rotates and points to a specific location.

Screenshots

3dglobe rotate.JPG

  • Transformation of 3D to 2D(Orthographic to Equirectangular) is also completed.
    • By clicking on specific country on the globe, the 3D to 2D transformation happens and the selection area remains highlighted.
    • The reverse process i.e 2D to 3D can be achieved by clicking again on the layout.

Screenshots

3dglobe trans.JPG

GitHub Repository

GitHub : iANN_3D_GLOBE


Proposal for Schema changes


Current version of iAnn website is delivering a service by using custom schema for data attributes naming. However, it is not standardized and does not have default field naming scheme. Therefore, a community agreed on default schema layout, named SASI. In this document we will point out differences and describe new schema fields. As current iAnn collection runs on Apache Solr 4.1 and the latest one with some major bug fixes is 4.10.2, we decided to migrate and update our service as well.

Accomplished tasks:

  • Understanding of existing scheme,
  • Proposing structure changes and
  • Highlighting differences


Old Scheme:

  <field name="id" type="string" indexed="true" stored="true" required="true" />
  <field name="title" type="text" indexed="true" stored="true"/>
  <field name="subtitle" type="text" indexed="true" stored="true"/>
  <field name="description" type="string" indexed="false" stored="true"/>
  <field name="provider" type="text_lowercase" indexed="true" stored="true"/>
  <field name="link" type="string" indexed="false" stored="true"/>
  <field name="start" type="tdate" indexed="true" stored="true"/>
  <field name="end" type="tdate" indexed="true" stored="true"/>
  <field name="venue" type="text_lowercase" indexed="true" stored="true"/> 
  <field name="city" type="text_lowercase" indexed="true" stored="true"/>
  <field name="county" type="string" indexed="fasle" stored="true"/>
  <field name="country" type="text_lowercase" indexed="true" stored="true"/>
  <field name="postcode" type="string" indexed="false" stored="true"/>
  <field name="attachment" type="string" indexed="false" stored="true" multiValued="true"/>
  <field name="image" type="string" indexed="false" stored="true" multiValued="true"/>
  <field name="keyword" type="text_lowercase" indexed="true" stored="true" multiValued="true"/>
  <field name="category" type="text_lowercase" indexed="true" stored="true" multiValued="true"/>
  <field name="field" type="text_lowercase" indexed="true" stored="true" multiValued="true"/> 
  <field name="submission_name" type="text_lowercase" indexed="true" stored="true" multiValued="true"/>
  <field name="submission_email" type="string" indexed="true" stored="true" multiValued="true"/>
  <field name="submission_date" type="tdate" indexed="true" stored="true" multiValued="true"/>
  <field name="submission_comment" type="text" indexed="false" stored="true" multiValued="true"/>
  <field name="submission_organization" type="text" indexed="true" stored="true" multiValued="true"/>
  <field name="latitude" type="double" indexed="true" stored="true"/>
  <field name="longitude" type="double" indexed="true" stored="true"/>
  <field name="sponsor" type="text_lowercase" indexed="true" stored="true"/>
  <field name="public" type="boolean" indexed="true" stored="true"/>
  <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
  <field name="_version_" type="long" indexed="true" stored="true"/>


New Scheme:

  <field name="id" type="text" indexed="true" stored="true" required="true" />
  <field name="title" type="text" indexed="true" stored="true"/>
  <field name="subtitle" type="text" indexed="true" stored="true"/>
  <field name="description" type="text" indexed="false" stored="true"/>
  <field name="prerequisites" type="text" indexed="false" stored="true"/>
  <field name="programme" type="programme" indexed="false" stored="true"/>
  <field name="comments" type="text" indexed="false" stored="true"/>
  <field name="fees" type="fees" indexed="false" stored="true" multiValued="true"/>
  <field name="discount" type="discount" indexed="false" stored="true"/>
  <field name="accreditation" type="text" indexed="false" stored="true"/>
  <field name="status" type="text" indexed="false" stored="true"/>
  <field name="eligibility" type="text" indexed="false" stored="true" multiValued="true"/>
  <field name="capacity" type="int" indexed="false" stored="true"/>
  <field name="contact" type="person" indexed="false" stored="true" multiValued="true"/>
  <field name="submitter" type="person" indexed="false" stored="true" multiValued="true"/>
  <field name="organizers" type="person" indexed="false" stored="true" multiValued="true"/>
  <field name="speakers" type="person" indexed="false" stored="true" multiValued="true"/>
  <field name="host_institution" type="organization" indexed="false" stored="true" multiValued="true"/>
  <field name="sponsor" type="organization" indexed="false" stored="true" multiValued="true"/>
  <field name="venue" type="text" indexed="false" stored="true"/>
  <field name="street_address" type="text" indexed="false" stored="true"/>
  <field name="city" type="text" indexed="false" stored="true"/>
  <field name="province" type="text" indexed="false" stored="true"/>
  <field name="country" type="text" indexed="false" stored="true"/>
  <field name="postcode" type="text" indexed="false" stored="true"/>
  <field name="post_office_box" type="text" indexed="false" stored="true"/>
  <field name="url" type="link" indexed="false" stored="true"/>
  <field name="attachment" type="link" indexed="false" stored="true" multiValued="true"/>
  <field name="social_media" type="link" indexed="false" stored="true" multiValued="true"/>
  <field name="starts" type="date" indexed="false" stored="true"/>
  <field name="ends" type="date" indexed="false" stored="true"/>
  <field name="time_zone" type="text" indexed="false" stored="true"/>
  <field name="last_update" type="date" indexed="false" stored="true" multiValued="true"/>
  <field name="deadlines" type="date" indexed="false" stored="true" multiValued="true"/>
  <field name="registration_opens_date" type="date" indexed="false" stored="true" multiValued="true"/>
  <field name="acceptance_notification_date" type="date" indexed="false" stored="true" multiValued="true"/>
  <field name="type" type="text" indexed="false" stored="true" multiValued="true"/>
  <field name="topic" type="text" indexed="false" stored="true" multiValued="true"/>
  <field name="public" type="boolean" indexed="false" stored="true"/>
  <field name="target_audience" type="text" indexed="false" stored="true" multiValued="true"/>
  <field name="spotlight" type="boolean" indexed="false" stored="true"/>
  <field name="latitude" type="double" indexed="true" stored="true"/>
  <field name="longitude" type="double" indexed="true" stored="true"/>
  <field name="_version_" type="long" indexed="true" stored="true"/>


Conclusion:

While using newly proposed scheme iAnn will have a possibility to serve even more diverse data. This will serve as a basis for new services on top of Solr search engine. On top of that, migration to newer version of Solr will make it safer.

Week 3(5.12.2014 - 11.12.2014)

Activities :

Word Cloud

  • We have improved our word cloud look compared to our previous week.
  • Also we had an issue in bringing all the words in to cloud and now this is also solved.

3D Globe

  • We tried with adding markups in the Globe, but we had an issue while converting to 2D map, as you can imagine the markup positions varies for each country with respect to 3D and 2D view, that transition we can't able to achieve with the markup.
  • We even tried with adding colors for each country, but it doesn't looks good.

Partition Layout

  • We have developed the Tree map with respect to keywords.
  • Currently it's not interactive, we are working on it.
  • Once we are done with Tree map, we will also do the BiLevel Partition which is one of the visualization our mentors are very much interested.

GitHub Repository

GitHub : iANN_Solr