]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.selection/graph/DiagramElementSelection.pgraph
Implementation of non-UI parts of network element queries
[simantics/district.git] / org.simantics.district.selection / graph / DiagramElementSelection.pgraph
diff --git a/org.simantics.district.selection/graph/DiagramElementSelection.pgraph b/org.simantics.district.selection/graph/DiagramElementSelection.pgraph
new file mode 100644 (file)
index 0000000..5a51086
--- /dev/null
@@ -0,0 +1,72 @@
+L0 = <http://www.simantics.org/Layer0-1.1>
+DIA = <http://www.simantics.org/Diagram-2.2>
+DNR = <http://www.simantics.org/DistrictNetworkRoutes-1.0>
+REG = <http://www.simantics.org/DistrictDiagramRegions-1.0>
+
+ES = <http://www.simantics.org/ElementSelection-1.0> : L0.Ontology
+    @L0.new
+    L0.Ontology.global true
+    L0.HasResourceClass "org.simantics.district.selection.ElementSelectionResource"
+
+ES.Selection <T L0.Entity
+    >-- ES.Selection.HasGenerator --> ES.Generator <R L0.HasProperty : L0.FunctionalRelation
+    >-- ES.Selection.HasCondition --> ES.Condition <R L0.HasProperty : L0.FunctionalRelation
+    >-- ES.Selection.HasSelector --> ES.Selector <R L0.HasProperty : L0.FunctionalRelation
+    @L0.singleProperty ES.Selection.HasGenerator
+    @L0.singleProperty ES.Selection.HasCondition
+    @L0.singleProperty ES.Selection.HasSelector
+
+ES.Generator <T L0.Entity
+ES.Condition <T L0.Entity
+ES.Selector <T L0.Entity
+
+ES.Generator.Explicit <T ES.Generator
+   >-- ES.Generator.HasSelectedElement --> DIA.Element <R L0.HasProperty : L0.Relation
+   @L0.property ES.Generator.HasSelectedElement
+   
+ES.Generator.Model <T ES.Generator
+ES.Generator.Diagram <T ES.Generator
+    >-- ES.Generator.HasDiagram --> DIA.Diagram <R L0.HasProperty : L0.Relation
+    @L0.property ES.Generator.HasDiagram
+
+ES.Selector.All <T ES.Selector
+
+ES.PropertySelector <T ES.Selector
+    >-- ES.PropertySelector.HasSelectionPropertyName --> L0.String <R L0.HasProperty : L0.TotalFunction
+    >-- ES.PropertySelector.HasResultCount --> L0.Integer <R L0.HasProperty : L0.FunctionalRelation
+    @L0.singleProperty ES.PropertySelector.HasSelectionPropertyName
+    @L0.singleProperty ES.PropertySelector.HasResultCount
+
+ES.Selector.NLowest <T ES.PropertySelector
+ES.Selector.NHighest <T ES.PropertySelector
+
+ES.Condition
+    >-- ES.Condition.IsInverse --> ES.Condition <R L0.HasProperty : L0.Tag
+
+ES.AggregateCondition <T ES.Condition
+   >-- ES.HasSubcondition --> ES.Selector <R L0.IsComposedOf : L0.Relation
+   @L0.property ES.HasSubcondition
+   
+// Logical and
+ES.Conjunction <T ES.AggregateCondition
+// Logical or
+ES.Disjunction <T ES.AggregateCondition
+// Logical nor
+ES.Negation <T ES.AggregateCondition
+
+ES.ElementaryCondition <T ES.Condition
+
+ES.PropertyCondition <T ES.ElementaryCondition
+    >-- ES.PropertyCondition.HasPropertyName --> L0.String <R L0.HasProperty : L0.TotalFunction
+    >-- ES.PropertyCondition.HasLowerLimit --> L0.Double <R L0.HasProperty : L0.FunctionalRelation
+    >-- ES.PropertyCondition.HasUpperLimit --> L0.Double <R L0.HasProperty : L0.FunctionalRelation
+    @L0.singleProperty ES.PropertyCondition.HasPropertyName
+    @L0.optionalProperty ES.PropertyCondition.HasLowerLimit
+    @L0.optionalProperty ES.PropertyCondition.HasUpperLimit
+
+ES.RouteCondition <T ES.ElementaryCondition
+    >-- ES.RouteCondition.HasRoute --> DNR.Route <R L0.HasProperty : L0.TotalFunction
+    @L0.singleProperty ES.RouteCondition.HasRoute
+ES.RegionCondition <T ES.ElementaryCondition
+    >-- ES.RegionCondition.HasRegion --> REG.Region <R L0.HasProperty : L0.TotalFunction
+    @L0.singleProperty ES.RouteCondition.HasRoute