180 likes | 471 Views
AIXM 5.1 - Business rules. A statement that defines or constrains some aspect of the business. Simply put, it is a rule that is under business jurisdiction. Business Rules. Two fundamental categories
E N D
A statement that defines or constrains some aspect of the business. Simply put, it is a rule that is under business jurisdiction. Business Rules • Two fundamental categories • Structural Rule: These are rules about how the business chooses to organise (i.e., ‘structure’) the things it deals with. • Operative Rule: These are rules that govern the conduct of business activity. AIXM 5.1 – Business rules
Structural Rules Operative Rules How to express & encode these rules ? AIXM 5.1UML AIXM 5.1XML AIXM 5.1XSD Airportfeatures AIXM 5.1 Business Rules Syntactic check Semantic check AIXM 5.1 – Business rules
Expressing Business RulesSBVR & OCL • Business Rules are usually expressed by operational people • Standards enabling business rules for machine processing: • SBVR (Semantics of Business Vocabulary and Business Rules) • Still uses natural language that business people and operational staff use • Structured English grammar & vocabulary • OCL (Object Constraint Language) • Constraint and object query expressions on any UML model AIXM 5.1 – Business rules
SBVR specification • SBVR = (OMG) Semantics of Business Vocabulary and Business Rules • defines the vocabulary and rules for documenting the semantics of business vocabularies, business facts, and business rules. • It identifies two types of business rules • Structural rules • Operative rules • AIXM 5 has adopted this terminology and identifies the following business rules: • AIXM Structural rules: the enumerations of values (datatypes) • AIXM Operative rules: rules extracted from official documents (ICAO Annexes), minimum data rules, consistency rules, recommended practices, coding rules… AIXM 5.1 – Business rules
SBVR for AIXM AIXM 5.1 – Business rules
Examples • Generic rules: • “Each ElevatedCurve that has a verticalAccuracy must have an elevation” • “Each [...].lowerLevel that has an uom equal to 'FL' should have 2 or 3 digits.” • Specific rules: • “Each AirportHeliport.ARP must have horizontalAccuracy and AirportHeliport.ARP.horizontalAccuracy should be at most 1sec” • “Each DepartureLeg that has a speedLimit must have a speedReference” AIXM 5.1 – Business rules
Data verification results • Depends on the intended usage! • Classification of the rules • Data Plausibility • Data consistency • Minimal data requirements • Data quality • Source • ICAO SARPS • ARINC 424 • Common practices • … • Most rules -> “Warning” only • Data might be correct, human validation is recommended • Does not comply with certain • Some rules -> “Error” • Data is unsafe for use, either at feature level or at data set level AIXM 5.1 – Business rules
1st AIXM 5.1 Business Rules Report • Currently, an Excel report • Containing textual rules classified by type etc… • Providing Schematron code • Working Draft status • AIXM Users are able to pick-up the rules they need for their systems AIXM 5.1 – Business rules
Encoding Business RulesISO Schematron • Schematron (http://www.schematron.com/) • is an open language for the validation of XML document… • …whose specification is standardized (ISO/IEC 19757) • There are 6 basic elements in ISO Schematron: assertion, rule, pattern, schema, namespace and phase. AIXM 5.1 – Business rules
Encoding Business RulesISO Schematron • <assert> and <report> elements • Test attribute • Simple declarative sentences in natural language • <assert> used to tag assertions positively <!-- The assert element matches if test is false --> <assert test="//designator"> An AirportHeliport shall have a designator. </assert> • <rule> element • Used to group assertions • Has a context: if the context matches, the assertions are tested • <pattern>,<phase>,<schema>: used to logically group rules AIXM 5.1 – Business rules
Translation in SBVR Each ProcedureTransitionLeg.theSegmentleg that has legTypeARINC equal to AF must have a turnDirection. Expressing and Encoding Business Rules – Example #1 Operational Rule <SegmentLeg> <legTypeARINC>AF</legTypeARINC> <turnDirection>L</turnDirection> </SegmentLeg> <rule id="1" -> unique identifier of the rule context="// SegmentLeg[@legTypeARINC='AF'] "->Defines the conditions of the rule (If attribute SegmentLeg.legTypeARINC= “AF”). ->The rule will be tested if the context is true. <assert id="1_1" -> unique identifier of the assertion test="boolean(@turnDirection)" -> the logical test to be performed. The “assert” element matches if the logical test returns false (in this case, if the turnDirection is not provided). Simplified ISO Schematron example <ruleid="1"context="//SegmentLeg[@legTypeARINC='AF'] "> <assert id="1_1" test="boolean(@turnDirection)"> </assert> </rule> AIXM 5.1 – Business rules
Expressing and Encoding Business Rules – Example #2 not(./parent::*/parent::*/parent::*/parent::*/parent::*/aixm:codingStandard = 'ARINC_424_18') or not(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*[aixm:legTypeARINC='CI' or aixm:legTypeARINC='VI']) or not(./aixm:type='FINAL' and ./parent::*/parent::aixm:InstrumentApproachProcedureTimeSlice[aixm:approachType='LOC_BC' or aixm:approachType='LOC_DME_BC' or aixm:approachType='IGS' or aixm:approachType='ILS' or aixm:approachType='ILS_PRM' or aixm:approachType='LOC' or aixm:approachType='LOC_DME' or aixm:approachType='SDF' or aixm:approachType='LDA' or aixm:approachType='LDA_DME' or aixm:approachType='ILS_DME']) or not(./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg) or saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*[aixm:legTypeARINC = 'IF'] or (if(saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*[aixm:legTypeARINC = 'AF']) then (if(saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*[aixm:turnDirection = 'LEFT']) then (arcext:courseDiff(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*/aixm:course, arcext:substractAngle(saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*/aixm:course , 90.0)) <= 90.0 and arcext:courseDiff(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*/aixm:course, arcext:substractAngle(saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*/aixm:course , 90.0)) >= 10.0) else (arcext:courseDiff(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*/aixm:course, arcext:additionAngle(saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*/aixm:course , 90.0)) <= 90.0 and arcext:courseDiff(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*/aixm:course, arcext:additionAngle(saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*/aixm:course , 90.0)) >= 10.0)) else (arcext:courseDiff(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*/aixm:course, saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*/aixm:course) <= 90.0 and arcext:courseDiff(saxon:evaluate(arcext:getXPath(@xlink:href))/*/*/aixm:course, saxon:evaluate(arcext:getXPath((./parent::*/parent::*/following-sibling::*//aixm:theSegmentLeg)[1]/@xlink:href))/*/*/aixm:course) >= 10.0)) • Rule: The intercept angle of CI or VI in Loc based Approach transition must be between 10 and 90 degrees. AIXM 5.1 – Business rules
ARC (AIXM Rules Checker) • ARC is a proof-of-concept tool provided by Eurocontrol: • Open source • Compliant with Schematron standard • Based on Java and Web technologies HTML, Javascript and CSS • Main features of ARC: • Creation of profiles (Example of profiles: AIXM 4.5, AIXM 5.0, AIXM 5.1) • Schematron validation of an XML dataset, according to the selected profile • Generation and display of a validation report with errors, warnings etc… AIXM 5.1 – Business rules
ARC (AIXM Rules Checker) • ARC was improved in 2009 & 2010 • New Java engine to run the Schematron validation • New Java extension: • Support the XML namespaces • ARC can now evaluate xlink:href • Perform geographical computations in WGS84 AIXM 5.1 – Business rules
ARC Tool AIXM 5.1 – Business rules
Questions ? AIXM 5.1 – Business rules