Difference between revisions of "Rule frame"
From D4Science Wiki
(→ICIS Rule Frame) |
(→ICIS Rule Frame) |
||
Line 3: | Line 3: | ||
One approach to capturing requirements and potentially define on the implementation facilities, is to use a rule frame. This classifies and describes the expected types of rules to apply to data once an action has been triggered. | One approach to capturing requirements and potentially define on the implementation facilities, is to use a rule frame. This classifies and describes the expected types of rules to apply to data once an action has been triggered. | ||
− | The rule frame described in this example related to the validation of a imaginary dataset that is collected from a Regional Fisheries Organization, and has been loaded as a CSV in ICIS. It now needs to be reconciled with previous datasets from the same reporting | + | The rule frame described in this example related to the validation of a imaginary dataset that is collected from a Regional Fisheries Organization, and has been loaded as a CSV in ICIS. It now needs to be reconciled with previous datasets from the same reporting stream, and be published in various locations. |
− | + | ==== Check rules ==== | |
{| border="1" cellpadding="4" cellspacing="0" valign="top" | {| border="1" cellpadding="4" cellspacing="0" valign="top" | ||
Line 41: | Line 41: | ||
| align="center" | Find if Lat/Long fits within BBox of distributions | | align="center" | Find if Lat/Long fits within BBox of distributions | ||
| align="center" | Raise Alert ("This position seems unvalid") | | align="center" | Raise Alert ("This position seems unvalid") | ||
+ | |} | ||
+ | |||
+ | ==== Action rules ==== | ||
+ | |||
+ | {| border="1" cellpadding="4" cellspacing="0" valign="top" | ||
+ | ! width="50"|'''Type''' !! width="120"|'''Trigger''' !! width="120"|'''Params''' !! width="120"|'''Returns''' !! width="120"|'''Status''' !!width="120"|'''Implemented by''' !! width="120"|'''Comment''' !! width="120"|'''Action''' | ||
+ | |- valign="top" | ||
+ | | align="center" | tuple | ||
+ | | align="center" | getGeoName | ||
+ | | align="center" | Lat / Long | ||
+ | | align="center" | geoName | ||
+ | | align="center" | New | ||
+ | | align="center" | | ||
+ | | align="center" | Retrieve the nearest geoName, of any kind | ||
+ | | align="center" | (If return = "") Raise Alert ("No name found") | ||
+ | |- | ||
+ | | align="center" | tuple | ||
+ | | align="center" | getGeoNameCityOrPort | ||
+ | | align="center" | Lat / Long | ||
+ | | align="center" | geoName | ||
+ | | align="center" | New | ||
+ | | align="center" | | ||
+ | | align="center" | Retrieve the nearest geoName, of type "City" / "Port" | ||
+ | | align="center" | (If return = "") Raise Alert ("No name found") | ||
|} | |} |
Revision as of 14:43, 1 July 2013
ICIS Rule Frame
One approach to capturing requirements and potentially define on the implementation facilities, is to use a rule frame. This classifies and describes the expected types of rules to apply to data once an action has been triggered.
The rule frame described in this example related to the validation of a imaginary dataset that is collected from a Regional Fisheries Organization, and has been loaded as a CSV in ICIS. It now needs to be reconciled with previous datasets from the same reporting stream, and be published in various locations.
Check rules
Type | Trigger | When | Status | Implemented by | Comment | Action |
---|---|---|---|---|---|---|
Attr | 0 <= temp <= 30 | AI / AU | New | Check that Seawater is warmer then 0, and cooler than 30 | Raise Alert ("Your water temp is out of range") | |
Tuple | dtStart <= dtEnd | BI / BU | New | A check to ensure start dates are before end-dates | Raise Alert ("A start date must be before the end-date") | |
Entity | Unique key on genus, species, subspecies | BI / BU | New | Check that species are unique | Raise Error ("This species already exists") | |
Inter Entity | Valid Lat/Long | App logic | New | Find if Lat/Long fits within BBox of distributions | Raise Alert ("This position seems unvalid") |
Action rules
Type | Trigger | Params | Returns | Status | Implemented by | Comment | Action |
---|---|---|---|---|---|---|---|
tuple | getGeoName | Lat / Long | geoName | New | Retrieve the nearest geoName, of any kind | (If return = "") Raise Alert ("No name found") | |
tuple | getGeoNameCityOrPort | Lat / Long | geoName | New | Retrieve the nearest geoName, of type "City" / "Port" | (If return = "") Raise Alert ("No name found") |