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,347 @@
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:ormRoot="http://schemas.neumont.edu/ORM/2006-04/ORMRoot">
3
+ <orm:ORMModel id="_18AC32DD-22C6-4DE0-B4D8-07667C987DAE" Name="MultipleSubtyping">
4
+ <orm:Objects>
5
+ <orm:EntityType id="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" Name="Person" _ReferenceMode="Name">
6
+ <orm:PlayedRoles>
7
+ <orm:Role ref="_B9CB69F0-7A53-420C-8AD3-0CF3540BB9C0" />
8
+ <orm:SupertypeMetaRole ref="_5879E1A3-73AB-4097-8BE4-03D231F2439A" />
9
+ <orm:SupertypeMetaRole ref="_B04F9FC4-D2C5-4D2B-AC83-C11699F9794A" />
10
+ <orm:SupertypeMetaRole ref="_3B66A4CF-EB3C-402F-AE89-917B47534CDF" />
11
+ <orm:SupertypeMetaRole ref="_09AF566D-EADA-43DD-85EE-DA559A8F817A" />
12
+ <orm:SupertypeMetaRole ref="_D5A9AD13-1794-4C17-AAA9-DEEE076BD0F7" />
13
+ </orm:PlayedRoles>
14
+ <orm:PreferredIdentifier ref="_0FC24DEB-FA99-422F-9A95-2CBD48864B62" />
15
+ </orm:EntityType>
16
+ <orm:ValueType id="_731B08E4-4ACF-49C1-863E-15476C55784B" Name="Person Name">
17
+ <orm:PlayedRoles>
18
+ <orm:Role ref="_0AED5780-E8C3-4A5A-A89F-8A7C272ABF47" />
19
+ </orm:PlayedRoles>
20
+ <orm:ConceptualDataType id="_8E44EB02-0FF3-4D31-8E27-805057865252" ref="_D6615F58-4CA7-4E05-B6EA-62B054F1D9F7" Scale="0" Length="0" />
21
+ </orm:ValueType>
22
+ <orm:EntityType id="_D872D3E1-BEA6-4827-9868-8FC0940AD001" Name="Child" _ReferenceMode="">
23
+ <orm:PlayedRoles>
24
+ <orm:SubtypeMetaRole ref="_E3218F5E-0A3F-4CD4-93A4-7417051BC53D" />
25
+ </orm:PlayedRoles>
26
+ </orm:EntityType>
27
+ <orm:EntityType id="_5F841DFF-55B5-443C-94E3-A159AB2E701B" Name="Teenager" _ReferenceMode="">
28
+ <orm:PlayedRoles>
29
+ <orm:SubtypeMetaRole ref="_EB37E672-CD6E-47A3-BF4A-7F76CA8A8CB0" />
30
+ </orm:PlayedRoles>
31
+ </orm:EntityType>
32
+ <orm:EntityType id="_BACF801F-99F6-46B5-8712-E53F943D0D08" Name="Adult" _ReferenceMode="">
33
+ <orm:PlayedRoles>
34
+ <orm:SubtypeMetaRole ref="_35B293FC-99FB-49B2-93C2-AB9ED9A49C6D" />
35
+ </orm:PlayedRoles>
36
+ </orm:EntityType>
37
+ <orm:EntityType id="_1E38A26F-5B4E-4854-BB2A-E9CBE8CD9FD6" Name="Male" _ReferenceMode="">
38
+ <orm:PlayedRoles>
39
+ <orm:SubtypeMetaRole ref="_72418F19-E2ED-4C60-B54B-3E4D007EF500" />
40
+ </orm:PlayedRoles>
41
+ </orm:EntityType>
42
+ <orm:EntityType id="_517CADE9-0005-4BF6-9425-B9C87D583939" Name="Female" _ReferenceMode="">
43
+ <orm:PlayedRoles>
44
+ <orm:SubtypeMetaRole ref="_686FC6B2-C952-49F6-B115-F52B3CF0D89A" />
45
+ </orm:PlayedRoles>
46
+ </orm:EntityType>
47
+ </orm:Objects>
48
+ <orm:Facts>
49
+ <orm:Fact id="_AB04F37D-76E1-4532-BE85-18F21A1CFFC1" _Name="PersonHasPersonName">
50
+ <orm:FactRoles>
51
+ <orm:Role id="_B9CB69F0-7A53-420C-8AD3-0CF3540BB9C0" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
52
+ <orm:RolePlayer ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
53
+ </orm:Role>
54
+ <orm:Role id="_0AED5780-E8C3-4A5A-A89F-8A7C272ABF47" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
55
+ <orm:RolePlayer ref="_731B08E4-4ACF-49C1-863E-15476C55784B" />
56
+ </orm:Role>
57
+ </orm:FactRoles>
58
+ <orm:ReadingOrders>
59
+ <orm:ReadingOrder id="_F1393160-B8D7-4A26-AD69-7DC73F560F1E">
60
+ <orm:Readings>
61
+ <orm:Reading id="_AEC74B2F-33B7-4D30-B2F1-924AF228B93E">
62
+ <orm:Data>{0} has {1}</orm:Data>
63
+ <orm:ExpandedData>
64
+ <orm:RoleText RoleIndex="0" FollowingText=" has " />
65
+ </orm:ExpandedData>
66
+ </orm:Reading>
67
+ </orm:Readings>
68
+ <orm:RoleSequence>
69
+ <orm:Role ref="_B9CB69F0-7A53-420C-8AD3-0CF3540BB9C0" />
70
+ <orm:Role ref="_0AED5780-E8C3-4A5A-A89F-8A7C272ABF47" />
71
+ </orm:RoleSequence>
72
+ </orm:ReadingOrder>
73
+ <orm:ReadingOrder id="_47BC3649-AED1-48CE-BEF3-63F53E0877DC">
74
+ <orm:Readings>
75
+ <orm:Reading id="_94F50B93-3C34-4174-86C4-384463641BC4">
76
+ <orm:Data>{0} is of {1}</orm:Data>
77
+ <orm:ExpandedData>
78
+ <orm:RoleText RoleIndex="0" FollowingText=" is of " />
79
+ </orm:ExpandedData>
80
+ </orm:Reading>
81
+ </orm:Readings>
82
+ <orm:RoleSequence>
83
+ <orm:Role ref="_0AED5780-E8C3-4A5A-A89F-8A7C272ABF47" />
84
+ <orm:Role ref="_B9CB69F0-7A53-420C-8AD3-0CF3540BB9C0" />
85
+ </orm:RoleSequence>
86
+ </orm:ReadingOrder>
87
+ </orm:ReadingOrders>
88
+ <orm:InternalConstraints>
89
+ <orm:UniquenessConstraint ref="_0FC24DEB-FA99-422F-9A95-2CBD48864B62" />
90
+ <orm:UniquenessConstraint ref="_8DD9D83A-A2ED-44A3-9931-90485FC5EED6" />
91
+ <orm:MandatoryConstraint ref="_55F4418E-E970-4CBE-BD0F-3C186AF7D2AB" />
92
+ </orm:InternalConstraints>
93
+ </orm:Fact>
94
+ <orm:SubtypeFact id="_4DF4B557-0F17-42CE-913F-AA06236FED5D" _Name="ChildIsASubtypeOfPerson" PreferredIdentificationPath="true">
95
+ <orm:FactRoles>
96
+ <orm:SubtypeMetaRole id="_E3218F5E-0A3F-4CD4-93A4-7417051BC53D" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
97
+ <orm:RolePlayer ref="_D872D3E1-BEA6-4827-9868-8FC0940AD001" />
98
+ </orm:SubtypeMetaRole>
99
+ <orm:SupertypeMetaRole id="_5879E1A3-73AB-4097-8BE4-03D231F2439A" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
100
+ <orm:RolePlayer ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
101
+ </orm:SupertypeMetaRole>
102
+ </orm:FactRoles>
103
+ <orm:InternalConstraints>
104
+ <orm:MandatoryConstraint ref="_E535D832-51EC-42B5-BD1E-8C59FA3818A2" />
105
+ <orm:UniquenessConstraint ref="_DEDE35A4-770D-45B8-B85C-C8EE2D993156" />
106
+ <orm:UniquenessConstraint ref="_DEBD2DE9-50DB-4B13-9F86-720766E4628E" />
107
+ </orm:InternalConstraints>
108
+ </orm:SubtypeFact>
109
+ <orm:SubtypeFact id="_58E127F6-15E6-4A58-83FD-0E8F42A8DC46" _Name="TeenagerIsASubtypeOfPerson" PreferredIdentificationPath="true">
110
+ <orm:FactRoles>
111
+ <orm:SubtypeMetaRole id="_EB37E672-CD6E-47A3-BF4A-7F76CA8A8CB0" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
112
+ <orm:RolePlayer ref="_5F841DFF-55B5-443C-94E3-A159AB2E701B" />
113
+ </orm:SubtypeMetaRole>
114
+ <orm:SupertypeMetaRole id="_B04F9FC4-D2C5-4D2B-AC83-C11699F9794A" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
115
+ <orm:RolePlayer ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
116
+ </orm:SupertypeMetaRole>
117
+ </orm:FactRoles>
118
+ <orm:InternalConstraints>
119
+ <orm:MandatoryConstraint ref="_DAD7E71F-5C1F-45E3-B480-EC7C346FC6BA" />
120
+ <orm:UniquenessConstraint ref="_3B78A3CE-B22C-486C-9CD8-EEEEB68B471D" />
121
+ <orm:UniquenessConstraint ref="_CC90BF0E-60D4-4CDB-BC74-18ED532ACF84" />
122
+ </orm:InternalConstraints>
123
+ </orm:SubtypeFact>
124
+ <orm:SubtypeFact id="_EC076B96-0253-4D39-8A0E-03C7C3F64AE6" _Name="AdultIsASubtypeOfPerson" PreferredIdentificationPath="true">
125
+ <orm:FactRoles>
126
+ <orm:SubtypeMetaRole id="_35B293FC-99FB-49B2-93C2-AB9ED9A49C6D" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
127
+ <orm:RolePlayer ref="_BACF801F-99F6-46B5-8712-E53F943D0D08" />
128
+ </orm:SubtypeMetaRole>
129
+ <orm:SupertypeMetaRole id="_3B66A4CF-EB3C-402F-AE89-917B47534CDF" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
130
+ <orm:RolePlayer ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
131
+ </orm:SupertypeMetaRole>
132
+ </orm:FactRoles>
133
+ <orm:InternalConstraints>
134
+ <orm:MandatoryConstraint ref="_E29D5D55-5F05-4097-943F-1C4C3F431FBE" />
135
+ <orm:UniquenessConstraint ref="_CE9B649D-BA4C-48AF-9C1A-7D478E79925C" />
136
+ <orm:UniquenessConstraint ref="_25BB50D4-1638-4AB5-9E28-492F9C184924" />
137
+ </orm:InternalConstraints>
138
+ </orm:SubtypeFact>
139
+ <orm:SubtypeFact id="_D413EE26-B4E8-483F-81E5-114205A97EAA" _Name="MaleIsASubtypeOfPerson" PreferredIdentificationPath="true">
140
+ <orm:FactRoles>
141
+ <orm:SubtypeMetaRole id="_72418F19-E2ED-4C60-B54B-3E4D007EF500" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
142
+ <orm:RolePlayer ref="_1E38A26F-5B4E-4854-BB2A-E9CBE8CD9FD6" />
143
+ </orm:SubtypeMetaRole>
144
+ <orm:SupertypeMetaRole id="_09AF566D-EADA-43DD-85EE-DA559A8F817A" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
145
+ <orm:RolePlayer ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
146
+ </orm:SupertypeMetaRole>
147
+ </orm:FactRoles>
148
+ <orm:InternalConstraints>
149
+ <orm:MandatoryConstraint ref="_79FF5BF5-4562-4112-B4B7-C868D5DEEA96" />
150
+ <orm:UniquenessConstraint ref="_006BE896-EB71-49E1-BD46-5DE801D8C039" />
151
+ <orm:UniquenessConstraint ref="_2D0F4B72-6C5D-4119-A284-9C2F1D971A12" />
152
+ </orm:InternalConstraints>
153
+ </orm:SubtypeFact>
154
+ <orm:SubtypeFact id="_8EB0F7AC-C86E-46CE-84DD-0B6FDE635847" _Name="FemaleIsASubtypeOfPerson" PreferredIdentificationPath="true">
155
+ <orm:FactRoles>
156
+ <orm:SubtypeMetaRole id="_686FC6B2-C952-49F6-B115-F52B3CF0D89A" _IsMandatory="true" _Multiplicity="ZeroToOne" Name="">
157
+ <orm:RolePlayer ref="_517CADE9-0005-4BF6-9425-B9C87D583939" />
158
+ </orm:SubtypeMetaRole>
159
+ <orm:SupertypeMetaRole id="_D5A9AD13-1794-4C17-AAA9-DEEE076BD0F7" _IsMandatory="false" _Multiplicity="ExactlyOne" Name="">
160
+ <orm:RolePlayer ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
161
+ </orm:SupertypeMetaRole>
162
+ </orm:FactRoles>
163
+ <orm:InternalConstraints>
164
+ <orm:MandatoryConstraint ref="_9CF844F0-03A0-4FA5-B9D8-6456DC3010E4" />
165
+ <orm:UniquenessConstraint ref="_F9248802-8E47-4F91-96C7-C5D7272CB7EC" />
166
+ <orm:UniquenessConstraint ref="_A9BDC21F-A0E7-4267-B59E-774A3F09C739" />
167
+ </orm:InternalConstraints>
168
+ </orm:SubtypeFact>
169
+ </orm:Facts>
170
+ <orm:Constraints>
171
+ <orm:UniquenessConstraint id="_0FC24DEB-FA99-422F-9A95-2CBD48864B62" Name="InternalUniquenessConstraint1" IsInternal="true">
172
+ <orm:RoleSequence>
173
+ <orm:Role id="_07D55CA5-3777-468F-8929-4A11B0FDC97D" ref="_0AED5780-E8C3-4A5A-A89F-8A7C272ABF47" />
174
+ </orm:RoleSequence>
175
+ <orm:PreferredIdentifierFor ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
176
+ </orm:UniquenessConstraint>
177
+ <orm:UniquenessConstraint id="_8DD9D83A-A2ED-44A3-9931-90485FC5EED6" Name="InternalUniquenessConstraint2" IsInternal="true">
178
+ <orm:RoleSequence>
179
+ <orm:Role id="_4332D6BC-C4E3-4F31-BB6B-7ADBDA78DE80" ref="_B9CB69F0-7A53-420C-8AD3-0CF3540BB9C0" />
180
+ </orm:RoleSequence>
181
+ </orm:UniquenessConstraint>
182
+ <orm:MandatoryConstraint id="_55F4418E-E970-4CBE-BD0F-3C186AF7D2AB" Name="SimpleMandatoryConstraint1" IsSimple="true">
183
+ <orm:RoleSequence>
184
+ <orm:Role id="_480AECFF-81A9-4EC1-85DE-6E24D0DDDE8B" ref="_B9CB69F0-7A53-420C-8AD3-0CF3540BB9C0" />
185
+ </orm:RoleSequence>
186
+ </orm:MandatoryConstraint>
187
+ <orm:MandatoryConstraint id="_5F41299A-CC9A-4591-9EA6-8E2D9E579C61" Name="ImpliedMandatoryConstraint1" IsImplied="true">
188
+ <orm:RoleSequence>
189
+ <orm:Role id="_8E6343B9-6D2D-4970-98F9-ECF525812BA8" ref="_0AED5780-E8C3-4A5A-A89F-8A7C272ABF47" />
190
+ </orm:RoleSequence>
191
+ <orm:ImpliedByObjectType ref="_731B08E4-4ACF-49C1-863E-15476C55784B" />
192
+ </orm:MandatoryConstraint>
193
+ <orm:MandatoryConstraint id="_E535D832-51EC-42B5-BD1E-8C59FA3818A2" Name="SimpleMandatoryConstraint2" IsSimple="true">
194
+ <orm:RoleSequence>
195
+ <orm:Role id="_B25998D5-790F-4F4E-9B74-993B7293EEE6" ref="_E3218F5E-0A3F-4CD4-93A4-7417051BC53D" />
196
+ </orm:RoleSequence>
197
+ </orm:MandatoryConstraint>
198
+ <orm:UniquenessConstraint id="_DEDE35A4-770D-45B8-B85C-C8EE2D993156" Name="InternalUniquenessConstraint3" IsInternal="true">
199
+ <orm:RoleSequence>
200
+ <orm:Role id="_7606B0EE-38F0-48A3-AC59-0C3E45F757EA" ref="_E3218F5E-0A3F-4CD4-93A4-7417051BC53D" />
201
+ </orm:RoleSequence>
202
+ </orm:UniquenessConstraint>
203
+ <orm:UniquenessConstraint id="_DEBD2DE9-50DB-4B13-9F86-720766E4628E" Name="InternalUniquenessConstraint4" IsInternal="true">
204
+ <orm:RoleSequence>
205
+ <orm:Role id="_2DEB218E-96BC-4165-AF45-1D8FE2B61CAB" ref="_5879E1A3-73AB-4097-8BE4-03D231F2439A" />
206
+ </orm:RoleSequence>
207
+ </orm:UniquenessConstraint>
208
+ <orm:MandatoryConstraint id="_DAD7E71F-5C1F-45E3-B480-EC7C346FC6BA" Name="SimpleMandatoryConstraint3" IsSimple="true">
209
+ <orm:RoleSequence>
210
+ <orm:Role id="_71DA4ADF-7629-4E1E-8ABB-D7D44BD58012" ref="_EB37E672-CD6E-47A3-BF4A-7F76CA8A8CB0" />
211
+ </orm:RoleSequence>
212
+ </orm:MandatoryConstraint>
213
+ <orm:UniquenessConstraint id="_3B78A3CE-B22C-486C-9CD8-EEEEB68B471D" Name="InternalUniquenessConstraint5" IsInternal="true">
214
+ <orm:RoleSequence>
215
+ <orm:Role id="_12F7474C-0922-4CA6-8431-A0B5B9550FB1" ref="_EB37E672-CD6E-47A3-BF4A-7F76CA8A8CB0" />
216
+ </orm:RoleSequence>
217
+ </orm:UniquenessConstraint>
218
+ <orm:UniquenessConstraint id="_CC90BF0E-60D4-4CDB-BC74-18ED532ACF84" Name="InternalUniquenessConstraint6" IsInternal="true">
219
+ <orm:RoleSequence>
220
+ <orm:Role id="_07A138F3-5167-405E-AA1A-B3A6498A0028" ref="_B04F9FC4-D2C5-4D2B-AC83-C11699F9794A" />
221
+ </orm:RoleSequence>
222
+ </orm:UniquenessConstraint>
223
+ <orm:MandatoryConstraint id="_E29D5D55-5F05-4097-943F-1C4C3F431FBE" Name="SimpleMandatoryConstraint4" IsSimple="true">
224
+ <orm:RoleSequence>
225
+ <orm:Role id="_1C5BCAD7-F343-4682-B1B9-BC1FA4143EA6" ref="_35B293FC-99FB-49B2-93C2-AB9ED9A49C6D" />
226
+ </orm:RoleSequence>
227
+ </orm:MandatoryConstraint>
228
+ <orm:UniquenessConstraint id="_CE9B649D-BA4C-48AF-9C1A-7D478E79925C" Name="InternalUniquenessConstraint7" IsInternal="true">
229
+ <orm:RoleSequence>
230
+ <orm:Role id="_98F513F7-0017-411F-AB48-50807C91CDC9" ref="_35B293FC-99FB-49B2-93C2-AB9ED9A49C6D" />
231
+ </orm:RoleSequence>
232
+ </orm:UniquenessConstraint>
233
+ <orm:UniquenessConstraint id="_25BB50D4-1638-4AB5-9E28-492F9C184924" Name="InternalUniquenessConstraint8" IsInternal="true">
234
+ <orm:RoleSequence>
235
+ <orm:Role id="_9BD998C4-DB22-4FB3-B405-13FCE995F477" ref="_3B66A4CF-EB3C-402F-AE89-917B47534CDF" />
236
+ </orm:RoleSequence>
237
+ </orm:UniquenessConstraint>
238
+ <orm:MandatoryConstraint id="_E8820A23-EB00-4825-A3E8-37289CD58990" Name="InclusiveOrConstraint1">
239
+ <orm:RoleSequence>
240
+ <orm:Role id="_A99C8BC7-CDC5-4823-8D3F-EAF5186B37BF" ref="_5879E1A3-73AB-4097-8BE4-03D231F2439A" />
241
+ <orm:Role id="_83DC81D7-21F2-49CB-AB6E-1B8446CF13B8" ref="_B04F9FC4-D2C5-4D2B-AC83-C11699F9794A" />
242
+ <orm:Role id="_A6842900-CED6-4CCF-9B4A-2507F4EFA04A" ref="_3B66A4CF-EB3C-402F-AE89-917B47534CDF" />
243
+ </orm:RoleSequence>
244
+ <orm:ExclusiveOrExclusionConstraint ref="_4D1A5B59-E0FB-4258-9681-29C3BFC319F9" />
245
+ </orm:MandatoryConstraint>
246
+ <orm:MandatoryConstraint id="_79FF5BF5-4562-4112-B4B7-C868D5DEEA96" Name="SimpleMandatoryConstraint5" IsSimple="true">
247
+ <orm:RoleSequence>
248
+ <orm:Role id="_209A2A9C-EA02-4E68-8F5D-36E19BC06395" ref="_72418F19-E2ED-4C60-B54B-3E4D007EF500" />
249
+ </orm:RoleSequence>
250
+ </orm:MandatoryConstraint>
251
+ <orm:UniquenessConstraint id="_006BE896-EB71-49E1-BD46-5DE801D8C039" Name="InternalUniquenessConstraint9" IsInternal="true">
252
+ <orm:RoleSequence>
253
+ <orm:Role id="_2F08E61F-97B2-4ABA-B882-F05B530364A1" ref="_72418F19-E2ED-4C60-B54B-3E4D007EF500" />
254
+ </orm:RoleSequence>
255
+ </orm:UniquenessConstraint>
256
+ <orm:UniquenessConstraint id="_2D0F4B72-6C5D-4119-A284-9C2F1D971A12" Name="InternalUniquenessConstraint10" IsInternal="true">
257
+ <orm:RoleSequence>
258
+ <orm:Role id="_68C23256-CEB9-478C-AF73-93B583C22537" ref="_09AF566D-EADA-43DD-85EE-DA559A8F817A" />
259
+ </orm:RoleSequence>
260
+ </orm:UniquenessConstraint>
261
+ <orm:MandatoryConstraint id="_9CF844F0-03A0-4FA5-B9D8-6456DC3010E4" Name="SimpleMandatoryConstraint6" IsSimple="true">
262
+ <orm:RoleSequence>
263
+ <orm:Role id="_08395E30-7122-4D92-B912-8A54E4A96AA5" ref="_686FC6B2-C952-49F6-B115-F52B3CF0D89A" />
264
+ </orm:RoleSequence>
265
+ </orm:MandatoryConstraint>
266
+ <orm:UniquenessConstraint id="_F9248802-8E47-4F91-96C7-C5D7272CB7EC" Name="InternalUniquenessConstraint11" IsInternal="true">
267
+ <orm:RoleSequence>
268
+ <orm:Role id="_00243F76-E9A7-436A-B8AD-D8B1F6A8C90D" ref="_686FC6B2-C952-49F6-B115-F52B3CF0D89A" />
269
+ </orm:RoleSequence>
270
+ </orm:UniquenessConstraint>
271
+ <orm:UniquenessConstraint id="_A9BDC21F-A0E7-4267-B59E-774A3F09C739" Name="InternalUniquenessConstraint12" IsInternal="true">
272
+ <orm:RoleSequence>
273
+ <orm:Role id="_E9B2BD75-48AD-43BB-9B63-8AD156008271" ref="_D5A9AD13-1794-4C17-AAA9-DEEE076BD0F7" />
274
+ </orm:RoleSequence>
275
+ </orm:UniquenessConstraint>
276
+ <orm:MandatoryConstraint id="_E41D1C80-FE7A-4855-A0E4-123785B2623F" Name="InclusiveOrConstraint2">
277
+ <orm:RoleSequence>
278
+ <orm:Role id="_CB8FA6FE-C2C0-4A24-B361-24EE2DEFD943" ref="_09AF566D-EADA-43DD-85EE-DA559A8F817A" />
279
+ <orm:Role id="_EC4000BA-8A2F-4786-B996-375168896354" ref="_D5A9AD13-1794-4C17-AAA9-DEEE076BD0F7" />
280
+ </orm:RoleSequence>
281
+ <orm:ExclusiveOrExclusionConstraint ref="_A95D1807-CF85-43EA-9E8C-D75EDB5EB3B9" />
282
+ </orm:MandatoryConstraint>
283
+ <orm:ExclusionConstraint id="_4D1A5B59-E0FB-4258-9681-29C3BFC319F9" Name="ExclusiveOrConstraint1">
284
+ <orm:RoleSequences>
285
+ <orm:RoleSequence id="_43ABEFCB-2FE7-4141-933F-C2C6520D5785">
286
+ <orm:Role id="_3CD68B4F-D591-4803-8B6C-0770DF5397AF" ref="_5879E1A3-73AB-4097-8BE4-03D231F2439A" />
287
+ </orm:RoleSequence>
288
+ <orm:RoleSequence id="_3B972B32-5DD4-484A-BA19-91841084494E">
289
+ <orm:Role id="_DF827E0A-0874-4FC1-928A-851255C8CA31" ref="_B04F9FC4-D2C5-4D2B-AC83-C11699F9794A" />
290
+ </orm:RoleSequence>
291
+ <orm:RoleSequence id="_FC41435A-D110-404A-93CF-425CC517E16E">
292
+ <orm:Role id="_EF5861D3-4D5A-48CE-BE76-6C4A617044C3" ref="_3B66A4CF-EB3C-402F-AE89-917B47534CDF" />
293
+ </orm:RoleSequence>
294
+ </orm:RoleSequences>
295
+ <orm:ExclusiveOrMandatoryConstraint ref="_E8820A23-EB00-4825-A3E8-37289CD58990" />
296
+ </orm:ExclusionConstraint>
297
+ <orm:ExclusionConstraint id="_A95D1807-CF85-43EA-9E8C-D75EDB5EB3B9" Name="ExclusiveOrConstraint2">
298
+ <orm:RoleSequences>
299
+ <orm:RoleSequence id="_B6801037-630A-4CC2-9834-BEF86FEE5A02">
300
+ <orm:Role id="_29C60757-1700-4AA3-96BD-00F27CC154A3" ref="_09AF566D-EADA-43DD-85EE-DA559A8F817A" />
301
+ </orm:RoleSequence>
302
+ <orm:RoleSequence id="_AF4C56C0-3ED6-4194-BE70-F028D9B382F7">
303
+ <orm:Role id="_2190D0D2-BBF1-4BDE-948C-8D2E395C53F5" ref="_D5A9AD13-1794-4C17-AAA9-DEEE076BD0F7" />
304
+ </orm:RoleSequence>
305
+ </orm:RoleSequences>
306
+ <orm:ExclusiveOrMandatoryConstraint ref="_E41D1C80-FE7A-4855-A0E4-123785B2623F" />
307
+ </orm:ExclusionConstraint>
308
+ </orm:Constraints>
309
+ <orm:DataTypes>
310
+ <orm:VariableLengthTextDataType id="_D6615F58-4CA7-4E05-B6EA-62B054F1D9F7" />
311
+ </orm:DataTypes>
312
+ <orm:ReferenceModeKinds>
313
+ <orm:ReferenceModeKind id="_CF6A02BF-7AD8-4ECB-8259-91350EC9AD5E" FormatString="{1}" ReferenceModeType="General" />
314
+ <orm:ReferenceModeKind id="_C0454F46-EBFE-478E-986F-A8F7CF7D038C" FormatString="{0} {1}" ReferenceModeType="Popular" />
315
+ <orm:ReferenceModeKind id="_A75B52E2-46E4-4508-AE79-58E676FCE3BA" FormatString="{1}Value" ReferenceModeType="UnitBased" />
316
+ </orm:ReferenceModeKinds>
317
+ </orm:ORMModel>
318
+ <ormDiagram:ORMDiagram id="_DD8966BA-EE5D-4668-830E-552F58880C34" IsCompleteView="false" Name="MultipleSubtyping" BaseFontName="Tahoma" BaseFontSize="0.0972222238779068">
319
+ <ormDiagram:Shapes>
320
+ <ormDiagram:ObjectTypeShape id="_E4E7DCD1-8F09-48B2-9E0D-8EDE7AE3B443" IsExpanded="true" AbsoluteBounds="1.8854167858759561, 0.91666666666666663, 0.56669368863105773, 0.35900605320930479">
321
+ <ormDiagram:Subject ref="_6F6CA13D-E9AB-42E2-BA0A-7562D6CCCBD2" />
322
+ </ormDiagram:ObjectTypeShape>
323
+ <ormDiagram:ObjectTypeShape id="_C5684E4E-440D-40D4-827E-77C58F9B5111" IsExpanded="true" AbsoluteBounds="0.66073457984871165, 1.7916665871938076, 0.40685617446899419, 0.22950302660465241">
324
+ <ormDiagram:Subject ref="_D872D3E1-BEA6-4827-9868-8FC0940AD001" />
325
+ </ormDiagram:ObjectTypeShape>
326
+ <ormDiagram:ObjectTypeShape id="_C88B3744-3B08-4EBD-AC25-FB68070FD741" IsExpanded="true" AbsoluteBounds="1.1354166666666665, 1.7916665871938076, 0.62256794691085815, 0.22950302660465241">
327
+ <ormDiagram:Subject ref="_5F841DFF-55B5-443C-94E3-A159AB2E701B" />
328
+ </ormDiagram:ObjectTypeShape>
329
+ <ormDiagram:ObjectTypeShape id="_74DBBB5C-42BC-43B9-80B7-2E8CCABC59AC" IsExpanded="true" AbsoluteBounds="1.8229166269302368, 1.7916665871938076, 0.4199583780765534, 0.22950302660465241">
330
+ <ormDiagram:Subject ref="_BACF801F-99F6-46B5-8712-E53F943D0D08" />
331
+ </ormDiagram:ObjectTypeShape>
332
+ <ormDiagram:ExternalConstraintShape id="_101E905B-BF78-48C5-8A51-4E9D8098BB22" IsExpanded="true" AbsoluteBounds="1.8229167064030962, 1.5625, 0.16, 0.16">
333
+ <ormDiagram:Subject ref="_E8820A23-EB00-4825-A3E8-37289CD58990" />
334
+ </ormDiagram:ExternalConstraintShape>
335
+ <ormDiagram:ObjectTypeShape id="_3C51BAF1-2E38-403A-A81A-F7831FB9D095" IsExpanded="true" AbsoluteBounds="2.4270832935969033, 1.7916665871938071, 0.39147531509399419, 0.22950302660465241">
336
+ <ormDiagram:Subject ref="_1E38A26F-5B4E-4854-BB2A-E9CBE8CD9FD6" />
337
+ </ormDiagram:ObjectTypeShape>
338
+ <ormDiagram:ObjectTypeShape id="_EFE763D7-3B25-44C5-A89E-27C3DA15E59B" IsExpanded="true" AbsoluteBounds="2.8958333730697627, 1.7916665871938071, 0.51518681168556224, 0.22950302660465241">
339
+ <ormDiagram:Subject ref="_517CADE9-0005-4BF6-9425-B9C87D583939" />
340
+ </ormDiagram:ObjectTypeShape>
341
+ <ormDiagram:ExternalConstraintShape id="_A9B97EE4-D87C-41FE-99CB-EB43A6470A02" IsExpanded="true" AbsoluteBounds="2.541666865348815, 1.572916666666667, 0.16, 0.16">
342
+ <ormDiagram:Subject ref="_E41D1C80-FE7A-4855-A0E4-123785B2623F" />
343
+ </ormDiagram:ExternalConstraintShape>
344
+ </ormDiagram:Shapes>
345
+ <ormDiagram:Subject ref="_18AC32DD-22C6-4DE0-B4D8-07667C987DAE" />
346
+ </ormDiagram:ORMDiagram>
347
+ </ormRoot:ORM2>