PML Summit Meeting 2007 Feb 9-10

From Inference Web

Jump to: navigation, search


proposed agenda

PML Summit Face to Face Meeting Feb 9-10, 2007, Gates building 2A, Stanford University Room 400 Friday, Room 259 Sat.

Attendees Expected:

  • Deborah McGuinness
  • Paulo Pinheiro da Silva
  • Li Ding
  • Cynthia Chang
  • Vasco Furtado (partial)

day 1 bootup (9-9:30)

  • objectives, scope and deliverables
  • meeting schedule review

PML2 ontology review(9:30-1)

  • we will review and confirm important issues in pml2 ontology identified/resolved in the past 6 months
  • Li will prepare a presentation covering overall design, pmlp, pmlj
  • break between pmlp and pmlj


PML codebase development(2-5)

  • we will discuss java code planning, relocation and package dependency
    • li and Cynthia will prepare a presentation for package-dependency, and backlinks to PML1 pacakges
    • [brief] we are currently arranging five packages:
      • iw.error for error handling
      • iw.instance for general data access methods for OWL instances (transparent to users)
      • iw.lang for ontology based java OO style programming interface, enforce PML type checking
      • iw.util for common tools (e.g. iw configuration, iw basic render) shared by IW applications, usually indendent of UI design. We may consider split util tools maintain by IW group and contributed by other groups.
      • a pool of IW applications ( e.g. IWBrowser, IWRegistar). They are usually independent UI applications


summary of the day(5:15-6)

  • summarize consensus and issues that remain unresolved
  • plan for next day meeting

day 2 bootup (9-9:30)

  • meeting schedule review

working session (9:30-1)

  • left-over issues from yesterday
  • (Cynthia) IWRegistrar (database migration, submitter, etc.)


  • other issues
    • rendering plug-in, maybe define a common java interface for renderers for producing english or html
    • instructions for migrating to PML2 (from PML1), including pml generation, translation
    • more to be brought up in scheduling


future work(2-5)

  • strategies and dependencies across groups
  • workload and priority of development. [brief]
    • 1: PML2 ontology specifiction; PML2 API (no iw.util,; package layout;
    • 2: validator, j-generator
    • 3: browser, explainer
    • 4: iwregistrar, p-generator

meeting log


  • permanent IW namespace
  • Nail down PML2 ontology
  • Plan PML2 API code
  • Plan IW2 code

(NOTE. PML2 is part of IW2)

PML2 ontology

meeting log


  • permanent IW namespace
  • Nail down PML2 ontology
  • Plan PML2 API code
  • Plan IW2 code

(NOTE. PML2 is part of IW2)

PML2 ontology

clean up unused concepts - Axiom

  • Drop class: Axiom; LanguageAxiomSet
  • Drop property: hasAxiom; forLanguage
  • Remove them from registry
  • Back up the related PMLs in registry (in case we need them in future)
  • Translate instance of Axioms into named Information.

Clarify the semantics of AgentList

  • We enable order, but different project may interpret differently

clarify action semantics of Information

  • How to use parse-instructions to handle rawString, and hasURL
    • hasEncoding
    • hasFormat
    • hasLanguage
    • hasMimeType
  • Once load document from hasURL, the document's content should be, in general, the same as the decoded rawString
  • Drop hasInstanceReference, (but PML is OWL, and it is OWL)
    • Create another ontology to accommodate this property


  • Add, no domain
    • hasCreationDateTime, (<=1) on identified thing
    • hasModificationDateTime (>=0) on identified thing
    • hasOwner (<=1) on identified thing
  • Identified thing
    • Card restriction on hasCreationDateTime (<=1), hasModificationDateTime (>=0)
  • Document
    • Drop year, month, day
  • Publication
    • Add hasPublicationDateTime (card<=1)
  • JustificationElement
    • Change domain hasCreationDateTime
  • rename to hasExample to hasRuleExample, change domain to InferenceRule
    • It is used as a special description to an identified thing in IW. In fact, I can also always build a template description like 'X refers to something, for example,'.

PrettyNameMapping [TBD]

  • should be applied in sequence, make another AuthorList
  • Only apply to the current node set?
  • IWBrowser:
    • DAG, use shortPrettyName as default
    • Other case, use longPrettyName as default
  • need it?
    • Why its domain is limited NodeSet
    • It in fact conflicts with pretty string of Information? by rending the shortPrettyName, we should get hasPrettyString


  • The conclusion is after apply variable binding
  • [TBD] need NodeSet? Same conclusion can be captured by URI of information, leave for next generation
  • Add range of HasAntecedent NodeSetList, the order may not be important

(ADD Class) for no conclusion

  • add hasNoConclusion(boolean) to nodeset =>rejected
  • add a subclass of Information called EmptyInformation (PMLP) => agreed
    • Better if we have an example.

Leave trust lowest priority in this release

  • Drop it (pp) ? It is not mature => rejected
  • Keep it (deb)? It is our vision => AGREED, for next release

DeclarativeRule and MethodRule[TBD]

  • remove MethodRule and DeclarativeRule because their distinction is fuzzy and require PML experts' arbitration.
    • I got a question on MethodRule and DeclarativeRule. How can we benefit from differentiate them while they currently share the same set of properties.

In fact, I've got confusion in defining rules of a scheme based Truth Maintenance System, (see on TAMI rules) Deborah believe they are declarative rules while I think they are method rules. I'm worrying about this distinction (although is useful) might be excessive to regular PML users.


Feature Requirements

  • Important
    • Support relative URI: PML Java objects do not require absolute URI, can deploy PML document using relative URI
      • Jena only support BNode or absolute URI
    • We don't want to be limited by Jena
    • Scalability (storage): database implementation. Now we have file, database, and java object storage options.
      • Have database storage in a separate package
    • Offline case. the API does not need to load the ontology from the Web,
    • ontology informed. when accessing instances, load restrictions/definitions from ontology.
    • no configuration, we can use PML API the same way as using JENA API
      • Users may load configuration file in java code
    • Informative error message: (no exception, just print error message in std-err)
    • Unit test on java source code before release
    • PML API does not process the rawstring (no language parsers, no renders) of information
      • But it will provide some encoder/decoder functionality (currently base64, and ?) that allows rawstring processing
  • Secondary
    • Minimize future dev efforts: to enable reusing existing IW 1 code, especially the IW applications
    • Backward compatible: to support PML data using older PML ontology (three versions)
      • Cons: complexity
  • Desired Features
    • Supporting object which we can not find its most specific class (e.g. instance of two classes without subclass relation).
      • e.g. #A rdf:type InferenceEngine and #A rdf:type WebService
      • Need triple store backend, relational database may have huge difficulties


  • Distribution (similar to jena)
    • User manual including example code (some simple demo)
      • Read: Load PML java objects from PML1, PML2 file
      • Write: Create PML Java object in memory
      • validate PML java object
    • Open-source: binary and source code with javadoc distribution
      • pml2.jar
      • pml2rdb.jar
  • Source code (pml2.jar) root: org.inference_web
    • pml: PML Java Objects, e.g. IWPerson, IWNodeSet.
    • context: managing data objects. E.g. PMLContext, PMLObject
    • pmlp: IWAgent,...
    • pmlj: IWNodeSet. ...
    • util: validation, pml-gen, base64encoder
    • exception --error message
    • test: junit test code
  • Source code (pml2rdb.jar) root: org.inference_web
    • pml.rdb -- store mainly pmlp data in relational database

IW2 code

codebase package view root org.inference_web.

  • pml
    • context
      • accessor
    • pmlp
      • impl
    • pmlj
      • impl
    • util
      • config
  • pml.rdb
  • util.render
  • app.iwregistrar
  • app.iwbrowser

IW registrar

iw explainer

  • There are many functions in standalone version than the web based version.
Personal tools