Notifications

From Filtered Push Wiki
Jump to: navigation, search

Response to messages determined by JobPlans

The response of a FilteredPush network to a FP Message injected by a client into an access point is controlled by the job plan produced by the JobPlanner for that message. The responsibility for determining general system behavior elicited by messages rests in the JobPlanner.

One message type = one or more job plans.

Notifications

Notifications are publishing events into the pub/sub messaging system.

Notifications are system responses to events that match interests expressed by actors in the system. See: Use_cases#Use_Case:_Annotate_Specimen In particular, the discussion of IngestAnnotation File:UseCaseDiagram_InjestAnnotation_Fig147085.png, and File:HighLevelInteractionDiagram.png Also see: File:Annnotation_Sequence_Proposed_in_network.png and Researcher_Seeks_DwC_Metadata

Notifications arise from two (or three?) general categories of interaction with the system.

(1) Interests (Multiple additional potential examples at: Use_Case_Scenarios#Making_Annotations)

An actor phrases a query to the system, expressed as an interest FP_Messages#FP_SUBSCRIBE. The query is presented to the messaging system as an interest, requesting that all future messages presented to the messaging system containing or related to data matching the query parameter are to be put on a message queue for that interest.

Interest: A collection is interested in all annotations that pertain directly to specimens held in the collection. For example, CollectionCode = "GH". Note that CollectionCode values are expected to be unique under AppleCore guidance for herbaria, but are not expected to be unique in the more general case of natural science collections (where institution will be needed to disambiguate).

Satisfied by:

  • An annotation that contains a CollectionCode in the annotatesResource with a value of "GH".
  • An annotation that contains a CollectionID GUID in the annotatesResource with a value of "urn:lsid:biocol.org:col:15631".
  • An annotation that contains a ObservationID GUID in the annotatesResource where a query on the harvested data store asking for the CollectionCode for that ObservationID returns the value CollectionCode="GH". (True in the short term, in the long term, ObservationID will be expected to reference confirmed duplicate sets through owl sameAs statements).

Interest: A collection is interested in all annotations that pertain to specimens held in the collection, or to known duplcates of those specimens in other collections. For example, CollectionCode = "GH" and duplicate specimens thereof.

Satisfied by:

  • An annotation that contains a CollectionCode in the annotatesResource with a value of "GH".
  • An annotation that contains a CollectionID GUID in the annotatesResource with a value of "urn:lsid:biocol.org:col:15631".
  • An annotation that contains a ObservationID GUID in the annotatesResource where a query on the harvested data store asking for the CollectionCode for that ObservationID returns the value CollectionCode="GH".
  • An annotation that contains a ObservationID GUID in the annotatesResource where a query on the harvested data store asking for the CollectionCode for that ObservationID or an owl:sameAs ObservationID returns the value CollectionCode="GH".
  • An annotation that contains a GUID or DarwinCore Triplet (collectionCode and catalogNumber under AppleCore) in the annotatesResource where a query on the harvested data store asking for the CollectionCode for collectionCodes in the members of duplicate sets containing that collectionCode and catalogNumber in one member of the set have another member of the set that returns the value CollectionCode="GH".


Interest: A taxonomist is interested in all annotations that make assertions using a particular taxon. For example Genus = "Rubus". See: File:3nodes.png

Satisfied by:

  • An annotation where the hasTopic contains Genus = "Rubus"
  • An annotation where the hasTopic contains TaxonName like "Rubus %"

Interest: A taxonomist is interested in all annotations that make assertions about a particular taxon. For example Genus = "Rubus".

Satisfied by:

  • An annotation where the hasTopic contains Genus = "Rubus"
  • An annotation where the hasTopic contains TaxonName like "Rubus %"
  • An annotation where a query on the Genus for the ObservationID GUID or DarwinCore Triplet in the annotatesResource returns the value "Rubus"

Interest: A taxonomist is interested in all annotations that make assertions using a particular taxon and its synonyms. For example Genus = "Rubus" and synonyms.

Satisfied by:

  • An annotation where the hasTopic contains Genus = "Rubus"
  • An annotation where the hasTopic contains TaxonName like "Rubus %"
  • An annotation where the hasTopic contains Genus = a genus known to the system as being a junior synonym of Rubus
  • An annotation where the hasTopic contains TaxonName where the first word in TaxonName is a genus known to the system as being a junior synonym of Rubus.

Interest: An analytical job expresses an interest in changes to data sets (which can act as a trigger to the analytical job). See: Use_cases#Use_Case:_Quality_Control_New_Record

Satisfied by: Harvested data set having last changed values more recent than the threshold expressed by the analytical job.

(2) Queries. See: File:HighLevelInteractionDiagram.png, File:Query_Sequence_Proposed_in_Network.png

An actor phrases a query to the system, expressed as a query to be responded to with existing data known to the system. The Job Plan for a query includes (a) establishing a interest specifically to return the results of that query, using the messageID as a handle for the message queue so that the client knows where to check for the query results, (b) executing the query, and (c) delivering the query results to the messaging system.

(3) Analytical jobs

There may be messaging implications of embedded analytical jobs. See Use_cases#Use_Case:_Quality_Control_New_Record. This needs further consideration.