Gordon Semantic Web 2008

Post on 02-Jul-2015

1.635 views 0 download

Transcript of Gordon Semantic Web 2008

How Can We Use This Semantic Web Thing?

Paul GordonSun Center of Excellence for Visual Genomics

University of Calgary

De s id e r a t a

• Something that doesn’t require reprogramming my business logic: notations

• Something that lets me reuse others’ code: commoditization

• Something my lets my users bug me less: workflows

Web Services Today

What’s Moby?

Semantics & Semiotics

Semiotic Triangle from The Meaning of Meaning (1923)

Concept

Deoxyribonucleic AcidADN (French)

(Simplified Chinese)...

Words Things

Where are we going?

Seahawk

traceview

vectorstrip

trimseq

Paul’s Pragmatic Maxims• You cannot get rid of work• Redistribute work amongst parties

– Who’s most motivated?– Who’s most knowledgeable?

• Avoid repetition of work – Accessibility of code– Reusability of code

• Self-containment (~10MB WAR) via custom ClassLoader

Obsoleted

User domain knowledge

HTML Form input restrictions

SAWSDL markupACD command-line spec

Moby OntologyLeveraged

Semantic monitoring of user actions

Auto-spec of secondaries, rule lookup

Concept-URN to schema-

mapping res.

MOB & DEM rules

Moby-specific Java

annotations

NewTech.

MOB rules + user hintsMOB rules + HTML class attributes*

MOB or XSLT on returned XML

MOB rules on returned data files

N/ALegacy-to-Moby data

DEM rulesDEM rulesDEM rulesDEM rulesN/AMoby-to-legacy data

HTTP CGIHTTP CGIHTTP SOAPCommand-linejMoby APII/OExec.

Example usage with typed data

HTML form fields’ class attribute

Extra tags in WSDLServlet web.xml properties

Java annotationSemantics

Specific legacy formats (implicit)

Specific legacy formats (implicit)

Schema-defined XML in the WSDL

Specific legacy formats (explicit in ACD file)

Moby types, as specified by the Java annotation

Expected I/O

HTML formHTML formWSDL fileACD fileJava codeSourceSpec.

← (-) External code reuse (+) →

PBEServletCGIServletWSDLServletACDServletMobyServlet

Easier for naïve users →

Skeleton code generation

Custom data parsers “Shim” Services

Screen scrapers

Explicit semantic markup

MobyServletimport org.biomoby.shared.MobyDataType;import org.biomoby.shared.data.*;import org.biomoby.service.*;

@mobyService(name="ConvertAAtoFASTA_AA ", type="FormatConversion", provider="moby.ucalgary.ca", author="gordonp@ucalgary.ca ", in="inseq:AminoAcidSequence ", out="outseq:FASTA_AA", description="Converts amino acid objects into FastA formatted records, ", "primarily to increase inter-service compatibility ")

public class ConvertAAtoFASTA_AA extends MobyServlet

public void processRequest(MobyDataJob request, MobyDataJob result) throws Exception

// The input parameter for this method is registered as "inseq" MobyDataComposite aaSeqObj = (MobyDataComposite) request.get(" inseq");

// SequenceString is a member of incoming AminoAcidSequence object MobyDataString aaStringObj = (MobyDataString) aaSeqObj.get(" SequenceString"); String aaString = aaStringObject.toString(); ...

ACDServlet

web.xml trimseq.acd

Rule selection

2nd-ary parameter creation

mobyInput

DNASequence

mobyOutput

DNASequence

MOB rules

WSDLServlet

WSDL Notation

bioxml.info

CGIServlet

<form …>…<textarea name="input_text" cols="61" rows="5" ></textarea>…<input type="text" size="7" name="salt_conc" value="0.05" />…</form>

<html xmlns:moby=“http://www.biomoby.org/moby”…><head>…

<meta name="moby:service" scheme="http://moby.ucalgary.ca/moby/MOBY-Central.pl" content="Primers,moby.ucalgary.ca,CalcPCRPrimers: Takes a DNA sequence and calculates PCR probes satisfying a given set of conditions"/>

class="moby:CalcPCRPrimers:primers:Collection(DNASequence)”

class="moby:sequence:DNASequence:fasta"

class="moby::Float::[0,10]" alt="Na+ concentration (molar)"

Legacy non-XML appsHTML + declarative “MOB” and “DEM” rules

+ user drag ‘n’ drop

PBEServlet: user-driven examples

Seahawk

Proxied Web page

Seahawk AJAXprompting

Drag ‘n’ drop

User-Friendly?

* Apologies to Aleksi Kallio, presenting tomorrow12 Actual148 “User study”

8310 “User friendly”*

Source:Google Scholar

Abstraction Gradient

Closeness of Mapping

Consistency

Diffuseness

Error-Proneness

Hard Mental Operations

Hidden Dependencies

Premature Commitment

Progressive Evaluation

Role-Expressiveness

Secondary NotationCo

gn

itive

Dim

en

sion

Con

sist

ency

Am

ong

st a

nd

Be

twee

n G

rou

ps

Agree

Disagree

Neither

Viscosity

Dim

ensi

on

Co

nsi

sten

cyA

mon

gst

an

d B

etw

een

Gro

up

sVisibility (2)

Story content

Modifiability

Controllability

Referencability

Programming salience

Provisionality

Com

mun

icat

ive

Cog

nitiv

e

Visibility (1)

Interest in the Given Workflows

Very

Somew

hat

Neithe

r

Somew

hat N

ot

Very N

ot

Don't K

now

Seeing analysis workflow descriptions in published research you read?

Using a library of pre-built workflows toRun your analysis in this tool?

Developing your own workflows again, with this tool?

Modifying pre-built workflows in this tool, for your own purpose?

Despite general lacklustre interest in EUD, interest in domain specific workflows is high.

The Plug• Increasingly abstract notations, until no

notations at all (PBE)• Made possible by Moby ontology, turning

data transformations into reusable commodities (open source)

• A gentle slope into workflows, with user-defined functions

Ω