IW Meeting 2011-04-22

From Inference Web

Jump to: navigation, search


Meeting Information


  • Tim
  • Jitin
  • Nick
  • Leo


  • Agenda
  • PML Network API Overview XXX
  • Leo
  • Tim's DP Dough


PML Network API Overview

started developing for ProbeIt Written in Java

ProbeIt operates reads PML API objects

ProbeIt started as a Local APP, then went to web start - needed to be faster

PML API built in Jena and Pellet 20 MB of dependencies.

Just to view 10k PML snippet :-(

One option: Java RMI - calling methods via net Needed to implement java serializable interface.

PML API java objects not serializable (depending on Jena and Pellet)

Next option: Network API: wrappers to PML API. "pulls away" from Jena and Pellet. b/c it's just the language representation, can separate. just for loading and reading.

PML Network API: Wrapper objects + RMI service

client tools can connect to RMI service and request loading or writing.

Up next:

DerivA - a tool. publish PML derivations. is a PML publisher/writer. Will connect to PML network API. done: tim to add this to the list.

service side of RMI servcies use PML API. service sets up shop for th ePML API, then uses the PML Network's "slimmed down" object model to talk to the client (slimmed down is for reducing bandwidth).

are the RMI services turned on somewhere?

Nick: has been, not sure if it is up. RMI services registy (UTEP's always running) ask service registry for a location of a PML Network API. get a redirect to a currently running PML Network API.

Tim: What is the actual call to get to a PML Network?


private void setRemoteReader()
        if(reader != null)
        if (System.getSecurityManager() == null) {
            System.setSecurityManager(new RMISecurityManager());

        try {
            PMLReader builderRemote = (PMLReader) Naming.lookup(//"); // Nick points to this; it is the REGISTRY  SLASH then the service type.
            reader = (PMLReader)builderRemote;
            //System.out.println("Remote PML Factory Loaded Successfully...");
        } catch (Exception e) {

Tim: OK, I found it through the registry. How do I talk to it? A PML Network API class API? PMLReader object returned. (similar for PML writer)

when client wants to write PML, they capture it into the PML Netwrok slim objects and give them and URI to where to dump it to.

Tim: how can I grab this to play with? Nick. It's in their SVN, but it's not publicly available. Two parts: the client code VS the server code. how easy to separate? or could just get whole jar and "stay focused" on the right package.

done: Nick put together javadoc for Network PML and send to Tim

NOTE: Tim is NOT using this stuff for critical path and will NOT send urgent demands for support. ~~signed~~ Tim Lebo

Tim: Is it OK to have Nick's word doc to the inference web

done: Tim to copy text from Word Doc into inference web wiki: PML Network API. Nick agrees that inf web wiki is a good place for the documentation to "live"


Leo picking up from named graphs discussion last week.

w.r.t workflow.

provenance of sources in middle of process.

intention of workflows is to capture process. describe steps that scintists go through to accomplish tasks. it is PLANNING.

provenance is about recording trace of what they did.


(semantic) ABSTRACT workflows vs IMPLEMENTATION workflows. ABSTRACT NOT executable (underspecified)

Leo provides e.g. testwf.png

two small workflows. first: initial specification. showing sources at "class" or "type" level. a source is a source or a sink (PML-P:Sources) initially connected sources to processes.

first design. was ILLEGAL to have a source that is both a source AND sink. second design PERMITS processes to feed into "sources" that feed into something else.

in first design, provenance was straight forward. e.g. if source a person, "told" aka "direct assertion" is person typing param into software M1. sink is a conclusion

second design: needed a continuant between processes. (scientist said so) b/c e.g., they put a file into a file server that goes into something else.

Leo cites last week where we had an information container - full control vs not?

in second workflow, artifact d1 Information input to Information container (source) and output d1 and d2 d1 A TYPE of INFORMATION, NOT ARTIFACT. NOT FORMAT, SEMANTIC TYPE NOT PDF, KML CORRECT ANSWERS: table, topological map, tree

for a particular TYPE of information, you can have a variety of FORMATS and a variety of ARTIFACTS.

(you're not worried about formatting when you're building a SAW - semantic annotated workflow)

Nick: You don't care about formats until you record PML.

green box - method (process/activity) m1 (aka MethodRule) arrows are information d1 (aka pmlp:Information) Source (aka pml:Source)

Leo: happy to take over the world with his tools. currently evaluating and happy to have people try it.

Nick: WDO-It! is most mature tool at our trustlab :-)

Container (source) filled with some type of input and are taken in different TYPEs (not formats) SAW is not saying anything about the execution model.

don't know HOW d2 type was produced. JUST that it comes from that source (now how it did it).

Tim: gets it. e.g. m1 on left is NOT the m1 on the right (because we're working at the CLASS level).

outstanding problem: haven't thought about how to describe/capture provenance with a source in between two processes in the chain.

source y source x source 1 source 2

                                           -----------           ------------ 
                                                                 QUERY A.1
       ->                                LOAD 1
                                                                 QUERY A.2
                                                                 QUERY A.3
                       ->                LOAD 2
                                                                 QUERY A.4

crap. who do we hunt down, x or y?

Query A asking for things of type d1 (form Leo's diagram) source Y is only thing that loads things of type d1. then we know to hunt down just source y.

characterize the problem in terms of the types of information that is causing the problem, the WDO-IT can isolate that only source y should be hunted down.

Provenance <==> cowboys

same info container provided info artifacts of type d2 to method m2, but don't have anything that provides that type of information into the information container.

Jitin: how to know that source y is only thing to load things of type d1? open world assumption, anyone could have sneaked it in!

Leo:shared resource or only one controlling? can't assume it.

Tim: source q could have snuck d1 informations in, we could eliminate source x b/c we know they don't load type d1, but that doesn't mean we still shouldn't go after source y.

Personal tools