1 / 17

AIXM 5.1 - Business rules

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

hunter
Download Presentation

AIXM 5.1 - Business rules

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AIXM 5.1 - Business rules

  2. 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

  3. 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

  4. 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

  5. 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

  6. SBVR for AIXM AIXM 5.1 – Business rules

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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)) &lt;= 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)) &gt;= 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)) &lt;= 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)) &gt;= 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) &lt;= 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) &gt;= 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

  14. 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

  15. 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

  16. ARC Tool AIXM 5.1 – Business rules

  17. Questions ? AIXM 5.1 – Business rules

More Related