activefacts-examples 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +10 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +22 -0
  8. data/Rakefile +6 -0
  9. data/activefacts-examples.gemspec +26 -0
  10. data/cql/Address.cql +44 -0
  11. data/cql/Astronomy.cql +35 -0
  12. data/cql/Blog.cql +54 -0
  13. data/cql/CinemaBookings.cql +64 -0
  14. data/cql/CinemaTickets.cql +127 -0
  15. data/cql/CompanyDirectorEmployee.cql +56 -0
  16. data/cql/Death.cql +17 -0
  17. data/cql/Diplomacy.cql +48 -0
  18. data/cql/Genealogy.cql +98 -0
  19. data/cql/Health.cql +78 -0
  20. data/cql/Insurance.cql +320 -0
  21. data/cql/Marriage.cql +18 -0
  22. data/cql/Metamodel.cql +567 -0
  23. data/cql/Monogamy.cql +24 -0
  24. data/cql/MultiInheritance.cql +22 -0
  25. data/cql/MultipleSubtyping.cql +30 -0
  26. data/cql/NonRoleId.cql +14 -0
  27. data/cql/OddIdentifier.cql +18 -0
  28. data/cql/OilSupply.cql +53 -0
  29. data/cql/OneRoleNesting.cql +38 -0
  30. data/cql/OneToOnes.cql +17 -0
  31. data/cql/Orienteering.cql +111 -0
  32. data/cql/PartyModel.cql +38 -0
  33. data/cql/PersonPlaysGame.cql +18 -0
  34. data/cql/RedundantDependency.cql +34 -0
  35. data/cql/SchoolActivities.cql +33 -0
  36. data/cql/SeparateSubtype.cql +30 -0
  37. data/cql/ServiceDirector.cql +276 -0
  38. data/cql/SimplestUnary.cql +12 -0
  39. data/cql/Supervision.cql +34 -0
  40. data/cql/VenueSeating.cql +45 -0
  41. data/cql/WaiterTips.cql +33 -0
  42. data/cql/Warehousing.cql +101 -0
  43. data/cql/WindowInRoomInBldg.cql +28 -0
  44. data/cql/unit.cql +474 -0
  45. data/diagrams/json/Address.json +41 -0
  46. data/diagrams/json/Astronomy.json +31 -0
  47. data/diagrams/json/Blog.json +46 -0
  48. data/diagrams/json/CinemaBookings.json +53 -0
  49. data/diagrams/json/CinemaTickets.json +101 -0
  50. data/diagrams/json/CompanyDirectorEmployee.json +44 -0
  51. data/diagrams/json/Death.json +20 -0
  52. data/diagrams/json/Diplomacy.json +34 -0
  53. data/diagrams/json/Genealogy.json +78 -0
  54. data/diagrams/json/Insurance.json +259 -0
  55. data/diagrams/json/Marriage.json +21 -0
  56. data/diagrams/json/Metamodel.json +318 -0
  57. data/diagrams/json/Monogamy.json +22 -0
  58. data/diagrams/json/MultiInheritance.json +25 -0
  59. data/diagrams/json/MultipleSubtyping.json +22 -0
  60. data/diagrams/json/OilSupply.json +49 -0
  61. data/diagrams/json/OneRoleNesting.json +37 -0
  62. data/diagrams/json/Orienteering.json +94 -0
  63. data/diagrams/json/PersonPlaysGame.json +22 -0
  64. data/diagrams/json/RedundantDependency.json +33 -0
  65. data/diagrams/json/SchoolActivities.json +28 -0
  66. data/diagrams/json/SeparateSubtype.json +29 -0
  67. data/diagrams/json/SimplestUnary.json +15 -0
  68. data/diagrams/json/Supervision.json +27 -0
  69. data/diagrams/json/VenueSeating.json +40 -0
  70. data/diagrams/json/WaiterTips.json +29 -0
  71. data/diagrams/json/Warehousing.json +86 -0
  72. data/diagrams/json/WindowInRoomInBldg.json +31 -0
  73. data/images/Address.SQL.png +0 -0
  74. data/images/Address.png +0 -0
  75. data/images/Blog.png +0 -0
  76. data/images/CinemaBookings.png +0 -0
  77. data/images/CinemaTickets.png +0 -0
  78. data/images/CompanyDirectorEmployee.png +0 -0
  79. data/images/Death.png +0 -0
  80. data/images/Diplomacy.png +0 -0
  81. data/images/DumpMetamodel.bat +2 -0
  82. data/images/Genealogy.png +0 -0
  83. data/images/Insurance/Claim.png +0 -0
  84. data/images/Insurance/Insurance.png +0 -0
  85. data/images/Insurance/Person.png +0 -0
  86. data/images/Insurance/Policy.png +0 -0
  87. data/images/Insurance/Related.png +0 -0
  88. data/images/Insurance/VehicleIncident.png +0 -0
  89. data/images/Marriage.png +0 -0
  90. data/images/Metamodel/Concepts.png +0 -0
  91. data/images/Metamodel/Constraints.png +0 -0
  92. data/images/Metamodel/ContextNote.png +0 -0
  93. data/images/Metamodel/Diagrams.png +0 -0
  94. data/images/Metamodel/Language.png +0 -0
  95. data/images/Metamodel/Legacy.png +0 -0
  96. data/images/Metamodel/Objects.png +0 -0
  97. data/images/Metamodel/Populations.png +0 -0
  98. data/images/Metamodel/Query.png +0 -0
  99. data/images/Metamodel/Units.png +0 -0
  100. data/images/Metamodel/ValueConstraints.png +0 -0
  101. data/images/Metamodel/ValueTypes.png +0 -0
  102. data/images/MetamodelER.bcp +1 -0
  103. data/images/MetamodelER.pdf +0 -0
  104. data/images/MultiInheritance.png +0 -0
  105. data/images/NorthwindER.png +0 -0
  106. data/images/OilSupply.png +0 -0
  107. data/images/Orienteering/Administration.png +0 -0
  108. data/images/Orienteering/Registration.png +0 -0
  109. data/images/Orienteering/Scoring.png +0 -0
  110. data/images/PersonPlaysGame.png +0 -0
  111. data/images/RedundantDependency.png +0 -0
  112. data/images/SchoolActivities.png +0 -0
  113. data/images/SeparateSubtype.png +0 -0
  114. data/images/SimplestUnary.png +0 -0
  115. data/images/Supervision.png +0 -0
  116. data/images/VenueSeating.png +0 -0
  117. data/images/WaiterTips.png +0 -0
  118. data/images/Warehousing.png +0 -0
  119. data/images/WindowInRoomInBldg.png +0 -0
  120. data/metadata/json/Astronomy.json +175 -0
  121. data/metadata/json/CinemaBookings.json +354 -0
  122. data/metadata/json/CinemaTickets.json +768 -0
  123. data/metadata/json/CompanyDirectorEmployee.json +270 -0
  124. data/metadata/json/Diplomacy.json +186 -0
  125. data/metadata/json/Metamodel.json +3214 -0
  126. data/metadata/json/OilSupply.json +411 -0
  127. data/metadata/json/SeparateSubtype.json +157 -0
  128. data/metadata/json/Supervision.json +128 -0
  129. data/metadata/json/VenueSeating.json +209 -0
  130. data/orm/.gitignore +11 -0
  131. data/orm/Address.orm +1268 -0
  132. data/orm/Astronomy.orm +925 -0
  133. data/orm/Blog.orm +1711 -0
  134. data/orm/CinemaBookings.orm +1998 -0
  135. data/orm/CinemaTickets.orm +5060 -0
  136. data/orm/CompanyDirectorEmployee.orm +2094 -0
  137. data/orm/Death.orm +386 -0
  138. data/orm/Diplomacy.orm +1478 -0
  139. data/orm/ExampleModels2010.csproj +764 -0
  140. data/orm/ExampleModels2010.sln +16 -0
  141. data/orm/Genealogy.orm +3209 -0
  142. data/orm/Health.orm +2407 -0
  143. data/orm/Insurance.orm +12727 -0
  144. data/orm/Marriage.orm +493 -0
  145. data/orm/Metamodel.orm +20998 -0
  146. data/orm/Monogamy.orm +328 -0
  147. data/orm/MultiInheritance.orm +537 -0
  148. data/orm/MultipleSubtyping.orm +347 -0
  149. data/orm/OilSupply.orm +2533 -0
  150. data/orm/OneRoleNesting.orm +1237 -0
  151. data/orm/Orienteering.orm +3976 -0
  152. data/orm/PersonPlaysGame.orm +426 -0
  153. data/orm/RedundantDependency.orm +844 -0
  154. data/orm/SchoolActivities.orm +961 -0
  155. data/orm/SeparateSubtype.orm +821 -0
  156. data/orm/SimplestUnary.orm +172 -0
  157. data/orm/Supervision.orm +734 -0
  158. data/orm/VenueSeating.orm +1289 -0
  159. data/orm/WaiterTips.orm +789 -0
  160. data/orm/Warehousing.orm +3792 -0
  161. data/orm/WindowInRoomInBldg.orm +772 -0
  162. data/rails/models/Astronomy.models +17 -0
  163. data/rails/models/CinemaBookings.models +123 -0
  164. data/rails/models/CinemaTickets.models +192 -0
  165. data/rails/models/Diplomacy.models +126 -0
  166. data/rails/models/Metamodel.models +894 -0
  167. data/rails/models/OneRoleNesting.models +18 -0
  168. data/rails/models/SeparateSubtype.models +49 -0
  169. data/rails/models/VenueSeating.models +70 -0
  170. data/rails/schema/Astronomy.schema.rb +25 -0
  171. data/rails/schema/CinemaBookings.schema.rb +78 -0
  172. data/rails/schema/CinemaTickets.schema.rb +132 -0
  173. data/rails/schema/Diplomacy.schema.rb +74 -0
  174. data/rails/schema/Metamodel.schema.rb +538 -0
  175. data/rails/schema/OneRoleNesting.rb +20 -0
  176. data/rails/schema/SeparateSubtype.schema.rb +35 -0
  177. data/rails/schema/VenueSeating.schema.rb +46 -0
  178. data/rails/schema/Warehousing.schema.rb +145 -0
  179. data/ruby/Address.rb +68 -0
  180. data/ruby/Astronomy.rb +55 -0
  181. data/ruby/Blog.rb +84 -0
  182. data/ruby/CinemaBookings.rb +109 -0
  183. data/ruby/CinemaTickets.rb +218 -0
  184. data/ruby/CompanyDirectorEmployee.rb +73 -0
  185. data/ruby/Death.rb +26 -0
  186. data/ruby/Diplomacy.rb +59 -0
  187. data/ruby/Genealogy.rb +173 -0
  188. data/ruby/Insurance.rb +562 -0
  189. data/ruby/Marriage.rb +21 -0
  190. data/ruby/Metamodel.rb +621 -0
  191. data/ruby/Monogamy.rb +27 -0
  192. data/ruby/MultiInheritance.rb +38 -0
  193. data/ruby/OilSupply.rb +112 -0
  194. data/ruby/OneRoleNesting.rb +66 -0
  195. data/ruby/Orienteering.rb +216 -0
  196. data/ruby/PersonPlaysGame.rb +31 -0
  197. data/ruby/RedundantDependency.rb +53 -0
  198. data/ruby/SchoolActivities.rb +49 -0
  199. data/ruby/SeparateSubtype.rb +46 -0
  200. data/ruby/SimplestUnary.rb +10 -0
  201. data/ruby/Supervision.rb +33 -0
  202. data/ruby/TwoValues.rb +14 -0
  203. data/ruby/VenueSeating.rb +64 -0
  204. data/ruby/WaiterTips.rb +49 -0
  205. data/ruby/Warehousing.rb +167 -0
  206. data/ruby/WindowInRoomInBldg.rb +45 -0
  207. data/sql/server/Address.sql +40 -0
  208. data/sql/server/Astronomy.sql +36 -0
  209. data/sql/server/Blog.sql +78 -0
  210. data/sql/server/CinemaBookings.sql +95 -0
  211. data/sql/server/CinemaTickets.sql +191 -0
  212. data/sql/server/CompanyDirectorEmployee.sql +104 -0
  213. data/sql/server/Death.sql +11 -0
  214. data/sql/server/Diplomacy.sql +66 -0
  215. data/sql/server/Genealogy.sql +138 -0
  216. data/sql/server/Health.sql +169 -0
  217. data/sql/server/Insurance.sql +484 -0
  218. data/sql/server/Marriage.sql +30 -0
  219. data/sql/server/Metamodel.sql +1000 -0
  220. data/sql/server/Monogamy.sql +20 -0
  221. data/sql/server/MultiInheritance.sql +27 -0
  222. data/sql/server/OilSupply.sql +105 -0
  223. data/sql/server/OneRoleNesting.sql +29 -0
  224. data/sql/server/Orienteering.sql +186 -0
  225. data/sql/server/PersonPlaysGame.sql +9 -0
  226. data/sql/server/RedundantDependency.sql +54 -0
  227. data/sql/server/SchoolActivities.sql +30 -0
  228. data/sql/server/SeparateSubtype.sql +33 -0
  229. data/sql/server/SimplestUnary.sql +9 -0
  230. data/sql/server/Supervision.sql +30 -0
  231. data/sql/server/VenueSeating.sql +54 -0
  232. data/sql/server/WaiterTips.sql +31 -0
  233. data/sql/server/Warehousing.sql +203 -0
  234. data/sql/server/WindowInRoomInBldg.sql +13 -0
  235. data/transform/surrogate/Address.absorption +2 -0
  236. data/transform/surrogate/Blog.absorption +5 -0
  237. data/transform/surrogate/CinemaBookings.absorption +7 -0
  238. data/transform/surrogate/CompanyDirectorEmployee.absorption +7 -0
  239. data/transform/surrogate/Death.absorption +1 -0
  240. data/transform/surrogate/Diplomacy-revised.absorption +6 -0
  241. data/transform/surrogate/Diplomacy.absorption +6 -0
  242. data/transform/surrogate/Genealogy.absorption +8 -0
  243. data/transform/surrogate/Insurance.absorption +18 -0
  244. data/transform/surrogate/Marriage.absorption +2 -0
  245. data/transform/surrogate/Metamodel.absorption +25 -0
  246. data/transform/surrogate/Monogamy.absorption +1 -0
  247. data/transform/surrogate/MultiInheritance.absorption +1 -0
  248. data/transform/surrogate/MultipleSubtyping.absorption +1 -0
  249. data/transform/surrogate/OilSupply.absorption +8 -0
  250. data/transform/surrogate/OneRoleNesting.absorption +1 -0
  251. data/transform/surrogate/Orienteering.absorption +11 -0
  252. data/transform/surrogate/PersonPlaysGame.absorption +1 -0
  253. data/transform/surrogate/RedundantDependency.absorption +3 -0
  254. data/transform/surrogate/SchoolActivities.absorption +3 -0
  255. data/transform/surrogate/SeparateSubtype.absorption +3 -0
  256. data/transform/surrogate/SimplestUnary.absorption +1 -0
  257. data/transform/surrogate/Supervision.absorption +2 -0
  258. data/transform/surrogate/WaiterTips.absorption +3 -0
  259. data/transform/surrogate/Warehousing.absorption +12 -0
  260. data/transform/surrogate/WindowInRoomInBldg.absorption +1 -0
  261. data/transform/surrogate/unit.absorption +0 -0
  262. metadata +374 -0
@@ -0,0 +1,772 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ormRoot:ORM2 xmlns:orm="http://schemas.neumont.edu/ORM/2006-04/ORMCore" xmlns:ormDiagram="http://schemas.neumont.edu/ORM/2006-04/ORMDiagram" xmlns:oial="http://schemas.neumont.edu/ORM/Abstraction/2007-06/Core" xmlns:odt="http://schemas.neumont.edu/ORM/Abstraction/2007-06/DataTypes/Core" xmlns:rcd="http://schemas.neumont.edu/ORM/Relational/2007-06/ConceptualDatabase" xmlns:ddt="http://schemas.orm.net/DIL/DILDT" xmlns:ormtooial="http://schemas.neumont.edu/ORM/Bridge/2007-06/ORMToORMAbstraction" xmlns:oialtocdb="http://schemas.neumont.edu/ORM/Bridge/2007-06/ORMAbstractionToConceptualDatabase" xmlns:ormRoot="http://schemas.neumont.edu/ORM/2006-04/ORMRoot">
3
+ <orm:ORMModel id="_08145487-9E0C-4768-87D5-E30B6ED1724A" Name="WindowInRoomInBldg">
4
+ <orm:Objects>
5
+ <orm:EntityType id="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" Name="Room" _ReferenceMode="">
6
+ <orm:PlayedRoles>
7
+ <orm:Role ref="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" />
8
+ <orm:Role ref="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" />
9
+ <orm:Role ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" />
10
+ </orm:PlayedRoles>
11
+ <orm:PreferredIdentifier ref="_057FD720-E6AE-42AB-8CC2-E693A6E87E20" />
12
+ </orm:EntityType>
13
+ <orm:EntityType id="_4BA52554-2D27-40EE-89DD-6119A70901F0" Name="Building" _ReferenceMode="Building Number">
14
+ <orm:PlayedRoles>
15
+ <orm:Role ref="_76BF00AD-1258-4E99-9F18-14B154958DFA" />
16
+ <orm:Role ref="_EC0E4AB5-D701-436B-BB2B-90216182A013" />
17
+ </orm:PlayedRoles>
18
+ <orm:PreferredIdentifier ref="_B5F57753-0D42-4E74-A73E-432D52777FF0" />
19
+ </orm:EntityType>
20
+ <orm:ValueType id="_A3D48C97-BE8A-4ABB-B838-1E4F3CBBB0B0" Name="Room Number">
21
+ <orm:PlayedRoles>
22
+ <orm:Role ref="_DCA03ACD-83DC-4094-B5DD-AE32904F0B4E" />
23
+ </orm:PlayedRoles>
24
+ <orm:ConceptualDataType id="_D9621489-0026-458B-982F-9D567E7210F4" ref="_DECB0EB7-C0D8-4FF0-8359-65FF6C389DF1" Scale="0" Length="0" />
25
+ </orm:ValueType>
26
+ <orm:EntityType id="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" Name="Window" _ReferenceMode="">
27
+ <orm:PlayedRoles>
28
+ <orm:Role ref="_4DE7971E-8B9D-4902-BA59-F296CF81E094" />
29
+ <orm:Role ref="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" />
30
+ </orm:PlayedRoles>
31
+ <orm:PreferredIdentifier ref="_E598BB82-D5CB-4895-924C-1DE920CD4347" />
32
+ </orm:EntityType>
33
+ <orm:ValueType id="_7AE7F197-26CE-445F-A75F-56279656C670" Name="Wall Number">
34
+ <orm:PlayedRoles>
35
+ <orm:Role ref="_C917814F-9BAC-452B-8BF4-97E617760D20" />
36
+ </orm:PlayedRoles>
37
+ <orm:ConceptualDataType id="_2FD1FBB3-E477-435A-AE6C-33E9A7E62F8C" ref="_DECB0EB7-C0D8-4FF0-8359-65FF6C389DF1" Scale="0" Length="0" />
38
+ </orm:ValueType>
39
+ <orm:ValueType id="_48FD2F08-AECF-4A1A-99BB-85454F67252C" Name="Window Number">
40
+ <orm:PlayedRoles>
41
+ <orm:Role ref="_C332D662-7296-4B7A-8EE3-200348B885BE" />
42
+ </orm:PlayedRoles>
43
+ <orm:ConceptualDataType id="_53D24B71-A9B0-4EC3-AE3B-0973DF8652F0" ref="_4552A488-5AB1-4D21-9463-16E8DD7ADE20" Scale="0" Length="0" />
44
+ </orm:ValueType>
45
+ <orm:ValueType id="_244934BF-7049-4B4E-84EE-398E327E4419" Name="Building Number">
46
+ <orm:PlayedRoles>
47
+ <orm:Role ref="_9CD1A01B-FD35-4C40-8AB9-64C04402153C" />
48
+ </orm:PlayedRoles>
49
+ <orm:ConceptualDataType id="_ECB7F5F7-B2AA-46AC-AB6F-8EE576AF44EB" ref="_DECB0EB7-C0D8-4FF0-8359-65FF6C389DF1" Scale="0" Length="0" />
50
+ </orm:ValueType>
51
+ <orm:EntityType id="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" Name="Wall" _ReferenceMode="">
52
+ <orm:PlayedRoles>
53
+ <orm:Role ref="_A597A805-0EF8-4525-8283-AAF4E22A8A13" />
54
+ <orm:Role ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" />
55
+ <orm:Role ref="_9E03EBD9-FF70-4ECE-9F11-29BB06F9E6BD" />
56
+ </orm:PlayedRoles>
57
+ <orm:PreferredIdentifier ref="_4E78EF49-3805-4BBC-A5E8-5A9FB2FDABD7" />
58
+ </orm:EntityType>
59
+ </orm:Objects>
60
+ <orm:Facts>
61
+ <orm:Fact id="_5A4A3EF5-A8B9-47E6-933B-B1456C53E46C" _Name="RoomIsInBuilding">
62
+ <orm:FactRoles>
63
+ <orm:Role id="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" _IsMandatory="true" _Multiplicity="ZeroToMany" Name="">
64
+ <orm:RolePlayer ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
65
+ </orm:Role>
66
+ <orm:Role id="_76BF00AD-1258-4E99-9F18-14B154958DFA" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
67
+ <orm:RolePlayer ref="_4BA52554-2D27-40EE-89DD-6119A70901F0" />
68
+ </orm:Role>
69
+ </orm:FactRoles>
70
+ <orm:ReadingOrders>
71
+ <orm:ReadingOrder id="_45F6F4E6-C328-4B46-9E1F-21723FDA364D">
72
+ <orm:Readings>
73
+ <orm:Reading id="_0931E5EA-027F-4EC4-90F7-D3EDFDDB405D">
74
+ <orm:Data>{0} is in {1}</orm:Data>
75
+ <orm:ExpandedData>
76
+ <orm:RoleText RoleIndex="0" FollowingText=" is in " />
77
+ </orm:ExpandedData>
78
+ </orm:Reading>
79
+ </orm:Readings>
80
+ <orm:RoleSequence>
81
+ <orm:Role ref="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" />
82
+ <orm:Role ref="_76BF00AD-1258-4E99-9F18-14B154958DFA" />
83
+ </orm:RoleSequence>
84
+ </orm:ReadingOrder>
85
+ </orm:ReadingOrders>
86
+ <orm:InternalConstraints>
87
+ <orm:UniquenessConstraint ref="_5E4F86F8-4B87-4156-B9A8-862AB90ED710" />
88
+ <orm:MandatoryConstraint ref="_5D6DF5BC-3586-44D8-A63B-3EED4CF26A51" />
89
+ </orm:InternalConstraints>
90
+ </orm:Fact>
91
+ <orm:Fact id="_0C83CF91-AE33-4EC2-B943-192F4A9A5B5C" _Name="RoomHasRoomNumber">
92
+ <orm:FactRoles>
93
+ <orm:Role id="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" _IsMandatory="true" _Multiplicity="ZeroToMany" Name="">
94
+ <orm:RolePlayer ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
95
+ </orm:Role>
96
+ <orm:Role id="_DCA03ACD-83DC-4094-B5DD-AE32904F0B4E" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
97
+ <orm:RolePlayer ref="_A3D48C97-BE8A-4ABB-B838-1E4F3CBBB0B0" />
98
+ </orm:Role>
99
+ </orm:FactRoles>
100
+ <orm:ReadingOrders>
101
+ <orm:ReadingOrder id="_24A71DDF-6F4D-44DB-AB5B-1C391C6356A4">
102
+ <orm:Readings>
103
+ <orm:Reading id="_65E79F67-A41D-42AF-A131-D59C9A0F2ADF">
104
+ <orm:Data>{0} has {1}</orm:Data>
105
+ <orm:ExpandedData>
106
+ <orm:RoleText RoleIndex="0" FollowingText=" has " />
107
+ </orm:ExpandedData>
108
+ </orm:Reading>
109
+ </orm:Readings>
110
+ <orm:RoleSequence>
111
+ <orm:Role ref="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" />
112
+ <orm:Role ref="_DCA03ACD-83DC-4094-B5DD-AE32904F0B4E" />
113
+ </orm:RoleSequence>
114
+ </orm:ReadingOrder>
115
+ </orm:ReadingOrders>
116
+ <orm:InternalConstraints>
117
+ <orm:UniquenessConstraint ref="_D9831493-D4E8-445F-AFB4-BAD5FEC2E87C" />
118
+ <orm:MandatoryConstraint ref="_5DB32560-C73F-4F0D-A8B6-01B6C97409FC" />
119
+ </orm:InternalConstraints>
120
+ </orm:Fact>
121
+ <orm:Fact id="_86AC5057-5610-405B-99FB-63A249E548F5" _Name="WindowIsLocatedInWall">
122
+ <orm:FactRoles>
123
+ <orm:Role id="_4DE7971E-8B9D-4902-BA59-F296CF81E094" _IsMandatory="true" _Multiplicity="ZeroToMany" Name="">
124
+ <orm:RolePlayer ref="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" />
125
+ </orm:Role>
126
+ <orm:Role id="_9E03EBD9-FF70-4ECE-9F11-29BB06F9E6BD" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
127
+ <orm:RolePlayer ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
128
+ </orm:Role>
129
+ </orm:FactRoles>
130
+ <orm:ReadingOrders>
131
+ <orm:ReadingOrder id="_4C30DB6C-7336-45FC-9AFD-DF34ED61D56E">
132
+ <orm:Readings>
133
+ <orm:Reading id="_DA7B8E14-888A-4763-8327-681C3A2FDCA2">
134
+ <orm:Data>{0} is located in {1}</orm:Data>
135
+ <orm:ExpandedData>
136
+ <orm:RoleText RoleIndex="0" FollowingText=" is located in " />
137
+ </orm:ExpandedData>
138
+ </orm:Reading>
139
+ </orm:Readings>
140
+ <orm:RoleSequence>
141
+ <orm:Role ref="_4DE7971E-8B9D-4902-BA59-F296CF81E094" />
142
+ <orm:Role ref="_9E03EBD9-FF70-4ECE-9F11-29BB06F9E6BD" />
143
+ </orm:RoleSequence>
144
+ </orm:ReadingOrder>
145
+ </orm:ReadingOrders>
146
+ <orm:InternalConstraints>
147
+ <orm:UniquenessConstraint ref="_E8637337-A8C6-46C9-A475-EA16A48C9ED5" />
148
+ <orm:MandatoryConstraint ref="_965FD7C8-9978-4A46-ABE1-2E8EEB66E291" />
149
+ </orm:InternalConstraints>
150
+ </orm:Fact>
151
+ <orm:Fact id="_F72A9E34-B0B6-48E9-B3B1-E1AC4DFA57A8" _Name="WindowHasWindowNumber">
152
+ <orm:FactRoles>
153
+ <orm:Role id="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" _IsMandatory="true" _Multiplicity="ZeroToMany" Name="">
154
+ <orm:RolePlayer ref="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" />
155
+ </orm:Role>
156
+ <orm:Role id="_C332D662-7296-4B7A-8EE3-200348B885BE" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
157
+ <orm:RolePlayer ref="_48FD2F08-AECF-4A1A-99BB-85454F67252C" />
158
+ </orm:Role>
159
+ </orm:FactRoles>
160
+ <orm:ReadingOrders>
161
+ <orm:ReadingOrder id="_B2B0EEA3-3D86-47D5-9524-B7CE04AFAF8E">
162
+ <orm:Readings>
163
+ <orm:Reading id="_7C08F392-BBEE-4EE6-AF57-2E227261679A">
164
+ <orm:Data>{0} has {1}</orm:Data>
165
+ <orm:ExpandedData>
166
+ <orm:RoleText RoleIndex="0" FollowingText=" has " />
167
+ </orm:ExpandedData>
168
+ </orm:Reading>
169
+ </orm:Readings>
170
+ <orm:RoleSequence>
171
+ <orm:Role ref="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" />
172
+ <orm:Role ref="_C332D662-7296-4B7A-8EE3-200348B885BE" />
173
+ </orm:RoleSequence>
174
+ </orm:ReadingOrder>
175
+ </orm:ReadingOrders>
176
+ <orm:InternalConstraints>
177
+ <orm:UniquenessConstraint ref="_7AE54F45-CE1B-41FA-A38C-5FBF72B830AD" />
178
+ <orm:MandatoryConstraint ref="_C5A5724D-9F76-497D-80A3-241DACCDF1BC" />
179
+ </orm:InternalConstraints>
180
+ </orm:Fact>
181
+ <orm:Fact id="_576087B5-0949-45B5-A187-FE04BAA05B8C" _Name="BuildingHasBuildingNumber">
182
+ <orm:FactRoles>
183
+ <orm:Role id="_EC0E4AB5-D701-436B-BB2B-90216182A013" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
184
+ <orm:RolePlayer ref="_4BA52554-2D27-40EE-89DD-6119A70901F0" />
185
+ </orm:Role>
186
+ <orm:Role id="_9CD1A01B-FD35-4C40-8AB9-64C04402153C" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
187
+ <orm:RolePlayer ref="_244934BF-7049-4B4E-84EE-398E327E4419" />
188
+ </orm:Role>
189
+ </orm:FactRoles>
190
+ <orm:ReadingOrders>
191
+ <orm:ReadingOrder id="_04E33A6A-9240-4A0E-B9E6-F7B48E2800CD">
192
+ <orm:Readings>
193
+ <orm:Reading id="_D4C5BDCC-5849-49DB-960F-5D6E6CC721E6">
194
+ <orm:Data>{0} has {1}</orm:Data>
195
+ <orm:ExpandedData>
196
+ <orm:RoleText RoleIndex="0" FollowingText=" has " />
197
+ </orm:ExpandedData>
198
+ </orm:Reading>
199
+ </orm:Readings>
200
+ <orm:RoleSequence>
201
+ <orm:Role ref="_EC0E4AB5-D701-436B-BB2B-90216182A013" />
202
+ <orm:Role ref="_9CD1A01B-FD35-4C40-8AB9-64C04402153C" />
203
+ </orm:RoleSequence>
204
+ </orm:ReadingOrder>
205
+ <orm:ReadingOrder id="_3C11F6E1-9121-481D-8794-9ED0357E7889">
206
+ <orm:Readings>
207
+ <orm:Reading id="_7739E80E-8AD9-4082-B5BA-18116C4C64E1">
208
+ <orm:Data>{0} is of {1}</orm:Data>
209
+ <orm:ExpandedData>
210
+ <orm:RoleText RoleIndex="0" FollowingText=" is of " />
211
+ </orm:ExpandedData>
212
+ </orm:Reading>
213
+ </orm:Readings>
214
+ <orm:RoleSequence>
215
+ <orm:Role ref="_9CD1A01B-FD35-4C40-8AB9-64C04402153C" />
216
+ <orm:Role ref="_EC0E4AB5-D701-436B-BB2B-90216182A013" />
217
+ </orm:RoleSequence>
218
+ </orm:ReadingOrder>
219
+ </orm:ReadingOrders>
220
+ <orm:InternalConstraints>
221
+ <orm:UniquenessConstraint ref="_B5F57753-0D42-4E74-A73E-432D52777FF0" />
222
+ <orm:UniquenessConstraint ref="_E416C377-0024-463B-8006-F699BE1600E9" />
223
+ <orm:MandatoryConstraint ref="_30CF1A07-FE6C-4FE5-87F1-A3DF4502E915" />
224
+ </orm:InternalConstraints>
225
+ </orm:Fact>
226
+ <orm:Fact id="_F836B778-9C80-4879-99E9-3264E8DDBCA7" _Name="WallHasWallNumber">
227
+ <orm:FactRoles>
228
+ <orm:Role id="_A597A805-0EF8-4525-8283-AAF4E22A8A13" _IsMandatory="true" _Multiplicity="ZeroToMany" Name="">
229
+ <orm:RolePlayer ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
230
+ </orm:Role>
231
+ <orm:Role id="_C917814F-9BAC-452B-8BF4-97E617760D20" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
232
+ <orm:RolePlayer ref="_7AE7F197-26CE-445F-A75F-56279656C670" />
233
+ </orm:Role>
234
+ </orm:FactRoles>
235
+ <orm:ReadingOrders>
236
+ <orm:ReadingOrder id="_7CB64CBB-7640-464C-B65D-8D9235F3E053">
237
+ <orm:Readings>
238
+ <orm:Reading id="_BFD38A6B-AEA9-4320-9823-56EECA6489A9">
239
+ <orm:Data>{0} has {1}</orm:Data>
240
+ <orm:ExpandedData>
241
+ <orm:RoleText RoleIndex="0" FollowingText=" has " />
242
+ </orm:ExpandedData>
243
+ </orm:Reading>
244
+ </orm:Readings>
245
+ <orm:RoleSequence>
246
+ <orm:Role ref="_A597A805-0EF8-4525-8283-AAF4E22A8A13" />
247
+ <orm:Role ref="_C917814F-9BAC-452B-8BF4-97E617760D20" />
248
+ </orm:RoleSequence>
249
+ </orm:ReadingOrder>
250
+ </orm:ReadingOrders>
251
+ <orm:InternalConstraints>
252
+ <orm:UniquenessConstraint ref="_DB10AE58-4FF4-43D5-9929-ADD481DE34EA" />
253
+ <orm:MandatoryConstraint ref="_5B28A95B-31AE-408B-B93F-FA8319D29F7E" />
254
+ </orm:InternalConstraints>
255
+ </orm:Fact>
256
+ <orm:Fact id="_F772EE19-2E49-4C43-9123-17CAF44FE2F2" _Name="WallIsInRoom">
257
+ <orm:FactRoles>
258
+ <orm:Role id="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" _IsMandatory="true" _Multiplicity="ZeroToMany" Name="">
259
+ <orm:RolePlayer ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
260
+ </orm:Role>
261
+ <orm:Role id="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
262
+ <orm:RolePlayer ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
263
+ </orm:Role>
264
+ </orm:FactRoles>
265
+ <orm:ReadingOrders>
266
+ <orm:ReadingOrder id="_035B1DC1-94DD-4CAF-99BC-2EFF6B02160C">
267
+ <orm:Readings>
268
+ <orm:Reading id="_018A49A9-E12D-4677-939B-2FE8932E4390">
269
+ <orm:Data>{0} is in {1}</orm:Data>
270
+ <orm:ExpandedData>
271
+ <orm:RoleText RoleIndex="0" FollowingText=" is in " />
272
+ </orm:ExpandedData>
273
+ </orm:Reading>
274
+ </orm:Readings>
275
+ <orm:RoleSequence>
276
+ <orm:Role ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" />
277
+ <orm:Role ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" />
278
+ </orm:RoleSequence>
279
+ </orm:ReadingOrder>
280
+ <orm:ReadingOrder id="_369AC30F-5B6B-4EA8-AB4B-B58A70B8425B">
281
+ <orm:Readings>
282
+ <orm:Reading id="_A6D64462-DEFD-4B55-9EF8-F1A649746C5B">
283
+ <orm:Data>{0} contains {1}</orm:Data>
284
+ <orm:ExpandedData>
285
+ <orm:RoleText RoleIndex="0" FollowingText=" contains " />
286
+ </orm:ExpandedData>
287
+ </orm:Reading>
288
+ </orm:Readings>
289
+ <orm:RoleSequence>
290
+ <orm:Role ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" />
291
+ <orm:Role ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" />
292
+ </orm:RoleSequence>
293
+ </orm:ReadingOrder>
294
+ </orm:ReadingOrders>
295
+ <orm:InternalConstraints>
296
+ <orm:UniquenessConstraint ref="_693319A5-C3BC-4FE3-9A27-4A5FC1868F0D" />
297
+ <orm:MandatoryConstraint ref="_AD6F2337-01B8-4022-8700-96EC212F25BA" />
298
+ </orm:InternalConstraints>
299
+ </orm:Fact>
300
+ </orm:Facts>
301
+ <orm:Constraints>
302
+ <orm:UniquenessConstraint id="_057FD720-E6AE-42AB-8CC2-E693A6E87E20" Name="ExternalUniquenessConstraint1">
303
+ <orm:RoleSequence>
304
+ <orm:Role id="_544E3B2F-C504-4152-8425-5A3D543FB26A" ref="_76BF00AD-1258-4E99-9F18-14B154958DFA" />
305
+ <orm:Role id="_C488F7A3-303E-4C69-8563-4E69B2010614" ref="_DCA03ACD-83DC-4094-B5DD-AE32904F0B4E" />
306
+ <orm:JoinRule>
307
+ <orm:JoinPath id="_102A2FD6-4DDC-46AE-93A6-2F07B422EF35" IsAutomatic="true">
308
+ <orm:PathComponents>
309
+ <orm:RolePath id="_A888980E-77F1-44F3-AB4F-2E2E7221C1D3" SplitCombinationOperator="And">
310
+ <orm:RootObjectType id="_9742400D-D813-4CCB-BD29-AD378B3AF4BC" ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
311
+ <orm:SubPaths>
312
+ <orm:SubPath id="_93D420EF-E274-4415-BBBC-A0443F576619">
313
+ <orm:PathedRoles>
314
+ <orm:PathedRole id="_0B452237-A500-41C8-A4ED-F7DE5F157230" ref="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" Purpose="PostInnerJoin" />
315
+ <orm:PathedRole id="_66D8BB59-2F04-4B4D-B60A-7C8B89ADA359" ref="_76BF00AD-1258-4E99-9F18-14B154958DFA" Purpose="SameFactType" />
316
+ </orm:PathedRoles>
317
+ </orm:SubPath>
318
+ <orm:SubPath id="_CD457318-1270-4C2A-B1F1-941DD51DDCEB">
319
+ <orm:PathedRoles>
320
+ <orm:PathedRole id="_C447DFE9-8247-46CC-99AC-A6960ED25CC4" ref="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" Purpose="PostInnerJoin" />
321
+ <orm:PathedRole id="_0FF56F19-8A6A-47E6-A039-45207F004DDF" ref="_DCA03ACD-83DC-4094-B5DD-AE32904F0B4E" Purpose="SameFactType" />
322
+ </orm:PathedRoles>
323
+ </orm:SubPath>
324
+ </orm:SubPaths>
325
+ </orm:RolePath>
326
+ </orm:PathComponents>
327
+ <orm:JoinPathProjections>
328
+ <orm:JoinPathProjection id="_5E49D521-02A3-4EE4-B8B2-FB90311ABE14" ref="_A888980E-77F1-44F3-AB4F-2E2E7221C1D3">
329
+ <orm:ConstraintRoleProjection id="_978D68B6-4A27-4C1B-B78E-1E0E9A8F40D6" ref="_544E3B2F-C504-4152-8425-5A3D543FB26A">
330
+ <orm:ProjectedFrom>
331
+ <orm:PathedRole ref="_66D8BB59-2F04-4B4D-B60A-7C8B89ADA359" />
332
+ </orm:ProjectedFrom>
333
+ </orm:ConstraintRoleProjection>
334
+ <orm:ConstraintRoleProjection id="_348E884B-D845-4100-A34C-1F4690200F08" ref="_C488F7A3-303E-4C69-8563-4E69B2010614">
335
+ <orm:ProjectedFrom>
336
+ <orm:PathedRole ref="_0FF56F19-8A6A-47E6-A039-45207F004DDF" />
337
+ </orm:ProjectedFrom>
338
+ </orm:ConstraintRoleProjection>
339
+ </orm:JoinPathProjection>
340
+ </orm:JoinPathProjections>
341
+ </orm:JoinPath>
342
+ </orm:JoinRule>
343
+ </orm:RoleSequence>
344
+ <orm:PreferredIdentifierFor ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
345
+ </orm:UniquenessConstraint>
346
+ <orm:UniquenessConstraint id="_5E4F86F8-4B87-4156-B9A8-862AB90ED710" Name="InternalUniquenessConstraint1" IsInternal="true">
347
+ <orm:RoleSequence>
348
+ <orm:Role id="_14C3CBA3-32E2-4848-9E5E-57838F500E34" ref="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" />
349
+ </orm:RoleSequence>
350
+ </orm:UniquenessConstraint>
351
+ <orm:UniquenessConstraint id="_D9831493-D4E8-445F-AFB4-BAD5FEC2E87C" Name="InternalUniquenessConstraint2" IsInternal="true">
352
+ <orm:RoleSequence>
353
+ <orm:Role id="_3ECDFE1E-9412-47AD-A0C4-3E8D7284489F" ref="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" />
354
+ </orm:RoleSequence>
355
+ </orm:UniquenessConstraint>
356
+ <orm:MandatoryConstraint id="_5DB32560-C73F-4F0D-A8B6-01B6C97409FC" Name="SimpleMandatoryConstraint1" IsSimple="true">
357
+ <orm:RoleSequence>
358
+ <orm:Role id="_D2AB3178-2776-4CA6-9D69-D128DF1F24B8" ref="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" />
359
+ </orm:RoleSequence>
360
+ </orm:MandatoryConstraint>
361
+ <orm:MandatoryConstraint id="_5D6DF5BC-3586-44D8-A63B-3EED4CF26A51" Name="SimpleMandatoryConstraint2" IsSimple="true">
362
+ <orm:RoleSequence>
363
+ <orm:Role id="_C6750C67-D3CF-47DC-8598-69F60E48BEA0" ref="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" />
364
+ </orm:RoleSequence>
365
+ </orm:MandatoryConstraint>
366
+ <orm:UniquenessConstraint id="_E598BB82-D5CB-4895-924C-1DE920CD4347" Name="ExternalUniquenessConstraint2">
367
+ <orm:RoleSequence>
368
+ <orm:Role id="_001942AA-E630-4177-BB92-CA9473FA6850" ref="_9E03EBD9-FF70-4ECE-9F11-29BB06F9E6BD" />
369
+ <orm:Role id="_2EA72A5E-D9E3-4BCF-AF7D-36B3A8BB8528" ref="_C332D662-7296-4B7A-8EE3-200348B885BE" />
370
+ <orm:JoinRule>
371
+ <orm:JoinPath id="_163D9A4F-E9CF-4798-BE33-98F527852C85" IsAutomatic="true">
372
+ <orm:PathComponents>
373
+ <orm:RolePath id="_20F9A2D3-6FEB-42CC-8C37-3337CC75FB7B" SplitCombinationOperator="And">
374
+ <orm:RootObjectType id="_6060B89A-E565-44EF-A6C2-1BBED16409B0" ref="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" />
375
+ <orm:SubPaths>
376
+ <orm:SubPath id="_FA4E22A9-F4E0-4C70-AC48-9305134D81C7">
377
+ <orm:PathedRoles>
378
+ <orm:PathedRole id="_21A6C695-F8D3-4B1E-AC18-08A87A8AB1FE" ref="_4DE7971E-8B9D-4902-BA59-F296CF81E094" Purpose="PostInnerJoin" />
379
+ <orm:PathedRole id="_1B18A2FC-A19D-4AE3-8608-C59918D6EF7D" ref="_9E03EBD9-FF70-4ECE-9F11-29BB06F9E6BD" Purpose="SameFactType" />
380
+ </orm:PathedRoles>
381
+ </orm:SubPath>
382
+ <orm:SubPath id="_17493DFC-015F-4397-9D84-3B4ACA3D3064">
383
+ <orm:PathedRoles>
384
+ <orm:PathedRole id="_CC50D27C-2E1A-453F-A28D-2FFD1EF51E8B" ref="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" Purpose="PostInnerJoin" />
385
+ <orm:PathedRole id="_AA053879-17E7-4C78-BC29-4F367B3F33FA" ref="_C332D662-7296-4B7A-8EE3-200348B885BE" Purpose="SameFactType" />
386
+ </orm:PathedRoles>
387
+ </orm:SubPath>
388
+ </orm:SubPaths>
389
+ </orm:RolePath>
390
+ </orm:PathComponents>
391
+ <orm:JoinPathProjections>
392
+ <orm:JoinPathProjection id="_41A5A34D-F253-4E40-9D07-BB363227966F" ref="_20F9A2D3-6FEB-42CC-8C37-3337CC75FB7B">
393
+ <orm:ConstraintRoleProjection id="_9EC51755-6D43-4B61-BCA4-6DB5E89CC1B0" ref="_001942AA-E630-4177-BB92-CA9473FA6850">
394
+ <orm:ProjectedFrom>
395
+ <orm:PathedRole ref="_1B18A2FC-A19D-4AE3-8608-C59918D6EF7D" />
396
+ </orm:ProjectedFrom>
397
+ </orm:ConstraintRoleProjection>
398
+ <orm:ConstraintRoleProjection id="_DF7FC0CB-C2CC-45E2-9218-1951B971467D" ref="_2EA72A5E-D9E3-4BCF-AF7D-36B3A8BB8528">
399
+ <orm:ProjectedFrom>
400
+ <orm:PathedRole ref="_AA053879-17E7-4C78-BC29-4F367B3F33FA" />
401
+ </orm:ProjectedFrom>
402
+ </orm:ConstraintRoleProjection>
403
+ </orm:JoinPathProjection>
404
+ </orm:JoinPathProjections>
405
+ </orm:JoinPath>
406
+ </orm:JoinRule>
407
+ </orm:RoleSequence>
408
+ <orm:PreferredIdentifierFor ref="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" />
409
+ </orm:UniquenessConstraint>
410
+ <orm:UniquenessConstraint id="_E8637337-A8C6-46C9-A475-EA16A48C9ED5" Name="InternalUniquenessConstraint4" IsInternal="true">
411
+ <orm:RoleSequence>
412
+ <orm:Role id="_DC0D092D-84E4-4E30-82D2-F8FA13D5955B" ref="_4DE7971E-8B9D-4902-BA59-F296CF81E094" />
413
+ </orm:RoleSequence>
414
+ </orm:UniquenessConstraint>
415
+ <orm:MandatoryConstraint id="_965FD7C8-9978-4A46-ABE1-2E8EEB66E291" Name="SimpleMandatoryConstraint3" IsSimple="true">
416
+ <orm:RoleSequence>
417
+ <orm:Role id="_F47BEE25-9846-4AC0-9C97-7A19A49A6F89" ref="_4DE7971E-8B9D-4902-BA59-F296CF81E094" />
418
+ </orm:RoleSequence>
419
+ </orm:MandatoryConstraint>
420
+ <orm:UniquenessConstraint id="_7AE54F45-CE1B-41FA-A38C-5FBF72B830AD" Name="InternalUniquenessConstraint5" IsInternal="true">
421
+ <orm:RoleSequence>
422
+ <orm:Role id="_0A943E73-980D-4596-B15B-4E4D7351C126" ref="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" />
423
+ </orm:RoleSequence>
424
+ </orm:UniquenessConstraint>
425
+ <orm:MandatoryConstraint id="_C5A5724D-9F76-497D-80A3-241DACCDF1BC" Name="SimpleMandatoryConstraint5" IsSimple="true">
426
+ <orm:RoleSequence>
427
+ <orm:Role id="_BC00547E-1765-4CFA-ACC1-52D8332FC603" ref="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" />
428
+ </orm:RoleSequence>
429
+ </orm:MandatoryConstraint>
430
+ <orm:MandatoryConstraint id="_C3115957-656B-4ADC-B3C4-6FCCD216AACB" Name="ImpliedMandatoryConstraint1" IsImplied="true">
431
+ <orm:RoleSequence>
432
+ <orm:Role id="_0A281B27-1F2F-4F36-98D9-AA11BDF6F3EC" ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" />
433
+ </orm:RoleSequence>
434
+ <orm:ImpliedByObjectType ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
435
+ </orm:MandatoryConstraint>
436
+ <orm:MandatoryConstraint id="_E5EECDD6-A2E7-48E3-95D8-D29E754ACE5C" Name="ImpliedMandatoryConstraint2" IsImplied="true">
437
+ <orm:RoleSequence>
438
+ <orm:Role id="_2AF8E86D-CE5C-4C3D-9CF6-44B4DF955582" ref="_76BF00AD-1258-4E99-9F18-14B154958DFA" />
439
+ </orm:RoleSequence>
440
+ <orm:ImpliedByObjectType ref="_4BA52554-2D27-40EE-89DD-6119A70901F0" />
441
+ </orm:MandatoryConstraint>
442
+ <orm:MandatoryConstraint id="_C5D2159C-0CEC-4B73-84BB-B813D5676A2F" Name="ImpliedMandatoryConstraint3" IsImplied="true">
443
+ <orm:RoleSequence>
444
+ <orm:Role id="_34B7E0CE-16CB-4EA8-8561-2E3E2112B9D0" ref="_DCA03ACD-83DC-4094-B5DD-AE32904F0B4E" />
445
+ </orm:RoleSequence>
446
+ <orm:ImpliedByObjectType ref="_A3D48C97-BE8A-4ABB-B838-1E4F3CBBB0B0" />
447
+ </orm:MandatoryConstraint>
448
+ <orm:MandatoryConstraint id="_1E2100AF-B0B6-4B0F-9048-6A2672CAE931" Name="ImpliedMandatoryConstraint4" IsImplied="true">
449
+ <orm:RoleSequence>
450
+ <orm:Role id="_3EAA926C-4E8C-4D8B-A6D9-C7E0FB5893F9" ref="_C917814F-9BAC-452B-8BF4-97E617760D20" />
451
+ </orm:RoleSequence>
452
+ <orm:ImpliedByObjectType ref="_7AE7F197-26CE-445F-A75F-56279656C670" />
453
+ </orm:MandatoryConstraint>
454
+ <orm:MandatoryConstraint id="_DD23362F-DF19-436D-9354-C3A57E922461" Name="ImpliedMandatoryConstraint5" IsImplied="true">
455
+ <orm:RoleSequence>
456
+ <orm:Role id="_133FE76E-8ED3-49CD-BBA1-BF96F62DA3FF" ref="_C332D662-7296-4B7A-8EE3-200348B885BE" />
457
+ </orm:RoleSequence>
458
+ <orm:ImpliedByObjectType ref="_48FD2F08-AECF-4A1A-99BB-85454F67252C" />
459
+ </orm:MandatoryConstraint>
460
+ <orm:UniquenessConstraint id="_B5F57753-0D42-4E74-A73E-432D52777FF0" Name="InternalUniquenessConstraint6" IsInternal="true">
461
+ <orm:RoleSequence>
462
+ <orm:Role id="_BD71A585-CF28-460C-BDBD-8B26BA1205F7" ref="_9CD1A01B-FD35-4C40-8AB9-64C04402153C" />
463
+ </orm:RoleSequence>
464
+ <orm:PreferredIdentifierFor ref="_4BA52554-2D27-40EE-89DD-6119A70901F0" />
465
+ </orm:UniquenessConstraint>
466
+ <orm:UniquenessConstraint id="_E416C377-0024-463B-8006-F699BE1600E9" Name="InternalUniquenessConstraint7" IsInternal="true">
467
+ <orm:RoleSequence>
468
+ <orm:Role id="_0DCC67AE-A7F6-4191-956E-0771E3CBE48B" ref="_EC0E4AB5-D701-436B-BB2B-90216182A013" />
469
+ </orm:RoleSequence>
470
+ </orm:UniquenessConstraint>
471
+ <orm:MandatoryConstraint id="_30CF1A07-FE6C-4FE5-87F1-A3DF4502E915" Name="SimpleMandatoryConstraint6" IsSimple="true">
472
+ <orm:RoleSequence>
473
+ <orm:Role id="_C550CA62-4AB5-4E1F-8FA0-8048E1007AC3" ref="_EC0E4AB5-D701-436B-BB2B-90216182A013" />
474
+ </orm:RoleSequence>
475
+ </orm:MandatoryConstraint>
476
+ <orm:MandatoryConstraint id="_CCE0CC96-DD69-45EA-88A1-586F5555A772" Name="ImpliedMandatoryConstraint6" IsImplied="true">
477
+ <orm:RoleSequence>
478
+ <orm:Role id="_B5017462-B845-4910-B014-21A16981EB1B" ref="_9CD1A01B-FD35-4C40-8AB9-64C04402153C" />
479
+ </orm:RoleSequence>
480
+ <orm:ImpliedByObjectType ref="_244934BF-7049-4B4E-84EE-398E327E4419" />
481
+ </orm:MandatoryConstraint>
482
+ <orm:UniquenessConstraint id="_693319A5-C3BC-4FE3-9A27-4A5FC1868F0D" Name="InternalUniquenessConstraint8" IsInternal="true">
483
+ <orm:RoleSequence>
484
+ <orm:Role id="_AD97A536-3167-49F5-8AD4-BEA550ADA586" ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" />
485
+ </orm:RoleSequence>
486
+ </orm:UniquenessConstraint>
487
+ <orm:MandatoryConstraint id="_AD6F2337-01B8-4022-8700-96EC212F25BA" Name="SimpleMandatoryConstraint7" IsSimple="true">
488
+ <orm:RoleSequence>
489
+ <orm:Role id="_88C549D7-5EEA-4285-AC09-3A0A137C30AB" ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" />
490
+ </orm:RoleSequence>
491
+ </orm:MandatoryConstraint>
492
+ <orm:UniquenessConstraint id="_DB10AE58-4FF4-43D5-9929-ADD481DE34EA" Name="InternalUniquenessConstraint9" IsInternal="true">
493
+ <orm:RoleSequence>
494
+ <orm:Role id="_204E905B-DC23-402F-9CBB-E80C20BEA352" ref="_A597A805-0EF8-4525-8283-AAF4E22A8A13" />
495
+ </orm:RoleSequence>
496
+ </orm:UniquenessConstraint>
497
+ <orm:MandatoryConstraint id="_5B28A95B-31AE-408B-B93F-FA8319D29F7E" Name="SimpleMandatoryConstraint8" IsSimple="true">
498
+ <orm:RoleSequence>
499
+ <orm:Role id="_0FA9B3F8-84A9-4179-8B65-80638798F190" ref="_A597A805-0EF8-4525-8283-AAF4E22A8A13" />
500
+ </orm:RoleSequence>
501
+ </orm:MandatoryConstraint>
502
+ <orm:UniquenessConstraint id="_4E78EF49-3805-4BBC-A5E8-5A9FB2FDABD7" Name="ExternalUniquenessConstraint3">
503
+ <orm:RoleSequence>
504
+ <orm:Role id="_91483D00-6AA0-4CDF-BB33-A5B0398DB802" ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" />
505
+ <orm:Role id="_C739B447-39AA-44EB-BDAB-296CF48D28AB" ref="_C917814F-9BAC-452B-8BF4-97E617760D20" />
506
+ <orm:JoinRule>
507
+ <orm:JoinPath id="_FA534EB5-1312-43A7-A05E-520A6C2D107F" IsAutomatic="true">
508
+ <orm:PathComponents>
509
+ <orm:RolePath id="_24391B26-919F-4142-A229-36086FA097B4" SplitCombinationOperator="And">
510
+ <orm:RootObjectType id="_3DDB42C3-8F9A-44E8-9611-92E0A55FB151" ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
511
+ <orm:SubPaths>
512
+ <orm:SubPath id="_BCCBBF49-2C65-43C0-B683-1367A565DF58">
513
+ <orm:PathedRoles>
514
+ <orm:PathedRole id="_6CC5378E-A9FA-4915-BF50-FB14382BD89C" ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" Purpose="PostInnerJoin" />
515
+ <orm:PathedRole id="_F23F4D61-7105-49EE-9D50-C1EA5C282EC2" ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" Purpose="SameFactType" />
516
+ </orm:PathedRoles>
517
+ </orm:SubPath>
518
+ <orm:SubPath id="_BD2A31BF-8098-4896-85BC-802F2260BC7E">
519
+ <orm:PathedRoles>
520
+ <orm:PathedRole id="_A17E2FDF-3A9F-4B9E-B1CA-4006CD8EEC59" ref="_A597A805-0EF8-4525-8283-AAF4E22A8A13" Purpose="PostInnerJoin" />
521
+ <orm:PathedRole id="_602D65EE-4FB4-432F-8E1A-CD487019BF99" ref="_C917814F-9BAC-452B-8BF4-97E617760D20" Purpose="SameFactType" />
522
+ </orm:PathedRoles>
523
+ </orm:SubPath>
524
+ </orm:SubPaths>
525
+ </orm:RolePath>
526
+ </orm:PathComponents>
527
+ <orm:JoinPathProjections>
528
+ <orm:JoinPathProjection id="_0A592B6A-2481-4281-86B2-3A6EBADA334F" ref="_24391B26-919F-4142-A229-36086FA097B4">
529
+ <orm:ConstraintRoleProjection id="_2F10C3BE-BD0A-46D5-8438-CCEDC5FE9220" ref="_91483D00-6AA0-4CDF-BB33-A5B0398DB802">
530
+ <orm:ProjectedFrom>
531
+ <orm:PathedRole ref="_F23F4D61-7105-49EE-9D50-C1EA5C282EC2" />
532
+ </orm:ProjectedFrom>
533
+ </orm:ConstraintRoleProjection>
534
+ <orm:ConstraintRoleProjection id="_3A1516DA-1105-4764-9B88-EA0BD0ED9CAF" ref="_C739B447-39AA-44EB-BDAB-296CF48D28AB">
535
+ <orm:ProjectedFrom>
536
+ <orm:PathedRole ref="_602D65EE-4FB4-432F-8E1A-CD487019BF99" />
537
+ </orm:ProjectedFrom>
538
+ </orm:ConstraintRoleProjection>
539
+ </orm:JoinPathProjection>
540
+ </orm:JoinPathProjections>
541
+ </orm:JoinPath>
542
+ </orm:JoinRule>
543
+ </orm:RoleSequence>
544
+ <orm:PreferredIdentifierFor ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
545
+ </orm:UniquenessConstraint>
546
+ <orm:MandatoryConstraint id="_B8DCF2F5-9FBB-4D64-A7F3-6096C8E208E8" Name="ImpliedMandatoryConstraint7" IsImplied="true">
547
+ <orm:RoleSequence>
548
+ <orm:Role id="_BD75EBA9-BFD4-4D2C-96DD-22EC7AD8C5A9" ref="_9E03EBD9-FF70-4ECE-9F11-29BB06F9E6BD" />
549
+ </orm:RoleSequence>
550
+ <orm:ImpliedByObjectType ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
551
+ </orm:MandatoryConstraint>
552
+ </orm:Constraints>
553
+ <orm:DataTypes>
554
+ <orm:SignedIntegerNumericDataType id="_DECB0EB7-C0D8-4FF0-8359-65FF6C389DF1" />
555
+ <orm:UnsignedIntegerNumericDataType id="_4552A488-5AB1-4D21-9463-16E8DD7ADE20" />
556
+ </orm:DataTypes>
557
+ <orm:ReferenceModeKinds>
558
+ <orm:ReferenceModeKind id="_D0C8828D-9625-41A2-ACCC-45B3C3281888" FormatString="{1}" ReferenceModeType="General" />
559
+ <orm:ReferenceModeKind id="_7F23EBA6-D68C-4BDF-A4E4-52C558F71341" FormatString="{0} {1}" ReferenceModeType="Popular" />
560
+ <orm:ReferenceModeKind id="_EFED39B7-66F8-44C1-AC82-661204154128" FormatString="{1}Value" ReferenceModeType="UnitBased" />
561
+ </orm:ReferenceModeKinds>
562
+ </orm:ORMModel>
563
+ <orm:NameGenerator id="_DF3AC83C-51B1-4861-B3C9-79BC7F6BD985" AutomaticallyShortenNames="true" UseTargetDefaultMaximum="true" UserDefinedMaximum="128">
564
+ <orm:Refinements>
565
+ <oialtocdb:RelationalNameGenerator id="_1ABBA94B-96B0-4641-9696-5FA8CE0A77FE" SpacingFormat="Remove" AutomaticallyShortenNames="true" UseTargetDefaultMaximum="true" UserDefinedMaximum="128">
566
+ <orm:Refinements>
567
+ <oialtocdb:RelationalNameGenerator id="_23C914A4-1B5E-413E-8269-8046289774B0" NameUsage="RelationalTable" CasingOption="Pascal" SpacingFormat="Remove" AutomaticallyShortenNames="true" UseTargetDefaultMaximum="true" UserDefinedMaximum="128" />
568
+ <oialtocdb:RelationalNameGenerator id="_16941F10-09E5-4099-8B50-3B1EFC603809" NameUsage="RelationalColumn" CasingOption="Camel" SpacingFormat="Remove" AutomaticallyShortenNames="true" UseTargetDefaultMaximum="true" UserDefinedMaximum="128" />
569
+ </orm:Refinements>
570
+ </oialtocdb:RelationalNameGenerator>
571
+ </orm:Refinements>
572
+ </orm:NameGenerator>
573
+ <orm:GenerationState id="_A4DAEBF3-DC50-4E6F-927C-E4C32B1E63B3">
574
+ <orm:GenerationSettings>
575
+ <ormtooial:AbstractionModelGenerationSetting id="_02B3513B-AC8C-4B30-B48E-C6CD39AB5139" AlgorithmVersion="1.008">
576
+ <ormtooial:AbstractionModel ref="_A7F28498-6C5F-4FA9-9B9C-ECA4C374D8A5" />
577
+ </ormtooial:AbstractionModelGenerationSetting>
578
+ <oialtocdb:SchemaGenerationSetting id="_8475C7AD-5F49-4FC9-B5C1-B9A2EBA462D1" CoreAlgorithmVersion="1.004" NameAlgorithmVersion="1.013">
579
+ <oialtocdb:Schema ref="_580D856B-5556-4310-A62B-66B92C738EC7" />
580
+ </oialtocdb:SchemaGenerationSetting>
581
+ </orm:GenerationSettings>
582
+ </orm:GenerationState>
583
+ <ormDiagram:ORMDiagram id="_ED1A62C5-A78A-49C6-B6D7-2CA2567814BF" IsCompleteView="false" Name="WindowInRoomInBldg" BaseFontName="Tahoma" BaseFontSize="0.0972222238779068">
584
+ <ormDiagram:Shapes>
585
+ <ormDiagram:ObjectTypeShape id="_484A4276-5CD1-4E1D-B85A-2414BBAF7BF4" IsExpanded="true" AbsoluteBounds="0.52083327372868848, 1.0734430106667181, 0.44426396012306213, 0.22950302660465241">
586
+ <ormDiagram:Subject ref="_F8D089ED-F6FB-4F73-AEAA-D7E8C1102D2B" />
587
+ </ormDiagram:ObjectTypeShape>
588
+ <ormDiagram:FactTypeShape id="_23A2890C-02DD-4A79-910F-1ECA0C88DED9" IsExpanded="true" AbsoluteBounds="1.3541666467984519, 0.5, 0.38388888899236917, 0.24388888899236916">
589
+ <ormDiagram:RelativeShapes>
590
+ <ormDiagram:ReadingShape id="_F5D9A01C-4B60-4A57-B293-3D0FFCFA194D" IsExpanded="true" AbsoluteBounds="1.3541666467984519, 0.80864040229469536, 0.20995189249515533, 0.12950302660465241">
591
+ <ormDiagram:Subject ref="_45F6F4E6-C328-4B46-9E1F-21723FDA364D" />
592
+ </ormDiagram:ReadingShape>
593
+ </ormDiagram:RelativeShapes>
594
+ <ormDiagram:Subject ref="_5A4A3EF5-A8B9-47E6-933B-B1456C53E46C" />
595
+ </ormDiagram:FactTypeShape>
596
+ <ormDiagram:FactTypeShape id="_8EC5991E-2468-4A80-9886-CEED84C949FB" IsExpanded="true" AbsoluteBounds="1.3437499801317849, 1.0312500794728596, 0.38388888899236917, 0.24388888899236916">
597
+ <ormDiagram:RelativeShapes>
598
+ <ormDiagram:ReadingShape id="_631E5513-41B3-4C13-A167-7C97E308ED79" IsExpanded="true" AbsoluteBounds="1.3437499801317849, 1.339890481767555, 0.18545643985271454, 0.12950302660465241">
599
+ <ormDiagram:Subject ref="_24A71DDF-6F4D-44DB-AB5B-1C391C6356A4" />
600
+ </ormDiagram:ReadingShape>
601
+ </ormDiagram:RelativeShapes>
602
+ <ormDiagram:Subject ref="_0C83CF91-AE33-4EC2-B943-192F4A9A5B5C" />
603
+ </ormDiagram:FactTypeShape>
604
+ <ormDiagram:ExternalConstraintShape id="_199D403C-570C-440F-B0BF-A7CDE3BA8864" IsExpanded="true" AbsoluteBounds="1.7604167461395264, 0.84427626452719173, 0.16, 0.16">
605
+ <ormDiagram:Subject ref="_057FD720-E6AE-42AB-8CC2-E693A6E87E20" />
606
+ </ormDiagram:ExternalConstraintShape>
607
+ <ormDiagram:ObjectTypeShape id="_7C1C8EC8-71C3-4C64-B438-9E2B6D02B9D2" IsExpanded="true" AbsoluteBounds="2.1094617935021716, 0.55260959786052488, 0.56607657194137584, 0.22950302660465241" ExpandRefMode="true">
608
+ <ormDiagram:Subject ref="_4BA52554-2D27-40EE-89DD-6119A70901F0" />
609
+ </ormDiagram:ObjectTypeShape>
610
+ <ormDiagram:ObjectTypeShape id="_FE4F5B47-793C-4158-B27E-A0BB659E6D68" IsExpanded="true" AbsoluteBounds="1.9542527886231738, 1.0734430106667181, 0.87649458169937133, 0.22950302660465241">
611
+ <ormDiagram:Subject ref="_A3D48C97-BE8A-4ABB-B838-1E4F3CBBB0B0" />
612
+ </ormDiagram:ObjectTypeShape>
613
+ <ormDiagram:ObjectTypeShape id="_E30ED2A0-9711-4072-9433-5B506FF29264" IsExpanded="true" AbsoluteBounds="0.55208333333333326, 2.5421928517209982, 0.56360801577568054, 0.22950302660465241">
614
+ <ormDiagram:Subject ref="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" />
615
+ </ormDiagram:ObjectTypeShape>
616
+ <ormDiagram:FactTypeShape id="_EA7712D4-5A7B-44E5-8514-E96193BCD07D" IsExpanded="true" AbsoluteBounds="1.3541666467984517, 2.1979165871938071, 0.38388888899236917, 0.24388888899236916">
617
+ <ormDiagram:RelativeShapes>
618
+ <ormDiagram:ReadingShape id="_4DE9289D-23DE-4A62-9354-AC25C0F30899" IsExpanded="true" AbsoluteBounds="1.3541666467984517, 2.5065569894885025, 0.55877459049224854, 0.12950302660465241">
619
+ <ormDiagram:Subject ref="_4C30DB6C-7336-45FC-9AFD-DF34ED61D56E" />
620
+ </ormDiagram:ReadingShape>
621
+ </ormDiagram:RelativeShapes>
622
+ <ormDiagram:Subject ref="_86AC5057-5610-405B-99FB-63A249E548F5" />
623
+ </ormDiagram:FactTypeShape>
624
+ <ormDiagram:ObjectTypeShape id="_A3F904D6-73F9-44CE-8083-9745981070DC" IsExpanded="true" AbsoluteBounds="3.4168395896752668, 1.5754571045541985, 0.80799275159835815, 0.22950302660465241">
625
+ <ormDiagram:Subject ref="_7AE7F197-26CE-445F-A75F-56279656C670" />
626
+ </ormDiagram:ObjectTypeShape>
627
+ <ormDiagram:ExternalConstraintShape id="_53A2613B-09FA-4CAE-9613-D342566D37FF" IsExpanded="true" AbsoluteBounds="1.7395834128061929, 2.6671929311938585, 0.16, 0.16">
628
+ <ormDiagram:Subject ref="_E598BB82-D5CB-4895-924C-1DE920CD4347" />
629
+ </ormDiagram:ExternalConstraintShape>
630
+ <ormDiagram:ObjectTypeShape id="_F1C926A7-1765-43BE-88FF-B6522D086428" IsExpanded="true" AbsoluteBounds="1.8945807607968646, 2.9831357829148568, 0.99583863735198974, 0.22950302660465241">
631
+ <ormDiagram:Subject ref="_48FD2F08-AECF-4A1A-99BB-85454F67252C" />
632
+ </ormDiagram:ObjectTypeShape>
633
+ <ormDiagram:FactTypeShape id="_5D2F2ECD-DA7D-4F7D-AAD0-2E3D044FEDF6" IsExpanded="true" AbsoluteBounds="1.3854165673255918, 2.9409428517209988, 0.38388888899236917, 0.24388888899236916">
634
+ <ormDiagram:RelativeShapes>
635
+ <ormDiagram:ReadingShape id="_BD88A1B7-0AF8-4FCD-9AD5-DA23E5EF7E63" IsExpanded="true" AbsoluteBounds="1.3854165673255918, 3.2495832540156941, 0.18545643985271454, 0.12950302660465241">
636
+ <ormDiagram:Subject ref="_B2B0EEA3-3D86-47D5-9524-B7CE04AFAF8E" />
637
+ </ormDiagram:ReadingShape>
638
+ </ormDiagram:RelativeShapes>
639
+ <ormDiagram:Subject ref="_F72A9E34-B0B6-48E9-B3B1-E1AC4DFA57A8" />
640
+ </ormDiagram:FactTypeShape>
641
+ <ormDiagram:FactTypeShape id="_37BC4A97-BB01-47E6-94CE-EBC5DDA48321" IsExpanded="true" AbsoluteBounds="2.8695110444513459, 0.5, 0.38388888899236917, 0.24388888899236916">
642
+ <ormDiagram:RelativeShapes>
643
+ <ormDiagram:ReadingShape id="_2EF8431F-5680-4FC2-B97C-D147208AC4C6" IsExpanded="true" AbsoluteBounds="2.8695110444513459, 0.80864040229469558, 0.47137901186943054, 0.12950302660465241">
644
+ <ormDiagram:Subject ref="_04E33A6A-9240-4A0E-B9E6-F7B48E2800CD" />
645
+ </ormDiagram:ReadingShape>
646
+ </ormDiagram:RelativeShapes>
647
+ <ormDiagram:Subject ref="_576087B5-0949-45B5-A187-FE04BAA05B8C" />
648
+ </ormDiagram:FactTypeShape>
649
+ <ormDiagram:ObjectTypeShape id="_978EF38E-C33A-458C-AD2D-C6E63D815F35" IsExpanded="true" AbsoluteBounds="3.4575203522332, 0.54219293119385836, 0.99830716371536254, 0.22950302660465241">
650
+ <ormDiagram:Subject ref="_244934BF-7049-4B4E-84EE-398E327E4419" />
651
+ </ormDiagram:ObjectTypeShape>
652
+ <ormDiagram:ObjectTypeShape id="_A295EE43-5D60-4CE9-B29A-E538F2F09B1F" IsExpanded="true" AbsoluteBounds="2.2046189995606738, 1.5754571045541985, 0.37576215982437139, 0.22950302660465241">
653
+ <ormDiagram:Subject ref="_3BA46B01-6904-490A-87AA-461FC1F7C9E9" />
654
+ </ormDiagram:ObjectTypeShape>
655
+ <ormDiagram:FactTypeShape id="_BF64C9D6-F99D-458F-9243-CA884FFB1103" IsExpanded="true" AbsoluteBounds="2.7431130533129386, 1.5332641733603403, 0.38388888899236917, 0.24388888899236916">
656
+ <ormDiagram:RelativeShapes>
657
+ <ormDiagram:ReadingShape id="_BA5A7BAF-0154-4224-81C5-91F6FE248DF0" IsExpanded="true" AbsoluteBounds="2.7431130533129386, 1.8419045756550361, 0.18545643985271454, 0.12950302660465241">
658
+ <ormDiagram:Subject ref="_7CB64CBB-7640-464C-B65D-8D9235F3E053" />
659
+ </ormDiagram:ReadingShape>
660
+ </ormDiagram:RelativeShapes>
661
+ <ormDiagram:Subject ref="_F836B778-9C80-4879-99E9-3264E8DDBCA7" />
662
+ <ormDiagram:RoleDisplayOrder>
663
+ <ormDiagram:Role ref="_A597A805-0EF8-4525-8283-AAF4E22A8A13" />
664
+ <ormDiagram:Role ref="_C917814F-9BAC-452B-8BF4-97E617760D20" />
665
+ </ormDiagram:RoleDisplayOrder>
666
+ </ormDiagram:FactTypeShape>
667
+ <ormDiagram:FactTypeShape id="_10AACC52-A6E6-4248-B1DE-724F01D114C8" IsExpanded="true" AbsoluteBounds="1.370174554616737, 1.53326417336034, 0.38388888899236917, 0.24388888899236916">
668
+ <ormDiagram:RelativeShapes>
669
+ <ormDiagram:ReadingShape id="_251637FB-3B30-4B04-AEE4-EC65AAF3B762" IsExpanded="true" AbsoluteBounds="1.370174554616737, 1.8419045756550354, 0.67659956216812134, 0.12950302660465241">
670
+ <ormDiagram:Subject ref="_035B1DC1-94DD-4CAF-99BC-2EFF6B02160C" />
671
+ </ormDiagram:ReadingShape>
672
+ </ormDiagram:RelativeShapes>
673
+ <ormDiagram:Subject ref="_F772EE19-2E49-4C43-9123-17CAF44FE2F2" />
674
+ <ormDiagram:RoleDisplayOrder>
675
+ <ormDiagram:Role ref="_23A49798-3626-4AFC-81F4-EB9DFE6F7FEB" />
676
+ <ormDiagram:Role ref="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" />
677
+ </ormDiagram:RoleDisplayOrder>
678
+ </ormDiagram:FactTypeShape>
679
+ <ormDiagram:ExternalConstraintShape id="_249B6722-125A-4F6E-9C18-551CF828D6CE" IsExpanded="true" AbsoluteBounds="2.2708334128061929, 2.2083334128061933, 0.16, 0.16">
680
+ <ormDiagram:Subject ref="_4E78EF49-3805-4BBC-A5E8-5A9FB2FDABD7" />
681
+ </ormDiagram:ExternalConstraintShape>
682
+ </ormDiagram:Shapes>
683
+ <ormDiagram:Subject ref="_08145487-9E0C-4768-87D5-E30B6ED1724A" />
684
+ </ormDiagram:ORMDiagram>
685
+ <oial:model id="_A7F28498-6C5F-4FA9-9B9C-ECA4C374D8A5" name="WindowInRoomInBldg">
686
+ <oial:informationTypeFormats>
687
+ <odt:dataType id="_5324EE04-DB54-4A20-89E9-56B666376433" name="Room Number" />
688
+ <odt:dataType id="_13FFB36D-3AA1-478F-BC6E-3891EA106D82" name="Wall Number" />
689
+ <odt:dataType id="_61D6605E-234C-4130-B1AC-B7324C78E649" name="Window Number" />
690
+ <odt:dataType id="_2BA457C0-6BAE-4F2F-B55C-52EB6EC73FD4" name="Building Number" />
691
+ </oial:informationTypeFormats>
692
+ <oial:conceptTypes>
693
+ <oial:conceptType id="_63BB5646-4CC6-4E70-9A09-813ED19E4FA7" name="Window">
694
+ <oial:children>
695
+ <oial:informationType id="_E59D8859-4EA0-40BE-B884-899CC7B0533B" ref="_2BA457C0-6BAE-4F2F-B55C-52EB6EC73FD4" isMandatory="true" name="Building Number" />
696
+ <oial:informationType id="_3DB57604-F085-4D68-872E-383B245A2291" ref="_5324EE04-DB54-4A20-89E9-56B666376433" isMandatory="true" name="Room Number" />
697
+ <oial:informationType id="_AEF865AC-8766-446C-AFEC-F013D4AF4511" ref="_13FFB36D-3AA1-478F-BC6E-3891EA106D82" isMandatory="true" name="Wall Number" />
698
+ <oial:informationType id="_6D8A14E3-5323-46F0-94B1-F258CC3D3398" ref="_61D6605E-234C-4130-B1AC-B7324C78E649" isMandatory="true" name="Window Number" />
699
+ </oial:children>
700
+ <oial:uniquenessConstraints>
701
+ <oial:uniquenessConstraint id="_9EC8A458-2BB5-480F-9864-4BE9487A600C" name="ExternalUniquenessConstraint2" isPreferred="true">
702
+ <oial:uniquenessChild ref="_E59D8859-4EA0-40BE-B884-899CC7B0533B" />
703
+ <oial:uniquenessChild ref="_3DB57604-F085-4D68-872E-383B245A2291" />
704
+ <oial:uniquenessChild ref="_AEF865AC-8766-446C-AFEC-F013D4AF4511" />
705
+ <oial:uniquenessChild ref="_6D8A14E3-5323-46F0-94B1-F258CC3D3398" />
706
+ </oial:uniquenessConstraint>
707
+ </oial:uniquenessConstraints>
708
+ </oial:conceptType>
709
+ </oial:conceptTypes>
710
+ </oial:model>
711
+ <rcd:Catalog id="_9DB28136-326A-4CE8-8749-89221FD78D53">
712
+ <rcd:Schemas>
713
+ <rcd:Schema id="_580D856B-5556-4310-A62B-66B92C738EC7" Name="WindowInRoomInBldg">
714
+ <rcd:Tables>
715
+ <rcd:Table id="_85668456-DF96-4C7F-B1C6-44CA1437E246" Name="Window">
716
+ <rcd:Columns>
717
+ <rcd:Column id="_1F203E33-13C9-4F40-8D13-4C26B989FC82" Name="building" />
718
+ <rcd:Column id="_DB948111-8356-4587-B44A-103397F919FA" Name="roomNumber" />
719
+ <rcd:Column id="_E3A9ABE1-D3A0-4E21-9288-2AC9FF9314E0" Name="wallNumber" />
720
+ <rcd:Column id="_E89E93E9-6B66-4E43-AC4E-DE2800695DA6" Name="windowNumber" />
721
+ </rcd:Columns>
722
+ <rcd:Constraints>
723
+ <rcd:UniquenessConstraint id="_29D70FA2-3927-4325-BA8A-46637C16496E" Name="Window_PK" IsPrimary="true">
724
+ <rcd:Columns>
725
+ <rcd:Column ref="_1F203E33-13C9-4F40-8D13-4C26B989FC82" />
726
+ <rcd:Column ref="_DB948111-8356-4587-B44A-103397F919FA" />
727
+ <rcd:Column ref="_E3A9ABE1-D3A0-4E21-9288-2AC9FF9314E0" />
728
+ <rcd:Column ref="_E89E93E9-6B66-4E43-AC4E-DE2800695DA6" />
729
+ </rcd:Columns>
730
+ </rcd:UniquenessConstraint>
731
+ </rcd:Constraints>
732
+ </rcd:Table>
733
+ </rcd:Tables>
734
+ </rcd:Schema>
735
+ </rcd:Schemas>
736
+ </rcd:Catalog>
737
+ <ormtooial:Bridge>
738
+ <ormtooial:AbstractionModelIsForORMModel id="_14914574-E8D0-4EF0-AE5E-39FD95D0FCF7" AbstractionModel="_A7F28498-6C5F-4FA9-9B9C-ECA4C374D8A5" ORMModel="_08145487-9E0C-4768-87D5-E30B6ED1724A" />
739
+ <ormtooial:FactTypeMapsTowardsRole id="_40D8F924-BB5F-48AF-AD6D-139F8EEA4FF0" FactType="_576087B5-0949-45B5-A187-FE04BAA05B8C" TowardsRole="_EC0E4AB5-D701-436B-BB2B-90216182A013" Depth="Shallow" UniquenessPattern="OneToOne" MandatoryPattern="TowardsRoleMandatory" />
740
+ <ormtooial:FactTypeMapsTowardsRole id="_929A7A41-72AF-4503-B33D-9A45C2003489" FactType="_0C83CF91-AE33-4EC2-B943-192F4A9A5B5C" TowardsRole="_A3C2EB3C-2E94-448D-ADD2-373E8B2596F5" Depth="Shallow" UniquenessPattern="OneToMany" MandatoryPattern="BothRolesMandatory" />
741
+ <ormtooial:FactTypeMapsTowardsRole id="_BAE6A7B3-0459-4226-B0F5-EEC8D9E69569" FactType="_5A4A3EF5-A8B9-47E6-933B-B1456C53E46C" TowardsRole="_DCB54B59-7D0F-42FF-9E06-D92BA023C798" Depth="Shallow" UniquenessPattern="OneToMany" MandatoryPattern="BothRolesMandatory" />
742
+ <ormtooial:FactTypeMapsTowardsRole id="_9B7FEB28-0E71-4B98-BAAE-7E6057ECD243" FactType="_F836B778-9C80-4879-99E9-3264E8DDBCA7" TowardsRole="_A597A805-0EF8-4525-8283-AAF4E22A8A13" Depth="Shallow" UniquenessPattern="OneToMany" MandatoryPattern="BothRolesMandatory" />
743
+ <ormtooial:FactTypeMapsTowardsRole id="_9A761645-ACA8-46C3-BF74-17070AF855DE" FactType="_F772EE19-2E49-4C43-9123-17CAF44FE2F2" TowardsRole="_80B0DEDB-16B2-41A2-AB5B-3F99BB1B9591" Depth="Shallow" UniquenessPattern="OneToMany" MandatoryPattern="BothRolesMandatory" />
744
+ <ormtooial:FactTypeMapsTowardsRole id="_77C53723-FFF7-4B7C-BF3C-E509A5A301FA" FactType="_F72A9E34-B0B6-48E9-B3B1-E1AC4DFA57A8" TowardsRole="_4A193B6B-33D0-49AE-B1ED-C83D0FBDF62C" Depth="Shallow" UniquenessPattern="OneToMany" MandatoryPattern="BothRolesMandatory" />
745
+ <ormtooial:FactTypeMapsTowardsRole id="_C9BAD0B4-DE8B-4C38-8C2F-14DA9F1B5482" FactType="_86AC5057-5610-405B-99FB-63A249E548F5" TowardsRole="_4DE7971E-8B9D-4902-BA59-F296CF81E094" Depth="Shallow" UniquenessPattern="OneToMany" MandatoryPattern="BothRolesMandatory" />
746
+ <ormtooial:ConceptTypeIsForObjectType id="_FC704CF2-945C-493E-991B-0E84E32CC1FD" ConceptType="_63BB5646-4CC6-4E70-9A09-813ED19E4FA7" ObjectType="_0887FFC2-6907-41C7-8CF2-21E6ED44C606" />
747
+ <ormtooial:ConceptTypeChildHasPathFactType id="_E0A0894C-8B3D-4F76-B705-E27EB1F915C0" ConceptTypeChild="_E59D8859-4EA0-40BE-B884-899CC7B0533B" PathFactType="_86AC5057-5610-405B-99FB-63A249E548F5" />
748
+ <ormtooial:ConceptTypeChildHasPathFactType id="_DDE44B15-67D0-482E-BA04-1F03150EF1AB" ConceptTypeChild="_E59D8859-4EA0-40BE-B884-899CC7B0533B" PathFactType="_F772EE19-2E49-4C43-9123-17CAF44FE2F2" />
749
+ <ormtooial:ConceptTypeChildHasPathFactType id="_603A137E-86CE-4941-BA28-C2CA7DDC05D8" ConceptTypeChild="_E59D8859-4EA0-40BE-B884-899CC7B0533B" PathFactType="_5A4A3EF5-A8B9-47E6-933B-B1456C53E46C" />
750
+ <ormtooial:ConceptTypeChildHasPathFactType id="_FB5B9EB9-D80D-42E1-A2F3-061BB720E17C" ConceptTypeChild="_E59D8859-4EA0-40BE-B884-899CC7B0533B" PathFactType="_576087B5-0949-45B5-A187-FE04BAA05B8C" />
751
+ <ormtooial:ConceptTypeChildHasPathFactType id="_39F02D8A-E3AC-4E06-B699-1E717F0202E6" ConceptTypeChild="_3DB57604-F085-4D68-872E-383B245A2291" PathFactType="_86AC5057-5610-405B-99FB-63A249E548F5" />
752
+ <ormtooial:ConceptTypeChildHasPathFactType id="_9C8A3891-45A5-4593-9773-DF3B8BD1DCBD" ConceptTypeChild="_3DB57604-F085-4D68-872E-383B245A2291" PathFactType="_F772EE19-2E49-4C43-9123-17CAF44FE2F2" />
753
+ <ormtooial:ConceptTypeChildHasPathFactType id="_073F7673-7107-44BA-A8EE-38E5323FF28A" ConceptTypeChild="_3DB57604-F085-4D68-872E-383B245A2291" PathFactType="_0C83CF91-AE33-4EC2-B943-192F4A9A5B5C" />
754
+ <ormtooial:ConceptTypeChildHasPathFactType id="_B79330D0-FC1D-472D-9780-DF0C86F8525A" ConceptTypeChild="_AEF865AC-8766-446C-AFEC-F013D4AF4511" PathFactType="_86AC5057-5610-405B-99FB-63A249E548F5" />
755
+ <ormtooial:ConceptTypeChildHasPathFactType id="_67EEF3E4-2DC5-468D-B28D-C0F15FEB4B88" ConceptTypeChild="_AEF865AC-8766-446C-AFEC-F013D4AF4511" PathFactType="_F836B778-9C80-4879-99E9-3264E8DDBCA7" />
756
+ <ormtooial:ConceptTypeChildHasPathFactType id="_AC0825E0-5BBC-4388-A371-20460E22A577" ConceptTypeChild="_6D8A14E3-5323-46F0-94B1-F258CC3D3398" PathFactType="_F72A9E34-B0B6-48E9-B3B1-E1AC4DFA57A8" />
757
+ <ormtooial:InformationTypeFormatIsForValueType id="_BB97D7F5-72D6-4278-9B7F-DC6FAE57F264" InformationTypeFormat="_2BA457C0-6BAE-4F2F-B55C-52EB6EC73FD4" ValueType="_244934BF-7049-4B4E-84EE-398E327E4419" />
758
+ <ormtooial:InformationTypeFormatIsForValueType id="_9A5FCF6A-E2D1-4386-9F4C-0A0B9762A35D" InformationTypeFormat="_5324EE04-DB54-4A20-89E9-56B666376433" ValueType="_A3D48C97-BE8A-4ABB-B838-1E4F3CBBB0B0" />
759
+ <ormtooial:InformationTypeFormatIsForValueType id="_98BD7D34-617A-4493-8403-2415CCECAFB4" InformationTypeFormat="_13FFB36D-3AA1-478F-BC6E-3891EA106D82" ValueType="_7AE7F197-26CE-445F-A75F-56279656C670" />
760
+ <ormtooial:InformationTypeFormatIsForValueType id="_C3D96C27-4FEF-4F34-95AD-60C4E31D439C" InformationTypeFormat="_61D6605E-234C-4130-B1AC-B7324C78E649" ValueType="_48FD2F08-AECF-4A1A-99BB-85454F67252C" />
761
+ <ormtooial:UniquenessIsForUniquenessConstraint id="_2EE081E9-D591-4B2E-8E0C-7C6454BFD64B" AbstractionUniquenessConstraint="_9EC8A458-2BB5-480F-9864-4BE9487A600C" ORMUniquenessConstraint="_E598BB82-D5CB-4895-924C-1DE920CD4347" />
762
+ </ormtooial:Bridge>
763
+ <oialtocdb:Bridge>
764
+ <oialtocdb:SchemaIsForAbstractionModel id="_E82FF610-6F6D-42BE-87B9-D51E08AB011E" Schema="_580D856B-5556-4310-A62B-66B92C738EC7" AbstractionModel="_A7F28498-6C5F-4FA9-9B9C-ECA4C374D8A5" />
765
+ <oialtocdb:ColumnHasConceptTypeChild id="_D5BA1135-AE74-4377-BC56-54ADC8991A48" Column="_1F203E33-13C9-4F40-8D13-4C26B989FC82" ConceptTypeChild="_E59D8859-4EA0-40BE-B884-899CC7B0533B" />
766
+ <oialtocdb:ColumnHasConceptTypeChild id="_B1BAC44C-3473-4B35-8326-6534AF40C3E3" Column="_DB948111-8356-4587-B44A-103397F919FA" ConceptTypeChild="_3DB57604-F085-4D68-872E-383B245A2291" />
767
+ <oialtocdb:ColumnHasConceptTypeChild id="_C03AD0F7-7812-4E42-9BBC-FAFF94FD4520" Column="_E3A9ABE1-D3A0-4E21-9288-2AC9FF9314E0" ConceptTypeChild="_AEF865AC-8766-446C-AFEC-F013D4AF4511" />
768
+ <oialtocdb:ColumnHasConceptTypeChild id="_6FFF4A1E-F58E-4CEB-8CB6-836211CDFD8B" Column="_E89E93E9-6B66-4E43-AC4E-DE2800695DA6" ConceptTypeChild="_6D8A14E3-5323-46F0-94B1-F258CC3D3398" />
769
+ <oialtocdb:TableIsPrimarilyForConceptType id="_5B3DCF16-CE7A-4793-B9A7-A973F91F2B39" Table="_85668456-DF96-4C7F-B1C6-44CA1437E246" ConceptType="_63BB5646-4CC6-4E70-9A09-813ED19E4FA7" />
770
+ <oialtocdb:UniquenessConstraintIsForUniqueness id="_7C27A083-8DDF-4623-A323-83586689FEB8" UniquenessConstraint="_29D70FA2-3927-4325-BA8A-46637C16496E" Uniqueness="_9EC8A458-2BB5-480F-9864-4BE9487A600C" />
771
+ </oialtocdb:Bridge>
772
+ </ormRoot:ORM2>