r10 - 08 Sep 2003 - 15:02:16 - ChrisWroeYou are here: myGrid wiki >  Mygrid Web  > WorkInProgress > MyGridInformationRepository > InformationDescription

Information Description

This page is intended to give a brief overview of the classes identified in the information model. The current model was produced by ChrisGreenhalgh following a brainstorm at IF-3, on 2003-02-11. For a diagram, and comments on issues to be clarified, see MyGridInformationRepository.

This page is experimental. The advantage of using TWiki is that we can incorporate links to examples on other TWiki pages. A list of the classes in the information model and the relationships between them is intended to be browsed in multiple ways, rather than form a linear document.

This page is not yet complete (2003-02-20)

We are currently working on a revised design and implementation after the experience gained in IF4. Design notes can be found in

ChrisWroe - 30 Jun 2003

UserDescription has more information on how to describe a user.

-- ChrisWroe - 08 Sep 2003


See also InformationModel for further work in this area.

NickSharman - 18 July 2003


Index

Name   Superclass
ActionDefinition Entity DataThing
ActionPerformed Entity ProxyThing
Annotation Entity DataThing
createdBy Relationship  
createdIn Relationship  
DataThing Entity Thing
describedByIn Relationship  
Experiment Entity WorkContext
GridResource Entity ProxyThing
Input Entity? (models input relationship)
involvedIn Relationship  
LabBookReport Entity Report
Notification Entity DataThing
Organisation Entity WorkContext
originAction Relationship models output
partOf Relationship  
performedBy Relationship  
Project Entity WorkContext
ProvenanceLog Entity Report
ProxyThing Entity Thing
Report Entity DataThing
Service Entity GridResource
ServiceDescription Entity DataThing
SingingAnnotation Entity Annotation
subject Relationship  
subscription Relationship  
Subscription Entity WorkContext
Thing Entity None (Top)
User Entity ProxyThing
WFDefinition Entity ActionDefinition
WFInstance Entity ActionPerformed
WorkContext Entity ProxyThing


Entities

Thing
A Thing is the base entity in the information model. Things are divided into two broad categories: DataThing which are those things that we can store in a database, and ProxyThing which are those, such as users, where we can only store a proxy. These are exclusive subsets. A Thing can never be both a DataThing and a ProxyThing. The properties of Thing are:
  • uri : java.net.URI
    • all Things have a unique identifier (e.g. LSID)
  • title : String
  • description :String
  • createdTime : String
  • createdBy : User
    • all Things are created by some User
  • conceptType : java.net.URI
  • comment : String
    • The property comment is additional clarification information provided by the Thing's creator. There is a separate entity Annotation that is used to record third party information about any Thing.
  • additionalMetaData : NameValuePair?[]


DataThing
DataThing represents all the entities that can be stored in a database. This includes domain entities, such as a protein sequence in the bioinformatics domain, and myGrid entities, reports, annotations, action definitions and notifications. The properties of DataThing in addition to those inherited from Thing are:
  • value : byte [] - the actual report, annotation, protein sequence etc.
  • concreteType : String
  • format : String
  • language : String
  • versioned : Boolean
  • baseURI : java.net.URI
    • this was intended to be the version-independent part of e.g. an LSID URI, whereas uri in Thing is the full URI including any version suffix - cmg.
  • version : Int
  • replaced : boolean
  • delible : boolean - able to be deleted
  • deleted : boolean
    • Place-holder - does it ever make sense to delete (or garbage collect) a (presumably large) value, but leave all the metadata in place for provenance purposes? If so, use this.
  • origin : enum
    • all DataThings come from somewhere. User might use a client to type in the value directly, or upload it. An action performed might create the DataThing as an interim or final output.
  • originExternalUri : java.net.URI
    • used for DataThings that come from outside myGrid
  • originAction : ActionPerformed
    • used for DataThings that come from actions recorded in myGrid
  • originActionOutputName : String
    • actions may produce multiple outputs, which can be distinguised by name

ProxyThing
ProxyThing represents all the entities where only a proxy of the actual thing can be included in a database. This includes: users, service/workflow invocations, experiments, organisations, grid resources.

Annotation
An Annotation can be attached to an Thing. The Annotation itself is a DataThing. In addition to the properties it inherits from DataThing, the Annotation has a subject property whose value is the Thing to which the Annotation refers.

SingingAnnotation
A SigningAnnotation is an Annotation with the additional properties: subjectHash and digitalSignature. This supports a degree of cryptographic authentication of the annotation and the state of the thing when it was annotated.

User
A User is a ProxyThing, that represents myGrid users. The properties of User in addition to those inherited from ProxyThing are:
  • email : String
  • userAgent : URL
  • DN : String
  • phone : String
  • fax : String
  • sms : String
As a User is a Thing, all Users have a createdBy relationship with another User. The bootstrap will have to create a initial root User
WorkContext
A WorkContext is the general facility for structuring work within myGrid. The subclasses of WorkContext include: Experiment, Organisation, Project, and (provisionally) Subscription.

Experiment
An Experiment is a WorkContext.

Organisation
An Organisation is a WorkContext.

Project
An Project is a WorkContext.

Subscription
An Subscription is a WorkContext.

Notification
An Notification is a DataThing. It has the additional property:

Report
A Report is a DataThing. Unlike an Annotation a Report does not have a specific subject.

LabBookReport
A LabBookReport is a Report.

ProvenanceLog
A ProvenanceLog is a Report.

ActionProvenanceLog
An ActionProvenanceLog is a ProvenanceLog.

ActionDefinition
A ActionDefinition is a DataThing. This could be the definition of how to invoke a web service, a web service with a specific interface style, such as soaplab, a grid service, or a workflow.

WFDefinition
A WFDefinition is a ActionDefinition. It includes the workflow source in WSFL.

ActionPerformed
An ActionPerformed is a ProxyThing. It is the proxy for some action that was (or is being?) performed. Note that there is a distinction between the ActionPerformed and the ActionProvenanceLog which is a Report of what happenend.


WFInstance
A WFInstance is a ActionPerformed. It includes a nativeURI property, which is the unique identifier given to the workflow instance by the workflow enactment engine.


Input
An Input is not a Thing. It is a description of the fact that a DataThing was an input to an ActionPerformed. A separate record is needed as the same DataThing may be input to several ActionPerformed, for example when running a new version of a WFDefinition with the same inputs. An Input has an inputName property that identifies the parameter name of the ActionPerformed.

(It is possible for the same DataThing to be passed to an ActionPerformed as the value of more than one distinct parameter.)


GridResource
An GridResource is a ProxyThing.
  • an GridResource has a property nativeURI : URI
    • This is the URI of the resource itself. The GridResource will also have a property uri from Thing, but this will be the uri of the proxy within myGrid rather than the GridResource itself.
    • There will also be a disctinction between the actual owner/creator of the external resource, and the myGrid user who created the proxy

Service
An Service is a GridResource.

ServiceDescription
A ServiceDescription is a DataThing.

Also see ServiceDescription. -- ChrisWroe - 21 Feb 2003


Relationships

subject
A Thing is subject of an Annotation
createdBy
A Thing is createdBy a User
createdIn
0 or more Things are createdIn a WorkContext
involvedIn
0 or more Things are involvedIn a WorkContext
partOf
0 or more WorkContexts can be partOf of 0 or more WorkContexts
definedBy
A ActionPerformed is definedBy a ActionDefinition
definedBy
A WFInstance is definedBy a WFDefinition
describedBy
A Experiment is describedBy a ActionProvenanceLog
describedBy
A ActionPerformed is describedBy a ActionDefinition
describedBy
A Service is describedBy a ServiceDescription

performedBy
A ActionPerformed is performedBy a Service

originAction
A DataThing may have originAction a ActionPerformed, that is the DataThing is an output of the ActionPerformed

Input
An ActionPerformed may have (hasInput) 0 or more Input, which have dataThing a DataThing

subscription
A Notification has subscription a Subscription


-- MarkGreenwood - 19 Feb 2003

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r10 < r9 < r8 < r7 < r6 | More topic actions
 
Powered by myGrid wiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding myGrid wiki? Send feedback