330 likes | 599 Vues
TopQuadrant Metrics and QA Support TopBraid Suite Supporting the Complete Semantic Application Lifecycle. Metrics Agenda. Kinds of Metrics Approach to Metrics Model Metrics Class Metrics Property Metrics Other QA Support Conclusion. Kinds of Metrics. Models. Coupling Compliance
E N D
TopQuadrant Metrics and QA Support TopBraid Suite Supporting the Complete Semantic Application Lifecycle
Metrics Agenda • Kinds of Metrics • Approach to Metrics • Model Metrics • Class Metrics • Property Metrics • Other QA Support • Conclusion
Kinds of Metrics Models Coupling Compliance Complexity Correctness Cohesion Consistency Classes of Properties Axioms
Models and Namespaces:NASA Ontologies • Enterprise • Information • Technology • Structure, • Electrical, • Hydraulic, • Thermal, • … • Lifecycle • Social • Competencies • Critical Skills • Human Organizational Risks
Translation of NIEM XML Schemas to OWL NIEM XSD Schemas NIEM OWL Ontologies Import into TopBraid Composer
NIEM Person (Proto) OWL Model To address reusability, the NIEM Person was re-factored into individual ‘Details’ classes.
Metrics on the NIEM OWL Model SELECT ?class ?restrictionCount WHERE { ?class a owl:Class . LET ( ?restrictionCount := smf:countResults( "SELECT DISTINCT ?property WHERE { ?class rdfs:subClassOf ?restriction . ?restriction a owl:Restriction . ?restriction owl:onProperty ?property }" )) }
Refactoring of NIEM Person into an OWL Model with reusable Concepts (person:Details) Depending on the context of use, concepts describing different details about a person can be selected
Approach to Metrics • User-Definable • Extensible • Flexible Reporting • Model-Based • Rule-Based
Model Metrics - 1 • Namespaces versus Named Graphs • Model-Based • Rule-Based • Flexible Reporting
Model Metrics - 2 • Class Metrics for Number of: • Classes (NoC) • Leaf Classes (NoLC) • Root Classes (NoRC) • Superclasses (NoSpC) • Subclasses (NoSbC) • Classes with Equivalent Class Expressions (NoEqC) • Classes with ‘HasValue’ restriction Axioms (NoHvR) • Average Depth of Inheritance (AvDoI) • Max Depth of Inheritance (MxDoI)
Metrics for Individual Models OARS - Ontology Architecture Requirements Specification Ontology UC - Use Case Ontology
Model Metrics - 3 • Property Metrics for Number of: • Datatype Properties (NoDtP) • Object Properties (NoOP) • Annotation Properties (NoAP) • Ratio Metrics for • Specialization Ratio (=NoSbC/NoSpC) • Reuse Ratio (=NoSbC/NoC)
Model Metrics Examples - 1 A C B F G E D I H
TopBraid Metrics Approach is Model-Based SPIN Construct Rules are used to generate Metric Triples for the Metrics Model – an ontology called ‘oqa.owl’
TopBraid OQA:Namespace Metrics ‘oqa:NamespaceMetricRow’ holds metrics for a given namespace
TopBraid Metrics Approach is Model-Based SPIN Construct Rules are used to generate Metric Triples for the Metrics Model – an ontology called ‘oqa.owl’
SPIN Functions enable Reusable Model Rules SPIN Construct Rules are used to generate Metric Triples for the Metrics Model – an ontology called ‘oqa.owl’
Class Metrics • Property Metrics for Number of: • Datatype Properties (NoDtP) • Object Properties (NoOP) • Annotation Properties (NoAP) • Axiom Metrics for Number of: • Equivalent Class • Has Value Restrictions
TopBraid Class Metrics SPIN Construct Rules are used to generate Metric Triples for the Metrics Model – an ontology called ‘oqa.owl’
SPARQLMotion Script for Metrics Generation Import the OARS Ontology to run metrics over it. Import System ontology Get the JSP Script for the report Run the SPIN Engine Run the JSP Script Export the HTML Report
Class Metrics Example: OARSOntology Architecture Requirements Specification
JSP Metrics Report Sample • <body> • <h2>Ontology Models Report</h2> • <table class="metricTable" width="800" align="center"> • <tr><td class="cellHead">NoC</td><td class="cellHead">NoEqC</td><td class="cellHead">NoHvR</td><td class="cellHead">NoDtP</td><td class="cellHead">NoOP</td> • <td class="cellHead">NoAP</td><td class="cellHead">NoRC</td><td class="cellHead">NoLC</td> • <td class="cellHead">NoSbC</td><td class="cellHead">NoSpC</td><td class="cellHead">RaSp</td></tr> • <sparql:select var="mReport"> • SELECT * • WHERE { • ?report a oqa:ModelMetricsReport . • OPTIONAL {?report oqa:classes ?classes } . • OPTIONAL {?report oqa:annotationProperties ?aprops } . • OPTIONAL {?report oqa:objectProperties ?oprops } . • OPTIONAL {?report oqa:datatypeProperties ?dprops } . • OPTIONAL {?report oqa:rootclasses ?rootclasses } . • OPTIONAL {?report oqa:leafclasses ?leafclasses } . • OPTIONAL {?report oqa:subclasses ?subclasses } . • OPTIONAL {?report oqa:superclasses ?superclasses } . • OPTIONAL {?report oqa:specializationRatio ?ratioraw . • LET (?decimal := smf:indexOf(?ratioraw, ".")) . • LET (?ratio := smf:subString(?ratioraw, 0, (?decimal+4)))} . • OPTIONAL {?report oqa:classesWithEquivalentClassExpressions ?equivClass} . • OPTIONAL {?report oqa:classesWithHasValueRestrictions ?clsHasValue } . • } • </sparql:select> • <c:forEach items="${mReport.rows}" var="modelRow"> • <tr> • <td class="cell"><sparql:out node="${modelRow.classes}" /></td> • <td class="cell"><sparql:out node="${modelRow.equivClass}" /></td> • <td class="cell"><sparql:out node="${modelRow.clsHasValue}" /></td> • <td class="cell"><sparql:out node="${modelRow.dprops}" /></td> • <td class="cell"><sparql:out node="${modelRow.oprops}" /></td> • <td class="cell"><sparql:out node="${modelRow.aprops}" /></td> • <td class="cell"><sparql:out node="${modelRow.rootclasses}" /></td> • <td class="cell"><sparql:out node="${modelRow.leafclasses}" /></td> • <td class="cell"><sparql:out node="${modelRow.subclasses}" /></td> • <td class="cell"><sparql:out node="${modelRow.superclasses}" /></td> • <td class="cell"><sparql:out node="${modelRow.ratio}" /></td> • </tr> • </c:forEach> • </table> Embedded SPARQL query Embedded SPARQL query
Property Metrics • Semantic Weight • Occurrences of properties on Classes
Other QA Capabilities • Model Integrity • Missing Constructs • Model Dependencies • Differences across Versions
Thank You Ralph Hodgson E-mail: rhodgson@topquadrant.com
Refactoring of NIEM Person into a Model with reusable Concepts (person:AppearanceDetails) A Person’s ‘Appearance Details’ will be needed for criminal investigations.
Refactoring of NIEM Person into a Model with reusable Concepts (person:ConditionDetails) A Person’s ‘Condition Details’ will be needed for both driving incidents and criminal investigations.
Refactoring of NIEM Person into a Model with reusable Concepts (person:SocialDetails) A Person’s ‘Social Details’ will be needed for change of status, such as naturalization.
Refactoring of NIEM Driving Incident into a Model showing reusable Concepts The NIEM Driving Incident concept is also being re-factored. The use of ‘Augmentation’ classes simplifies the construction of UBL documents.