@prefix dc: <http://purl.org/dc/elements/1.1/>.

<> dc:description """
find out what trips are in my team status
but not in my evolution calendar.
Key off start date, end date, and city name.

@@TODO: pointers both ways, which allow
slightly different stuff at each end?
""".


@prefix r: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix s: <http://www.w3.org/2000/01/rdf-schema#> .


@prefix ical: <http://www.w3.org/2000/01/foo@@#>.

# cyc common knowledge
@prefix k: <http://opencyc.sourceforge.net/daml/cyc.daml#> .

@prefix con: <http://www.w3.org/2000/10/swap/pim/contact#>.

@prefix map: <http://www.w3.org/2000/10/swap/pim/earthMap#>.
@prefix usps: <http://www.w3.org/2000/10/swap/pim/usps#>.

@prefix dt: <http://www.w3.org/2001/XMLSchema#>.

@prefix log: <http://www.w3.org/2000/10/swap/log#> .
@prefix str: <http://www.w3.org/2000/10/swap/string#> .
@prefix math: <http://www.w3.org/2000/10/swap/math#> .
@prefix time: <http://www.w3.org/2000/10/swap/time#> .

@prefix : <#>.
@prefix se: <#>.

this log:forAll :E, :WHAT, :CITYNAME, :COUNTRYNAME,
     :START, :STARTi, :END, :ENDi,
     :UID, :STAMP,
     :LOC, :ST, :P, :OYEAH.

map:cityName s:subPropertyOf :cityName.
usps:cityName s:subPropertyOf :cityName.

{
  :P s:subPropertyOf :cityName.
<status-formal.rdf> log:semantics [
  log:includes {
    :E r:value :WHAT;
      k:socialParticipants [ con:mailbox <mailto:connolly@w3.org> ];
      k:eventOccursAt [ :P :CITYNAME; ];
      k:startingDate [ dt:date :START ];
      k:endingDate [ dt:date :END ];
    
  }].


  ([ is time:inSeconds of :START ] "%Y%m%d" ) time:formatSeconds :STARTi.

  ([ is math:sum of ([ is time:inSeconds of :END ] "86400")] "%Y%m%d" )
    time:formatSeconds :ENDi.


}
  log:implies {
   <,evocal.rdf> :_shouldHave [
     :_what :WHAT;
     :_start :START;
     :_starti :STARTi;
     :_end :END;
     :_endi :ENDi;
     :_loc :CITYNAME;
     :_fromStatus :E
   ]
}.

{
   <,evocal.rdf> :_shouldHave [
     :_what :WHAT;
     :_starti :STARTi;
     :_endi :ENDi;
     :_loc :CITYNAME;
     :_fromStatus :E
   ].

   <,evocal.rdf> log:semantics [ log:notIncludes {
     [ ical:DTSTART [ ical:DATE :STARTi ];
       ical:DTEND   [ ical:DATE :ENDi ];
       ical:LOCATION :CITYNAME;
     ]
   }].

   :OYEAH is log:uri of :E. #@@ did timbl to an N3 printer thingy?
       
} log:implies {
   <,evocal.rdf> :_needs [
     ical:DTSTART [ ical:DATE :START ];
     ical:DTEND   [ ical:DATE :END ];
     ical:LOCATION :CITYNAME;
     ical:DESCRIPTION :OYEAH;
     ical:SUMMARY :WHAT;
   ]
}.



{
   <,evocal.rdf> log:semantics [ log:includes {
     [ ical:DTSTART [ ical:DATE :STARTi ];
       ical:DTEND   [ ical:DATE :ENDi ];
       ical:LOCATION :CITYNAME;
       ical:UID :UID;
       ical:DTSTAMP :STAMP;
     ]
   }].
} log:implies {
   :SyncInfo :eg
     [ ical:DTSTART [ ical:DATE :STARTi ];
       ical:DTEND   [ ical:DATE :ENDi ];
       ical:LOCATION :CITYNAME;
       ical:UID :UID;
       ical:DTSTAMP :STAMP;
     ]
}.
