Cost-Effective Integration of MKM Semantic Services into Editing - - PowerPoint PPT Presentation

cost effective integration of mkm semantic services into
SMART_READER_LITE
LIVE PREVIEW

Cost-Effective Integration of MKM Semantic Services into Editing - - PowerPoint PPT Presentation

Cost-Effective Integration of MKM Semantic Services into Editing Environments CICM 2012 Constantin Jucovschi Jacobs University July 10, 2012 Motivation Service-Editor Integrations Call for Action Service + Editor integration Better


slide-1
SLIDE 1

Cost-Effective Integration of MKM Semantic Services into Editing Environments

CICM 2012 Constantin Jucovschi

Jacobs University

July 10, 2012

slide-2
SLIDE 2

Motivation Service-Editor Integrations

Call for Action

+ Service Editor integration Better Service

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 2 / 24

slide-3
SLIDE 3

Motivation Service-Editor Integrations

Call for Action

+ Service Editor integration Better Service

new users – moderate learning curve moderate & advanced users – increase productivity

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 2 / 24

slide-4
SLIDE 4

Motivation Service-Editor Integrations

Java example

Namespaces

import info.kwarc.sissi.doc.spreadsheet.AbstractSpreadsheetDocument

→ info/kwarc/sissi/doc/spreadsheet/AbstractSpreadsheetDocument.java Generics

import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; Map<Entry<Integer, String>, Integer> t = new HashMap<Map.Entry<Integer,String>, Integer>();

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 3 / 24

slide-5
SLIDE 5

Motivation Service-Editor Integrations

Is it just boring ...

to create better tools for MKM authors? handful of editors to support

MKM service authors = editor developers editor plugin developers = MKM enthusiasts

version upgrades (both editor and service side) multiple operating systems communication with services (Java editor with python services) integrate with existing extensions (e.g. extend L

AT

EX mode of TeXentric)

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 4 / 24

slide-6
SLIDE 6

Motivation State of the Art

What are your options?

Editor extensions Editor generation frameworks Real-Time Document Synchronization and Service Broker (ReDSyS)

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 5 / 24

slide-7
SLIDE 7

Motivation State of the Art

Editor extensions

Pro: Most editors have one Simple things should be simple, complex things should be possible. [Alan Kay] Direct power and control

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 6 / 24

slide-8
SLIDE 8

Motivation State of the Art

Editor extensions

Pro: Most editors have one Simple things should be simple, complex things should be possible. [Alan Kay] Direct power and control Contra: write once use once “complex things” – need to go low level color text in line 2 in blue with yellow background in jEdit

text color - rewriting line tokens of current mode background color - low level Painter object

low level – no guaranty of stability write Java or go to hell

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 6 / 24

slide-9
SLIDE 9

Motivation State of the Art

Editor generation frameworks

Examples: xText, Proxima Pro: Create editors in 30 min

syntax highlighting autocompletion validation

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 7 / 24

slide-10
SLIDE 10

Motivation State of the Art

Editor generation frameworks

Examples: xText, Proxima Pro: Create editors in 30 min

syntax highlighting autocompletion validation

Contra: write once use once No CFG – no editor few types of customizations possible don’t go low level

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 7 / 24

slide-11
SLIDE 11

Motivation State of the Art

Current state of Editor-Service integrations

Most of existing integrations are 1-to-1 integrations

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 8 / 24

slide-12
SLIDE 12

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 9 / 24

slide-13
SLIDE 13

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 10 / 24

slide-14
SLIDE 14

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 11 / 24

slide-15
SLIDE 15

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 12 / 24

slide-16
SLIDE 16

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 13 / 24

slide-17
SLIDE 17

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 14 / 24

slide-18
SLIDE 18

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 15 / 24

slide-19
SLIDE 19

Method A Use Case

Proposed Model

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 16 / 24

slide-20
SLIDE 20

Method Demo

DEMO

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 17 / 24

slide-21
SLIDE 21

Method Document in the Center

One Document, Many Experts

Experts independent, self-contained entities provide services editors hardly support located anyware in the world can go for 5 hours to think undo changes of bad experts Document edited in any environment

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 18 / 24

slide-22
SLIDE 22

Method Document in the Center

Integration through the Document

Direct Editor-Service integration breaks separation of concerns Ideally Editors Services change document/properties menu/shortcut/toolbar integration show properties configure themselves fire events interact with user

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 19 / 24

slide-23
SLIDE 23

Method Document in the Center

Real-Time Document Synchronization and Service Broker

API allows multiple entities to change document in real-time (broadcast)

insert/delete text/properties

allows entities to exchange private messages (1-1 messages)

autocomplete configure

limited ⇒ stable API service/editor independent conventions

property (“bold”,true), means bold event “autocomplete.stex”, means autocomplete for sTeX

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 20 / 24

slide-24
SLIDE 24

Method Document in the Center

What promised / What is there / Current version

New repository: https://github.com/jucovschi/ShareJSServices RedSyS switched from Etherpad → ShareJS sTeX Semantic Syntax Highlighting & Term Spotting implemented in Etherpad Termref Hider & Transclusion Integrated Web Editor (AceEditor) jEdit integration worked with Etherpad

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 21 / 24

slide-25
SLIDE 25

Method Document in the Center

Stable/Experimental

Stable parts RedSyS JavaScript services Java document type (jeasysync2 library) Experiments/in development 4 services Java → ReDSyS connection

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 22 / 24

slide-26
SLIDE 26

Method Document in the Center

How do I write a service

Implement changeset onInit(doc) changeset onChange(oldDoc, changeset, currentdoc) void onEvent(Event) Changesets are programs skip 146 characters apply (“underline”, true) to next 10 characters delete next 4 characters

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 23 / 24

slide-27
SLIDE 27

Method Document in the Center

Conclusion

4 ⋆ → 5 ⋆ service – editor integration several ways to do that ... document centric approach

pays off in the long run better separation of concerns distribution long processing tasks I do editors, you do services

clone it on github https://github.com/jucovschi/ShareJSServices

Constantin Jucovschi ( Jacobs University ) Integration of Semantic Services into Editors July 10, 2012 24 / 24