On Entity Invalidation: new Section 4.1.7

4.1.7: Invalidation

Entities have a duration. Generation marks the beginning of an entity. The end of an entity can occur for different reasons.

In the first two cases, the entity has physically disappeared after its termination: there is no more soup, or painting. In the last two cases, there may be an "offer voucher" that still exists, but it is no longer valid; likewise, on April 4th, the BBC news site still exists but it is not the same entity as BBC news Web site on April 3rd; or the traffic light became red and therefore is regarded as a different entity to the green light.

Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use after invalidation. Any generation or usage of an entity precedes its invalidation.

Invalidation, written wasInvalidatedBy(id,e,a,t,attrs) in PROV-N, has:

While each of the components activity, time, and attributes is OPTIONAL, at least one of them MUST be present.

The Painter, a Picasso painting, is known to have been destroyed in a plane accident.

entity(ex:The-Painter)
agent(ex:Picasso)
wasAttributedTo(ex:The-Painter, ex:Picasso)
activity(ex:crash)
wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-02, [ex:circumstances="plane accident"])

The BBC news home page on 2012-04-03 ex:bbcNews2012-04-03 contained a reference to a given news item bbc:news/uk-17595024, but the BBC news home page on the next day did not.

entity(ex:bbcNews2012-04-03)
memberOf(ex:bbcNews2012-04-03,{("item1", bbc:news/uk-17595024)})
wasGeneratedBy  (ex:bbcNews2012-04-03,-,2012-04-03T00:00:01)
wasInvalidatedBy(ex:bbcNews2012-04-03,-,2012-04-03T23:59:59)
We refer to example anexample-specialization for further descriptions of the BBC Web site, and to Section Membership for a description of the relation memberOf.

In this example, the "buy one beer, get one free" offer expired at the end of the happy hour.

entity(buy_one_beer_get_one_free_offer_during_happy_hour)
wasAttributedTo(proprietor)
wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
                 -,2012-03-10T18:00:00)

In contrast, in the following descriptions, Bob redeemed the offer 45 minutes before it expired, and got two beers.

entity(buy_one_beer_get_one_free_offer_during_happy_hour)
wasAttributedTo(proprietor)
activity(redeemOffer)
entity(twoBeers)

wasAssociatedWith(redeemOffer,bob)
used(buy_one_beer_get_one_free_offer_during_happy_hour,
     redeemOffer, 2012-03-10T17:15:00)
wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
                 redeemOffer, 2012-03-10T17:15:00)
wasGeneratedBy(twoBeers,redeemOffer)

We see that the offer was both used to be converted into twoBeers and invalidated by the redeemOffer activity: in other words, the combined usage and invalidation indicate consumption of the offer.