Tavernalc: How to transform your OpenOffice Calc into a grid.


Published on

The Travenalc project implements a new way to use OpenOffice.org calc

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Tavernalc: How to transform your OpenOffice Calc into a grid.

  1. 2. Tavernalc <ul><ul><li>How to transform your OpenOffice Calc into a grid </li></ul></ul>Marek Dopiera Adam Kawa Piotr Krewski Tomek Weksej under the aegis of Jacek Sroka Prof. Jerzy Tyszkiewicz
  2. 3. Agenda <ul><li>Tavernalc from user's side: Why was there a need for such a tool? What does it offer to the user? </li></ul><ul><li>Tavernalc from developer's side: Simply - how did we manage to achieve Taverna's functionality using Calc? </li></ul><ul><li>Our experience learning and using UNO, OpenOffice.org API and tools. </li></ul>
  3. 4. Foreword: Experiments in silico <ul><li>Experiments in silico </li></ul><ul><ul><li>“ in silico” - performed on computer or via computer simulation </li></ul></ul><ul><ul><li>using remote resources and tools </li></ul></ul><ul><ul><li>problem - a lot of useless work when constructing complex workflows </li></ul></ul><ul><ul><li>solution - we need a tool for high-level workflow handling! </li></ul></ul>
  4. 5. What do we want to integrate? <ul><li>Why Taverna? </li></ul><ul><ul><li>Powerful tool for managing workflows </li></ul></ul><ul><ul><li>An effect of cooperation of many institutions such as European Bioinformatics Institute (EBI), Biomoby project, Seqhound, Biomart </li></ul></ul><ul><ul><li>Processors - most basic entities that process the data </li></ul></ul><ul><ul><li>Workflow = graph consisting of processors </li></ul></ul><ul><li>Why OpenOffice.org Calc? </li></ul><ul><ul><li>Ease of use - the power of Calc's intuitiveness when dealing with such data </li></ul></ul><ul><ul><li>Many more oportunites: making graphs, applying Calc formulas... </li></ul></ul><ul><ul><li>An integrated solution </li></ul></ul>
  5. 6. Tavernalc from user's side <ul><li>Demonstration </li></ul><ul><ul><li>Easy interface </li></ul></ul><ul><ul><li>Calc's standard features (dragging, graphs, formula, etc.) </li></ul></ul><ul><ul><li>Lazy evaluation </li></ul></ul><ul><ul><li>Diagrams </li></ul></ul><ul><ul><li>Content preview </li></ul></ul>
  6. 7. Tavernalc from developer's side <ul><li>Main objectives </li></ul><ul><li>Achieve functionality similar to Taverna's... </li></ul><ul><ul><li>lazy evaluation </li></ul></ul><ul><ul><li>iteration </li></ul></ul><ul><ul><li>workflow diagrams </li></ul></ul><ul><li>...in an interface in Calc's style </li></ul><ul><ul><li>dragging behaviour </li></ul></ul><ul><ul><li>mapping Taverna's data types to Calc </li></ul></ul><ul><li>Very important: </li></ul><ul><ul><li>OpenOffice should do the majority of work - not we! </li></ul></ul>
  7. 8. Achieving Taverna's functionality <ul><li>How can we represent a workflow? </li></ul><ul><ul><li>Problems: </li></ul></ul><ul><ul><ul><li>It can take a long time until the processor evaluates </li></ul></ul></ul><ul><ul><ul><ul><li>= we should be able to actualize it's result after time </li></ul></ul></ul></ul><ul><ul><ul><li>Processor must start evaluating after previous processors have evaluated </li></ul></ul></ul><ul><ul><li>Solution: Processor output = VolatileResult </li></ul></ul><ul><ul><ul><li>Can change its value over time </li></ul></ul></ul><ul><ul><ul><li>Allows addition of listeners which are notified when value changes </li></ul></ul></ul><ul><ul><ul><li>So... </li></ul></ul></ul><ul><ul><ul><ul><li>It's simple! When processor produces an output -> change VolatileResult's value! </li></ul></ul></ul></ul>
  8. 9. Achieving Taverna's functionality <ul><li>What is user intuition of dragging processor cell? </li></ul><ul><ul><li>Adding new instances of the same processor! </li></ul></ul><ul><li>Problems: </li></ul><ul><ul><li>When copying -> new instance should be added </li></ul></ul><ul><ul><li>When cut&paste -> same instance should be added </li></ul></ul><ul><ul><li>It should be done by OpenOffice - not us! </li></ul></ul>
  9. 10. Achieving Taverna's functionality <ul><li>First idea: Use Calc's relative addressing mechanism! </li></ul><ul><ul><li>Processor id = cell address </li></ul></ul><ul><ul><li>Problems with cut&paste </li></ul></ul><ul><li>Solution: </li></ul><ul><ul><li>Processor id = cell range address </li></ul></ul><ul><ul><li>Works fine! </li></ul></ul>
  10. 11. Achieving Taverna's functionality <ul><li>Mapping Taverna's data types into a Calc </li></ul><ul><ul><li>Problem: Taverna uses complex, unsupported by Calc's data types </li></ul></ul><ul><ul><li>Solution: Represent them by using Calc's data types! </li></ul></ul><ul><li>Examples </li></ul><ul><ul><li>Lists </li></ul></ul><ul><ul><li>Images </li></ul></ul>
  11. 12. Achieving Taverna's functionality <ul><li>Workflow diagrams </li></ul><ul><ul><li>Keep minimum amount of data outside the sheet! </li></ul></ul><ul><ul><li>Using Calc's cell dependencies functionality </li></ul></ul>
  12. 13. Our experience <ul><li>The tools we used </li></ul><ul><li>The problems we encountered </li></ul><ul><li>Our conclusions </li></ul>
  13. 14. The tools we used <ul><li>UNO Java bridge </li></ul><ul><ul><li>works fine </li></ul></ul><ul><ul><li>tends to crash the JVM during debugging </li></ul></ul><ul><li>Netbeans together with OpenOffice plugin </li></ul><ul><ul><li>a very good helper </li></ul></ul><ul><ul><li>lacks advanced functionality </li></ul></ul><ul><ul><li>some bugs </li></ul></ul>
  14. 15. The problems we encountered <ul><li>Lacks of documentation </li></ul><ul><ul><li>not enough samples </li></ul></ul><ul><ul><li>not many people writing in UNO </li></ul></ul><ul><ul><li>it's just a matter of time, fortunately :) </li></ul></ul><ul><li>Lacks of API functionality </li></ul><ul><ul><li>locking cells </li></ul></ul><ul><ul><li>getting the address from which a formulae is called </li></ul></ul><ul><ul><li>slow listeners </li></ul></ul>
  15. 16. Our conclusions <ul><li>A very good integration mechanism (UNO) </li></ul><ul><ul><li>a powerful OS independent solution </li></ul></ul><ul><li>A well thought API </li></ul><ul><ul><li>self explanatory hierarchy </li></ul></ul><ul><li>A little bit to hard for the masses to start writing plugins </li></ul><ul><ul><li>over 100 lines of code to produce a simple Calc addin </li></ul></ul><ul><ul><li>a whole new philosophy to learn to write a plugin (UNO) </li></ul></ul>
  16. 17. Thank You <ul><li>Project's site: </li></ul><ul><ul><li>http://tavernalc.googlecode.com/ </li></ul></ul><ul><li>Tavernalc Team </li></ul><ul><ul><li>Marek Dopiera </li></ul></ul><ul><ul><li>Adam Kawa </li></ul></ul><ul><ul><li>Piotr Krewski </li></ul></ul><ul><ul><li>Tomek Weksej </li></ul></ul><ul><li>Project Promoters, Motivators and Helpers </li></ul><ul><ul><li>Jacek Sroka </li></ul></ul><ul><ul><li>Prof. Jerzy Tyszkiewicz </li></ul></ul>