@keywords a, is, of, this.

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

@prefix geo: <http://opencyc.sourceforge.net/daml/cyc.daml#> .
@prefix usps: <http://www.w3.org/2000/10/swap/pim/usps#> .

@prefix : <hypothetical.n3#>.

# For example
{ TSA permittedToCollectAndMatch { Delta creates Pnr1. TSC nofly { JohnDoe a SuspectedTerrorist } } } a Request.  
{ TSC permittedToCollect { JohnDoe a SuspectedTerrorist } } a Request.  

# In order to collect certain information about an individual, 
# an agency is equired to publish a SORN by privacy act
@forAll REQ, AGENCY, SORN, DATA, CI.
{ REQ a Request.
  REQ log:includes { AGENCY permittedToCollect DATA }.
  AGENCY a Agency.
  AGENCY publish SORN.
  SORN a Sorn.
  SORN about CI. 
  CI a CoveredIndividual.
  SORN used [ a SystemOfRecords ].
  SORN retrievedBy name.
  DATA log:includes { [] a CI }.
} => { AGENCY permittedToCollect DATA }.

{
{ REQ a Request.
  REQ log:includes { AGENCY permittedToCollectAndMatch DATA }.
  # check that TSA was permitted to collect and match the data by checking TSA's SORN
  # check every source of data was permitted to collect that information
  DATA log:include { AGENCY1 creates ITEM1 }.
  AGENCY1 permittedToCollect ITEM1.

} => { AGENCY permittedToCollectAndMatch DATA }.
} a IncompleteRule.

#ends
