Establishing a Bridge from Graph-based Modeling Languages to Ontology Languages

901 views

Published on

Talk at the 3rd Workshop on Transforming and Weaving Ontologies in Model Driven Engineering (co-located with TOOLS), 30 June 2010, Malaga, Spain.

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
901
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • All edge classes are subsumed by a super concept TopEdge There exist two object properties to and from, which define source and target vertex of an edge
  • (objectFlowProperty some Vertex) or (inv(objectFlowProperty) some Vertex)
  • Establishing a Bridge from Graph-based Modeling Languages to Ontology Languages

    1. 1. Establishing a Bridge from Graph-based Modeling Languages to Ontology Languages Tobias Walter Hannes Schwarz Yuan Ren (University of Aberdeen) 30.06.2010 TWOMDE 2010
    2. 2. Objectives <ul><li>Introduction </li></ul><ul><li>Modeling of TGraphs and Schemas in OWL </li></ul><ul><li>Bridge </li></ul><ul><ul><li>Cardinality Expressions </li></ul></ul><ul><ul><li>Quantified Expressions </li></ul></ul><ul><ul><li>Boolean Connectives </li></ul></ul><ul><ul><li>Path Descriptions </li></ul></ul><ul><li>Advantages of the TGraph Approach and OWL </li></ul><ul><li>Conclusion </li></ul>
    3. 3. Introduction (TGraph Approach) <ul><li>TGraph (Model) </li></ul><ul><li>Directed graphs, their edges and vertices are typed and attributed, and for each vertex the incident edges are ordered. In addition, the vertices and edges of the graph are ordered globally. </li></ul><ul><li>Example (M1 layer) </li></ul>abstract syntax concrete syntax
    4. 4. Introduction (TGraph Approach) <ul><li>Graph Schema (Metamodel) </li></ul><ul><li>Schemas define types of edges and vertices, associates them with attributes, and structures them in generalization hierarchies </li></ul><ul><li>grUML (Metamodeling Language) </li></ul><ul><li>Metamodeling language used for modeling schemas corresponds to a subset of UML class diagrams </li></ul><ul><li>Example (M2 layer) </li></ul>
    5. 5. Introduction (GReQL) <ul><li>Graph Repository Query Language </li></ul><ul><li>declarative, expression-based query language for TGraphs </li></ul><ul><li>FWR expressions </li></ul><ul><ul><li>from - declares variables </li></ul></ul><ul><ul><li>with - summarizes predicates which have to be fulfilled by the variables </li></ul></ul><ul><ul><li>report - determines the result structure of the query </li></ul></ul><ul><li>Example </li></ul><ul><li>Constraint in GReQL: </li></ul>from v:V with reMatch(v.name, &quot;.*Action.*&quot;) report v as “Action “; forall n: V {ActivityNode} @ n.name <> &quot;&quot;
    6. 6. Description Logics <ul><li>Description Logics (DLs) are logics designed to represent and reason on structured knowledge </li></ul><ul><li>The domain of interest is structured into ( TBox ): </li></ul><ul><ul><li>concepts, which correspond to classes, and denote sets of individuals </li></ul></ul><ul><ul><li>roles, which correspond to associations, and denote binary relations on individuals </li></ul></ul><ul><li>The knowledge is asserted through so-called assertions ( ABox ) </li></ul><ul><li>Provide formal semantics </li></ul><ul><li>DLs provide the foundations for standard ontology languages, like OWL2 </li></ul>Knowledge Base TBox ABox Inference Engine Application
    7. 7. Modeling of TGraphs and Schemas in OWL <ul><li>Each vertex class is represented as an OWL class </li></ul><ul><li>All vertex classes are subsumed by a super concept Vertex </li></ul>Declaration ( Class (ActivityNode)) Declaration ( Class (Vertex)) SubClassOf (ActivityNode Vertex)
    8. 8. Modeling of TGraphs and Schemas in OWL <ul><li>Each edge class is represented by an OWL class. </li></ul><ul><ul><li>Two object properties which define the source ( from ) and target ( to ) vertices of an edge </li></ul></ul><ul><ul><li>An object property is declared as the chain of the two object properties </li></ul></ul>Declaration ( Class (HasNode)) Declaration ( ObjectProperty (fromHasNode)) ObjectPropertyDomain (fromHasNode HasNode) ObjectPropertyRange (fromHasNode ActivityDiagram) Declaration (ObjectProperty(toHasNode)) ObjectPropertyDomain (toHasNode HasNode) ObjectPropertyRange (toHasNode ActivityNode) Declaration ( ObjectProperty (HasNodeProperty)) SubObjectPropertyChain ( InverseObjectProperty (fromHasNode) toHasNode) HasNodeProperty)
    9. 9. Modeling of TGraphs and Schemas in OWL <ul><li>All OWL classes representing edge classes and their object properties to and from are subsumed by one single object property topEdgeProperty , </li></ul><ul><ul><li>topEdgeProperty has a transitive super object property transitiveTopEdgeProperty </li></ul></ul>Declaration ( ObjectProperty (topEdgeProperty)) ObjectPropertyDomain (topEdgeProperty Vertex) ObjectPropertyRange (topEdgeProperty Vertex) SubObjectPropertyOf ( HasNodeProperty topEdgeProperty) Declaration ( ObjectProperty (transitiveTopEdgeProperty)) SubObjectPropertyO f(topEdgeProperty transitiveTopEdgeProperty) TransitiveObjectProperty (transitiveTopEdgeProperty)
    10. 10. Modeling of TGraphs and Schemas in OWL <ul><li>Each attribute is transformed to a data property in OWL </li></ul><ul><li>Specialization relationships relating vertex classes and edge classes, respectively, are transformed to OWL subclass axioms </li></ul>Declaration ( DataProperty (name)) DataPropertyDomain (name ActivityNode) DataPropertyRange (name xsd:string) SubClassOf(ObjectFlow ActivityEdge) SubClassOf(Action ActivityNode)
    11. 11. Modeling of TGraphs and Schemas in OWL <ul><li>TGraphs themselves are transformed to a set of assertions. </li></ul>.... Declaration (Individual(start)) Declaration (Individual(process)) Declaration (Individual(finish)) ClassAssertion (start Initial) ClassAssertion (process ControlFlow) ClassAssertion (finish Final) ObjectPropertyAssertion (controlFlowProperty start process) ObjectPropertyAssertion (controlFlowProperty process finish) ....
    12. 12. Cardinality Expressions <ul><li>grUML </li></ul><ul><li>Cardinalities directly defined by annotating edge classes </li></ul><ul><li>OWL </li></ul><ul><li>Defined by class expressions ObjectMinCardinality , ObjectMaxCardinalit y, and ObjectExactCardinality </li></ul>SubClassOf (ActivityNode ObjectExactCardinality (1 InverseObjectProperty (HasNodeProperty) ActivityDiagram))
    13. 13. Quantified Expressions <ul><li>grUML+ GReQL </li></ul><ul><li>Universal quantification: </li></ul><ul><li>Existential quantification </li></ul><ul><li>OWL </li></ul><ul><li>ObjectAllValuesFrom class expression for universal quantification </li></ul><ul><li>ObjectSomeValuesFrom class expression for existential quantification </li></ul>forall n: V { ActivityNode } @ n. name <> &quot;&quot; forall f: V {Final} @ exists a:V{ ActivityNode } @ a -->{ ActivityEdge } f SubClassOf (ActivityDiagram ObjectAllValuesFrom (HasNodeProperty ObjectIntersectionOf ( ObjectComplementOf ( DataHasValue ( name &quot;&quot;)) ActivityNode ))) SubClassOf ( Final ObjectSomeValuesFrom ( InverseObjectProperty( ActivityEdgeProperty ) ActivityNode ))
    14. 14. Boolean Connectives <ul><li>grUML + GReQL </li></ul><ul><li>operators and , or , not </li></ul><ul><li>OWL </li></ul><ul><li>ObjectIntersectionOf , ObjectUnionOf , ObjectComplementOf class expressions. </li></ul>forall ad: V {ActivityDiagram} @ ( exists i:V{Initial} @ ad --> {HasNode} i) and ( exists f: V {Final} @ ad -->{HasNode} f) SubClassOf (ActivityDiagram ObjectIntersectionOf ( ObjectSomeValuesFrom (HasNodeProperty Initial) ObjectSomeValuesFrom (HasNodeProperty Final) ))
    15. 15. Path Descriptions (Simple Path Description) <ul><li>grUML+ GReQL </li></ul><ul><li>--> (outgoing) , <-- (incoming), <-> (direction not important) </li></ul><ul><li>optionally an edge type restriction in curly braces. </li></ul>forall v: V {Action} @ exists w: V @ v --> w forall w: V {ObjectNode} @ exists v: V @ w <--{ObjectFlow} v <ul><li>OWL </li></ul><ul><li>ObjectSomeValuesFrom class expressions </li></ul><ul><li>topEdgeProperty or OWL class representing the edge type </li></ul>SubClassOf (Action ObjectSomeValuesFrom (topEdgeProperty Vertex) ) SubClassOf (ObjectNode ObjectSomeValuesFrom (objectFlowProperty Vertex) ))
    16. 16. Path Descriptions (Goal- and Start-Restrictions) <ul><li>grUML+ GReQL </li></ul><ul><li>Restriction of start and end vertices of a path description </li></ul><ul><li>Vertex class expression which restricts the start or end vertex is separated from the path description with a & </li></ul>forall o: V {ObjectNode} @ exists v: V @ o --> &{Action, ObjectNode} v <ul><li>OWL </li></ul><ul><li>Class expression to describe goal and start of edge </li></ul><ul><li>for example: ObjectUnionOf </li></ul>SubClassOf (ObjectNode ObjectSomeValuesFrom (topEdgeProperty ObjectUnionOf (ObjectNode Action) ))
    17. 17. Path Descriptions (Sequential Path Description) <ul><li>grUML+ GReQL </li></ul><ul><li>Simple concatenation of path descriptions </li></ul>forall i: V {Initial} @ exists v: V @ i -->--> v <ul><li>OWL </li></ul><ul><li>Nested ObjectSomeValuesFrom class expressions </li></ul>SubClassOf (Initial ObjectSomeValuesFrom (topEdgeProperty ObjectSomeValuesFrom (topEdgeProperty Vertex)) )
    18. 18. Path Descriptions (Exponentiated Path Description) <ul><li>grUML+ GReQL </li></ul><ul><li>Natural number to define exponents of path descriptions </li></ul>forall i: V {Initial} @ exists v: V @ i -->^2 v <ul><li>OWL </li></ul><ul><li>Nested ObjectSomeValuesFrom class expressions </li></ul>SubClassOf (Initial ObjectSomeValuesFrom (topEdgeProperty ObjectSomeValuesFrom (topEdgeProperty Vertex)) )
    19. 19. Path Descriptions (Optional Path Description) <ul><li>grUML+ GReQL </li></ul><ul><li>Marking a path as optional by surrounding it with brackets </li></ul>forall o: V {ObjectNode} @ exists v: V @ o --> [-->] v <ul><li>OWL </li></ul><ul><li>ObjectUnionOf expression to represent the optional path </li></ul>SubClassOf (Initial ObjectSomeValuesFrom (topEdgeProperty ObjectSomeValuesFrom (topEdgeProperty Vertex)))
    20. 20. Path Descriptions (Alternative Path Description) <ul><li>grUML+ GReQL </li></ul><ul><li>Marking a path as alternative by separating them with a pipe </li></ul>forall o:V{ObjectNode} @ exists v:V @ o --> &{Action} | --> &{ObjectNode} v <ul><li>OWL </li></ul><ul><li>ObjectUnionOf expression to represent alternative paths </li></ul>SubClassOf (ObjectNode ObjectUnionOf ( ObjectSomeValuesFrom (topEdgeProperty Action) ObjectSomeValuesFrom (topEdgeProperty ObjectNode) ))
    21. 21. Path Descriptions (Iterated Path Description) <ul><li>grUML+ GReQL </li></ul><ul><li>Use of Kleene operators * and + to define iterated path descriptions </li></ul>forall i:V{Initial} @ exists f:V{Final} @ i -->+ f <ul><li>OWL </li></ul><ul><li>Iterated path expressions realized by transitive object properties </li></ul>SubClassOf (Initial ObjectSomeValuesFrom ( transitiveTopEdgeProperty ObjectSomeValuesFrom (transitiveTopEdgeProperty Vertex)))
    22. 22. Reasoning (1) <ul><li>Reasoning on at least 2 layers (TBox/ABox) </li></ul><ul><li>Reasoning at schema layer </li></ul>forall f:V{Final} @ exists v:V @ (f --> v) and not (f --> v) SubClassOf (Final ObjectIntersectionOf ( ObjectSomeValuesFrom (topEdgeProperty Vertex) ObjectComplementOf ( ObjectSomeValuesFrom (topEdgeProperty Vertex))))  Final is unsatisfiable
    23. 23. Reasoning (2) <ul><li>Reasoning at instance- and schema layer </li></ul>Declaration (Individual(initial)) Declaration (Individual(object1)) Declaration (Individual(final)) ClassAssertion (initial Initial) ClassAssertion (final Final) ObjectPropertyAssertion (objectFlowProperty initial object1) ObjectPropertyAssertion (objectFlowProperty object1 final) EquivalentClasses (ObjectNode ObjectUnionOf ( ObjectSomeValuesFrom (objectFlowProperty Vertex) ObjectSomeValuesFrom ( InverseObjectProperty (objectFlowProperty) Vertex)))  object1 has type ObjectNode
    24. 24. Explanations <ul><li>Explanations of unsatisfiable classes </li></ul><ul><li>Explanations of inconsistent models/graphs </li></ul>SubClassOf (Final ObjectIntersectionOf ( ObjectSomeValuesFrom (topEdgeProperty Vertex) ObjectComplementOf ( ObjectSomeValuesFrom (topEdgeProperty Vertex)))) Explanation from TwoUse Toolkit --------------------------------------- Unsatisfiability of Final: Explanation: Final equivalentTo not topEdgeProperty some Vertex and topEdgeProperty some Vertex SubClassOf (Initial ObjectSomeValuesFrom ( transitiveTopEdgeProperty ObjectSomeValuesFrom (transitiveTopEdgeProperty Vertex))) Explanation from TwoUse Toolkit --------------------------------------- CHECK CONSISTENCY Consistent: No Explanation: receiveOrder type Action Action subClassOf ActivityNode ActivityNode equivalentTo transitiveTopEdgeProperty some Final
    25. 25. Open World Assumption <ul><li>Assumes incomplete information by default </li></ul><ul><li>Guidance and validation of incomplete models </li></ul>Query for possible model element types types after Send Invoice Possible replacement of control nodes by one single object flow
    26. 26. Conclusion <ul><li>Transformation bridge between Modelware and Ontoware </li></ul><ul><li>Intersection of modelware and ontoware </li></ul><ul><ul><li>Standard modeling constructs </li></ul></ul><ul><ul><li>Path Descriptions </li></ul></ul><ul><li>Differences </li></ul><ul><ul><li>Reasoning technologies of OWL </li></ul></ul><ul><ul><li>Simplicity and Efficiency of TGraphs </li></ul></ul>

    ×