TableEdit and Wikibot Mediawiki Jim Hu Stein/Ware Retreat May 14, 2007.

Slides:



Advertisements
Similar presentations
Introducing: wiki.leveragingtechnology.com Keith Crossley; June 2010.
Advertisements

Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Integrating Access with the Web and with Other Programs.
J4www/jea Week 3 Version Slide edits: nas1 Format of lecture: Assignment context: CRUD - “update details” JSP models.
XP Chapter 3 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Analyzing Data For Effective Decision Making.
Chapter 12: ADO.NET and ASP.NET Programming with Microsoft Visual Basic.NET, Second Edition.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
1 CA201 Word Application Creating Document for the Web Week # 9 By Tariq Ibn Aziz Dammam Community college.
Macros Tutorial Week 20. Objectives By the end of this tutorial you should understand how to: Create macros Assign macros to events Associate macros with.
Guide To UNIX Using Linux Third Edition
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Chapter 14: Advanced Topics: DBMS, SQL, and ASP.NET
Database Updates Made Easy In WebFocus Using SQL And HTML Painter Sept 2011 Lender Processing Services 1.
Access Tutorial 8 Sharing, Integrating, and Analyzing Data
VxOware Progress Report August How to create a new section? Configure section –Create metadata structure (template) –Create elements map for web.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Access Tutorial 10 Automating Tasks with Macros
1 ADVANCED MICROSOFT WORD Lesson 15 – Creating Forms and Working with Web Documents Microsoft Office 2003: Advanced.
Chapter 12 Creating and Using XML Documents HTML5 AND CSS Seventh Edition.
Dataface API Essentials Steve Hannah Web Lite Solutions Corp.
Installing CiviCRM onto Wordpress. How does it work?
A First Program Using C#
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
U:/msu/course/cse/103 Day 25, Slide 1 Back-up PHP Files If you have not yet passed the 3.0 BT, make back-up copies of ALL.
Web Application Development. Define ER model in QSEE Generate SQL Create Database mySQL Write Script to use TableEditor class Process to create A simple.
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Dynamic Action with Macromedia Dreamweaver MX Barry Sosinsky Valda Hilley.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
Web Application Development. Tools to create a simple web- editable database QSEE MySQL (or PHPMyAdmin) PHP TableEditor.
NetTech Solutions Working with Web Elements Lesson 6.
10-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
Tip Calculator App Building an Android App with Java © by Pearson Education, Inc. All Rights Reserved.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Introduction to the Self-Service Engine Richard Oberlin NOCCCD Session B4 (Part 2)
Analyzing Data For Effective Decision Making Chapter 3.
1 Data Bound Controls II Chapter Objectives You will be able to Use a Data Source control to get data from a SQL database and make it available.
1 SWEET Simple Wiki Embedded Editing Tool The SWEET Team Michael Kouyessein Brian Sullivan Yuan-Hsun Tang Fangyan Xu The SWEET Website
Translating Drupal Websites Sean Burlington Quick run through  Translation generally  Lessons learned  Drupal specifics  String.
Program documentation Using the Doxygen tool Program documentation1.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Data Management Console Synonym Editor
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
Creating PHPs to Insert, Update, and Delete Data CS 320.
Intro to PHP Carl-Erik Svensson. What is PHP? PHP is a widely-used general-purpose scripting language that is especially suited for Web development and.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Course ILT Forms and queries Unit objectives Create forms by using AutoForm and the Form Wizard, and add or modify form headers and footers Open and enter.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
CS499 Project #3 XML mySQL Test Generation Members Erica Wade Kevin Hardison Sameer Patwa Yi Lu.
A Short Tutorial to Semantic Media Wiki (SMW) [[date:: July 21, 2009 ]] At [[part of:: Web Science Summer Research Week ]] By [[has speaker:: Jie Bao ]]
Overview of Form and Javascript fundamentals. Brief matching exercise 1. This is the software that allows a user to access and view HTML documents 2.
Chapter Fourteen Access Databases and SQL Programming with Microsoft Visual Basic th Edition.
NETWORK VISUALIZATION ABHISHEK KUMAR (2011CS50272)
SRI International Bioinformatics 1 Editing Pathway/Genome Databases Ron Caspi.
Session 2: Basic HTML HTML Coding Spring 2009 The LIS Web Team Presents.
Chapter 12© copyright Janson Industries Java Server Faces ▮ Explain the JSF framework ▮ SDO (service data objects) ▮ Facelets ▮ Pagecode classes.
Lessons learned from Semantic Wiki Jie Bao and Li Ding June 19, 2008.
Fourth R Inc. 1 WELCOME TO MICROSOFT OFFICE ACCESS 2003 INTERMEDIATE COURSE.
XP New Perspectives on Microsoft Office Access 2003, Second Edition- Tutorial 8 1 Microsoft Office Access 2003 Tutorial 8 – Integrating Access with the.
B Copyright © 2011, Oracle and/or its affiliates. All rights reserved. Working with PDF and eText Templates.
Chapter Fourteen Access Databases and SQL Programming with Microsoft Visual Basic th Edition.
: Information Retrieval อาจารย์ ธีภากรณ์ นฤมาณนลิณี
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
The Bovine Genome Database Abstract The Bovine Genome Database (BGD, facilitates the integration of bovine genomic data. BGD is.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Programming with Microsoft Visual Basic 2012 Chapter 14: Access Databases and SQL.
INF230 Basics in C# Programming
CSE 103 Day 20 Jo is out today; I’m Carl
Populating a Data Warehouse
Presentation transcript:

TableEdit and Wikibot Mediawiki Jim Hu Stein/Ware Retreat May 14, 2007

Community Annotation with Wikis The problem –Wikis are potentially very nice for CA but the freetext nature of wiki content limits their usefulness Possible solutions –Semantic Mediawiki - extend markup (Users won’t do this) –Natural language processing of wiki pages (Hard to implement) –Tables Provide a natural way to display key-value pairs

Community usersCurators Wiki page Table. Special:TableEdit Chado Wikibox_db Wikibox_Bot Mediawiki Maintenance Freetext comments. Wikipage Parser Other GMOD tools The Plan Key components: Table editor (v0.3 prototype done) Wikibox_bot

TableEdit, SpecialTableEdit, and wikibox_db Community users Wiki page Table. Special:TableEdit Wikibox_db Freetext comments. TableEdit - allows placement of new tables Special:TableEdit - allows forms-based editing of tables Wikibox_db –Box box_id, template, page_title, namespace, type, headings, heading_style, box_style, timestamp –Row row_id, box_id, owner_uid, row_data, row_style, row_sort_order, timestamp col1 || col2 || col3 || …

My db is lighter than Todd’s (but more complex than Ken’s) box_id template page_name page_uid box_uid type headings heading_style box_style timestamp row_id box_id owner_uid row_data row_style row_sort_order timestamp

Using TableEdit

Using templates with TableEdit Template:templatename Template content can be simple or complex –Simple: \n delimited list Heading 1 Heading 2 Heading 3

Using templates with TableEdit Template:templatename Template content can be simple or complex –Intermediate: \n delimited list with extra properties Heading||uniquename|property|params Properties –Text: use input type text instead of testarea –Select: pulldown menu Pipe-delimited list of options –Lookup: MySQL database lookup SQL statement Field –Calc: simple calculation Calculation type Parameters –Lookupcalc: Combines lookup and calc

Template example Qualifier||select| |NOT GO ID||text GO term name||lookupcalc|SELECT page_title FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|page_title|split|_!_|1 Reference(s) Evidence Code||select| |IC: Inferred by Curator|IDA: Inferred from Direct Assay|IEA: Inferred from Electronic Annotation|IEP: Inferred from Expression Pattern|IGC: Inferred from Genomic Context|IGI: Inferred from Genetic Interaction|IMP: Inferred from Mutant Phenotype|IPI: Inferred from Physical Interaction|ISS: Inferred from Sequence or Structural Similarity|NAS: Non-traceable Author Statement|ND: No biological Data available|RCA: inferred from Reviewed Computational Analysis|TAS: Traceable Author Statement|NR: Not Recorded with/from||text Aspect||lookup|SELECT namespace FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|namespace Notes Status||calc|reqcomplete|1|3

Template example Qualifier||select| |NOT GO ID||text GO term name||lookupcalc|SELECT page_title FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|page_title|split|_!_|1 Reference(s) Evidence Code||select| |IC: Inferred by Curator|IDA: Inferred from Direct Assay|IEA: Inferred from Electronic Annotation|IEP: Inferred from Expression Pattern|IGC: Inferred from Genomic Context|IGI: Inferred from Genetic Interaction|IMP: Inferred from Mutant Phenotype|IPI: Inferred from Physical Interaction|ISS: Inferred from Sequence or Structural Similarity|NAS: Non-traceable Author Statement|ND: No biological Data available|RCA: inferred from Reviewed Computational Analysis|TAS: Traceable Author Statement|NR: Not Recorded with/from||text Aspect||lookup|SELECT namespace FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|namespace Notes Status||calc|reqcomplete|1|3 select

Template example Qualifier||select| |NOT GO ID||text GO term name||lookupcalc|SELECT page_title FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|page_title|split|_!_|1 Reference(s) Evidence Code||select| |IC: Inferred by Curator|IDA: Inferred from Direct Assay|IEA: Inferred from Electronic Annotation|IEP: Inferred from Expression Pattern|IGC: Inferred from Genomic Context|IGI: Inferred from Genetic Interaction|IMP: Inferred from Mutant Phenotype|IPI: Inferred from Physical Interaction|ISS: Inferred from Sequence or Structural Similarity|NAS: Non-traceable Author Statement|ND: No biological Data available|RCA: inferred from Reviewed Computational Analysis|TAS: Traceable Author Statement|NR: Not Recorded with/from||text Aspect||lookup|SELECT namespace FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|namespace Notes Status||calc|reqcomplete|1|3 lookupcalc Lookup alone gives: GO _!_biological_process

Using templates with TableEdit Template:templatename Template content can be simple or complex –Advanced: tagged text: 0 bgcolor=‘#6666FF’ Qualifier||select| |NOT GO ID||text GO term name||lookupcalc|SELECT page_title FROM go_archive.term WHERE go_id = '{{{1}}}’ ORDER BY term_update DESC LIMIT 1|page_title|split|_!_|1 Reference(s) Evidence Code||select| |IC: Inferred by Curator|IDA: Inferred from Direct Assay|IEA: Inferred from Electronic Annotation|IEP: Inferred from Expression Pattern|IGC: Inferred from Genomic Context|IGI: Inferred from Genetic Interaction|IMP: Inferred from Mutant Phenotype|IPI: Inferred from Physical Interaction|ISS: Inferred from Sequence or Structural Similarity|NAS: Non-traceable Author Statement|ND: No biological Data available|RCA: inferred from Reviewed Computational Analysis|TAS: Traceable Author Statement|NR: Not Recorded with/from||text Aspect||lookup|SELECT namespace FROM go_archive.term WHERE go_id = '{{{1}}}' ORDER BY term_update DESC LIMIT 1|namespace Notes Status||calc|reqcomplete|1|3

Hooks MediaWiki Hooks: –Hash of arrays hookname=>array=>Extension function names –Extensions register their functions by adding to the appropriate hash for the hook they want to use. Can define hooks inside extensions using same mechanism –wfRunHooks( 'TableEditBeforeSave', array( &$this, &$table ) ); #pass by reference –$wgHooks['TableEditBeforeSave'][] = 'wfTableEditLinks'; function wfTableEditLinks( $article, $table ){ …code to do stuff to $table… } TableEditLinks.php extension adds links based on regex Foreshadowing: This became a design issue when I wrote the bot

Community usersCurators Wiki page Table. Special:TableEdit Chado Wikibox_db Wikibox_Bot Mediawiki Maintenance Freetext comments. Wikipage Parser Other GMOD tools The Next Step

Building the bot Components: –wikibot.pl - bot controller wikibot.pl -out for output from the wiki tables wikibot.pl -in for input into the wiki tables –WikiBot.pm and a ridiculous number of other object classes get_wikirows –reads the db and loads a data structure –translates tags if necessary –output xml-like tagged text to STDOUT save_wikirows –take xml-like tagged text –update the wikibox_db –update the wiki via a php script runTableEdit.php –runTableEdit.php runs parts of the table editor from the shell –Various configuration pages in the wiki in the User namespace

Using wikibot -out $./wikibot.pl -out -template GO_table_product -a JimHu/testadaptor1 Sandbox GO_table_product 73c9eb6b3db48b95c5213e57bdbfb GO: required field missing F phosphoethanolamine N-methyltransferase activity fake GO annotation for testing IDA: Inferred from Direct Assay …more rows…

Using wikibot -in $./wikibot_test.pl|./wikibot.pl -a JimHu/testadaptor1 -u JimHu -in wikibot_test.pl generates some output used a regex to munge it output piped to wikibot.pl with params

Summary TableEdit is ready for more testing Bot just got to its current state yesterday –Output is just yet another kind of text that different clients will have to parse –Input works with a “standard” format If row_id is present, update, else insert Suggestions for improving the standard would be useful! –Updating the wiki directly via the TableEdit instead of via XML Should be less prone to conflicts than saving and loading XML later. –Probably should be rewritten to use Class::DBI at some point Despite the need for more serious testing, I’m going to try to use this to load up EcoliWiki!