Re: PROV-ISSUE-467 (activity-start-req-trigger): Do activity start/end always require trigger? [prov-dm-constraints]

On Aug 9, 2012, at 11:23 AM, Stian Soiland-Reyes wrote:

> On Thu, Aug 9, 2012 at 10:59 AM, James Cheney <jcheney@inf.ed.ac.uk> wrote:
>> 1. [status quo] - allow expanding the trigger parameter to an existential variable denoting an unknown (but definite) trigger entity
>> 2. change the trigger parameter to be non-expandable, so that "-" means "absent trigger", as with plan and other non-expandables.
>> 
>> So we'll resolve this issue by taking whichever of the above has the stronger consensus?
> 
> Right, simple options.
> 
> 
> For #2 - I assume that if the trigger is absent, then the starter
> activity should also be -. (To avoid recreating non-triggering
> wasStartedByActivity). If the starter activity is given, then we
> simply don't know the identity of the trigger. Thus Inference
> wasStartedBy-inference should always run, unless they are both -.
> 
> Example change to inference rule:
> 
> 
> 
> Inference 9 (wasStartedBy-inference)
> IF wasStartedBy(_id; a,e1,a1,_t,_attrs) and either e1 or a1 are not
> the placeholder -, THEN there exist _gen and _t1 such that
> wasGeneratedBy(_gen; e1,a1,_t1,[]).
> 

Minor comment: if one of e1,a1 is placeholder and the other isn't, then we'd infer

wasGeneratedBy(_gen; -,a1,_t1,[]).
or
wasGeneratedBy(_gen; e1,-,_t1,[]).

which seems strange (I'd prefer not to infer new expandable placeholders).

I think it is equivalent to require both e1 and a1 to be non-placeholder if we adopt the definitions and constraints below.

> Remark:
> If both the trigger e1 and the starter activity a1 is the placeholder
> -, this indicates that there is no trigger (and thus no activity
> generating that trigger), and this inference rule does not apply. If
> the starter activity is given, then the trigger e1 is present, but
> unknown.
> 
> (and equivalent for wasEndedBy-inference)


OK.  I believe we can handle this (we are likely going to do something similar for derivation, to avoid a technical problem with derivation-use-inference).  

The mechanism (if we want to make trigger non-expandable) would be to add a definition that says that IF the activity is present, we can expand the trigger.

We could also add a constraint that says that if the trigger is -, then the activity must also be -.  

So the possible cases are (assuming e1,a1 not placeholder):
wasStartedBy(id; a,e1,a1,t,attrs)  
  -> valid; in normal form

wasStartedBy(id; a,-,a1,t,attrs)  
  -> expands to "there exists e0 such that wasStartedBy(id; a,e0,a1,t,attrs)", which is valid

wasStartedBy(id; a,e1,-,t,attrs)  
  -> invalid

wasStartedBy(id; a,e1,a1,t,attrs)  
  -> valid; in normal form

wasStartedBy(id; a,-,-,_t,_attrs)
  -> valid; in normal form

Is this what you expect?


If so, let me refine option 2 as follows:

- Make *both* trigger and activity non-expandable
- Add a definition conditionally expanding  wasStartedBy(id; a,-,a1,t,attrs)  to there exists e0. wasStartedBy(id; a,e0,a1,t,attrs)  provided a1 is not "-"
- Add a constraint forbidding wasStartedBy(id; a,e1,-,t,attrs)  
- Adopt your suggested change to inference 9.  (I would require *both* e1,a1 to be non-placeholder, though.)

OK?

--James
-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

Received on Thursday, 9 August 2012 11:39:35 UTC