activefacts-examples 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>