Gordon Semantic Web 2008
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="[email protected] ", 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
Ω