Merge-enabled Change Tracking Freelancer.

Slides:



Advertisements
Similar presentations
DOCUMENT TYPES. Digital Documents Converting documents to an electronic format will preserve those documents, but how would such a process be organized?
Advertisements

Effective management Accurate tracking Easier automation.
XML: text format Dr Andy Evans. Text-based data formats As data space has become cheaper, people have moved away from binary data formats. Text easier.
Cascading Style Sheets
XHTML Basics.
Lesson 3: Advanced Collaboration Unit 2: Advanced Word 2007: Business Communications.
Microsoft Office 2007: Introductory Computer Applications 11.
Word. Define the meaning of Word will be divided into two parts: First Section: What it means is commonly known It is a word processor that through which.
XML Unit 6 October 31. XML, review XML is used to markup data Used to describe information Uses tags like HTML –But all tags are user-defined –Must be.
Document Processing CS French Chapter 4. Text editor used for simple text entry and editing not intended to look good for editing programs and data e.g.
1 COS 425: Database and Information Management Systems XML and information exchange.
Computer Sciences Department
1 ADVANCED MICROSOFT WORD Lesson 15 – Creating Forms and Working with Web Documents Microsoft Office 2003: Advanced.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
Creating a Basic Web Page
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 12 Electronic Mail.
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.
Introducing Dreamweaver MX 2004
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Introduction to XML. XML - Connectivity is Key Need for customized page layout – e.g. filter to display only recent data Downloadable product comparisons.
CIS 451: Introduction to XML Dr. Ralph D. Westfall October, 2011.
© 2008 The McGraw-Hill Companies, Inc. All rights reserved. ACCESS 2007 M I C R O S O F T ® THE PROFESSIONAL APPROACH S E R I E S Lesson 13 – Advanced.
XML 2nd EDITION Tutorial 1 Creating An Xml Document.
1 CS 502: Computing Methods for Digital Libraries Lecture 19 Interoperability Z39.50.
Introduction to XML This presentation covers introductory features of XML. What XML is and what it is not? What does it do? Put different related technologies.
ITGS Databases.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Securing and Sharing Workbooks Lesson 11. The Review Tab Microsoft Excel provides several layers of security and protection that enable you to control.
XML CSC1310 Fall HTML (TIM BERNERS-LEE) HyperText Markup Language  HTML (HyperText Markup Language): December  Markup  Markup is a symbol.
HTML HYPER TEXT MARKUP LANGUAGE. INTRODUCTION Normal text” surrounded by bracketed tags that tell browsers how to display web pages Pages end with “.htm”
CHAPTER 7 LESSON C Creating Database Reports. Lesson C Objectives  Display image data in a report  Manually create queries and data links  Create summary.
Chapter 29. Copyright 2003, Paradigm Publishing Inc. CHAPTER 29 BACKNEXTEND 29-2 LINKS TO OBJECTIVES Attach an XML Schema Attach an XML Schema Load XML.
XML Extensible Markup Language
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
Preface IIntroduction Course Objectives I-2 Course Content I-3 1Introduction to Oracle Reports Developer Objectives 1-2 Business Intelligence 1-3 Enterprise.
IPDA Registry Definitions Project Dan Crichton Pedro Osuna Alain Sarkissian.
1 Workshop - ODFDOM Lars Behrmann Frank Meies Svante Schubert Sun Microsystems, Hamburg 1.
Improving ODF applications by sharing ODF tests Svante Schubert Software Engineer Sun Microsystems Inc.
XML Based Filters ● Svante Schubert – Co-Lead XML OpenOffice.org – StarOffice/OpenOffice.org ● Sun Microsystems.
Advanced Collaboration SC Generic Change Tracking Proposal.
Scan, Import, and Automatically file documents to Box Introduction
Scanning to Google Drive and Docs™ with ccScan®
Eclipse Vorto Alexander Edelmann.
DHTML.
4.2 Microsoft Word.
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
ODF API - ODFDOM Svante Schubert Software Engineer
The BLISS Framework 4.
Creating Oracle Business Intelligence Interactive Dashboards
Working in the Forms Developer Environment
CaRT eCapacity Initiative Ghana Productivity Apps
Microsoft Excel A Spreadsheet Program.
Introduction to XHTML.
Simple Add-Ons from Disus
Microsoft Office Illustrated
Microsoft Excel 2003 Illustrated Complete
Databases.
Lesson 9 Sharing Documents
4.2 Microsoft Word.
Populating a Data Warehouse
Populating a Data Warehouse
Populating a Data Warehouse
Microsoft PowerPoint 2007 – Unit 2
Lesson 14 Sharing Documents
ICT Word Processing Lesson 1: Introduction to Word Processing
1 Word Processing Part I.
CSE591: Data Mining by H. Liu
Exploring Microsoft Word 2003
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Merge-enabled Change Tracking Freelancer

2 Svante Schubert Status: OASIS OpenDocument - Advanced Document Collaboration SC 1 st Proposal: Generic change tracking (by DeltaXML) – Tracks every XML change in an ODF document – Might be applied to other XML formats – Shortest specification, largest ODF documents 2 nd Proposal: Extended change tracking (by Microsoft) – Extending specification of ODF 1.0/1.1 change tracking – Saving the changed XML aside – Small specification change, small ODF enhancements Agreement to focus first on Change Tracking

3 Svante Schubert Mission objective: Change Tracking What is the optimal way to serialize/save run-time changes to the document (ODF)? – ODF changes not specified, current CT approaches tracking XML changes – No clear optimum as a mathematical derivative of formula to get maximum benefit – Important: Follow-up objective of (real-time) collaboration. Can CT solution be extended to fulfill second objective?

4 Svante Schubert Mission objective: Misunderstanding? “How customer explained” “How project lead understood it” “What customer wanted”

5 Svante Schubert Mission objective: Problem Observations Need to merge International Group exchange documents via mail. Problem if two simultaneous editors, e.g. EU project Need to save (off-line) Collaboration as CT During collab session Internet access goes down, save changes, synch later Need to map changes between different model of ODF apps Exchange changes between browser and ancient office Need to map CT to human readable changes ISO Errata document: Listing the changes being made in a separate document

6 Svante Schubert Dependencies of Changes

7 Svante Schubert Collaboration of ODF Applications ODF Application: Everything loading/saving ODF – For example: Libre|OpenOffice, Browser + JS ODF support How can a browser (HTML/CSS model) collaborate at run-time with ancient Offices? What is the Lingua Franca between them? – All open the same ODF document in a different model – ODF Concept: Higher abstraction layer from ODF XML

8 Document Example with ODF Components

9 Svante Schubert Design - Serializing ODF operations Strategic Goal: Move repeating patterns (complexity) out of documents into spec. Label of change referencing to a defined change in spec (e.g. mergeCell, mergeColumn..) Component tree characters are smallest ODF components Specifying operation = specifying related XML change Convention over configuration: Empty document, default styles To ease merge operations are referencing ODF components by their relative position

10 Svante Schubert Design - Serializing ODF operations Serializing queue of ODF operations into single XML file Every operation has an inverse operation – add(“paragraph”, “/1”, “Hello World”) del(“paragraph, “/1”) – Status of previous ODF XML + do operation(s) = Status of current ODF XML = Status of upcoming ODF XML + undo operation(s)

11 Svante Schubert Serializing Example: Adding Text & Paragraph Starting markup: Some text. Existing important text! Ending markup: Some text. This could be a very long text! New text! Existing important text! Changes (only FYI - not being saved): This could be a very long text! New text! Undo changes (undo.xml):

12 Svante Schubert Serializing Example: Using Template Styles Starting markup: Normal normal bold bold bold-italic bold bold normal normal. Ending markup: Normal normal bold bold bold-italic bold bold normal normal. Changes (only FYI - not being saved): Undo changes (undo.xml):

13 Svante Schubert Serializing Example: Adding/Removing a List with List Items Starting markup: Line 1 Line 2 Line 3 Ending markup: Line 1 Line 2 added Line 3 Changes (only FYI - not being saved): added Undo changes (undo.xml):

14 Svante Schubert Serializing Example: Text Selection, Deletion & Merge Starting markup: Some text. This could be a very long text! New text! Existing important text! Ending markup: Some important text! Changes (only FYI - not being saved): Undo changes (undo.xml): text. This could be a very long text! New Text! Existing

15 Svante Schubert Simple Merge Technique Operational Transformation (OT) – Technical paper of the 80 th – Google Wave/Docs Protocol build upon – Composition / Aggregation: E.g.: Several character insertion can be provided as one text – Transformation: Synching operations from several clients & server Check for insertion/deletion of preceding siblings – NEW: Using abstraction for better interoperability. Instead OT based on XML, based on ODF components

16 Svante Schubert Simple Merge Technique Transformation Example: – Two clients and server starting on empty document Client A is calling: add(“text”, “/1/1”, “Hello”) Client B is calling: add(“text”, “/1/1”, “ World!”) Client A gets first to server, same version, no problem, server overtakes command Client B gets to server, OT detects & resolves conflict by adapting incoming parameter => add(“text”, “/1/6”, “ World!”) Server overtakes & broadcast to client A add(“text”, “/1/6”, “ World!”)

17 Svante Schubert Serializing Example – History Feature base: OT during Operation moving within the Queue Starting markup: Some text. This could be a very long text! New text! Existing important text! Ending markup: Some important text! Undo changes (undo.xml) - Version A: text. This could be a very long text! New Text! Existing Undo changes (undo.xml) - Version B: text. This could be a very long text! Existing New Text!

18 Svante Schubert Further Design Details on Serialization Design Changes of ODF XML files result in an undo.xml file per document Changes will be aligned/referenced to user and time metadata Each (embedded) document has its own change- tracking - to easy add/remove doc from ODF package Due to tracking 3 rd party data (e.g. binary images) there should be a directory “.undo” to store all changed data Aside the “.undo” directory there might be a “.redo” directory, in case the document was rolled back When allowing a tree of versions those directories might be nested – ongoing research..

19 Svante Schubert Low hanging Juicy Fruits Collaboration across ODF applications – e.g. OOo|LibreOffice & ODF Browser Office Merge functionality – Applying changes to remote documents – Traffic Light for user after merge (Green, Yellow, Red) Arbitrary change grouping (and moving changes through time) – e.g. ODF Errata version > Contributor > Issue > Change – Moving changes through document time-line – Access/modify changes independent of (signed) content History functionality – Saving document as a previous version(s), with ability to restore

20 Svante Schubert Possible next Steps Finding the root elements of ODF components. Providing RelaxNG schema that annotates those root elements Providing typed properties as intermediate step for each component Name methods with typed parameters to change above properties. Including if necessary conditions to guarantee validness. An English description of the ODF XML change triggered by any method as new part of ODF specification