followthemoney 3.6.3__py2.py3-none-any.whl → 3.7.0__py2.py3-none-any.whl

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 (93) hide show
  1. followthemoney/__init__.py +1 -1
  2. followthemoney/mapping/entity.py +15 -6
  3. followthemoney/proxy.py +4 -4
  4. followthemoney/schema/Airplane.yaml +2 -1
  5. followthemoney/schema/Article.yaml +2 -1
  6. followthemoney/schema/Assessment.yaml +2 -1
  7. followthemoney/schema/Associate.yaml +4 -2
  8. followthemoney/schema/Audio.yaml +2 -1
  9. followthemoney/schema/BankAccount.yaml +3 -2
  10. followthemoney/schema/Contract.yaml +2 -1
  11. followthemoney/schema/ContractAward.yaml +2 -1
  12. followthemoney/schema/CourtCase.yaml +2 -1
  13. followthemoney/schema/CourtCaseParty.yaml +4 -2
  14. followthemoney/schema/Debt.yaml +2 -1
  15. followthemoney/schema/Directorship.yaml +4 -2
  16. followthemoney/schema/Documentation.yml +5 -3
  17. followthemoney/schema/Employment.yaml +4 -2
  18. followthemoney/schema/Family.yaml +4 -2
  19. followthemoney/schema/Folder.yaml +2 -1
  20. followthemoney/schema/HyperText.yaml +2 -1
  21. followthemoney/schema/Identification.yaml +2 -1
  22. followthemoney/schema/Image.yaml +2 -1
  23. followthemoney/schema/Interest.yaml +2 -1
  24. followthemoney/schema/LegalEntity.yaml +2 -1
  25. followthemoney/schema/Membership.yaml +4 -2
  26. followthemoney/schema/Occupancy.yaml +2 -1
  27. followthemoney/schema/Organization.yaml +3 -2
  28. followthemoney/schema/Ownership.yaml +4 -2
  29. followthemoney/schema/Package.yaml +2 -1
  30. followthemoney/schema/Pages.yaml +2 -1
  31. followthemoney/schema/Passport.yaml +2 -1
  32. followthemoney/schema/Person.yaml +14 -1
  33. followthemoney/schema/PlainText.yaml +2 -1
  34. followthemoney/schema/Position.yaml +3 -2
  35. followthemoney/schema/Post.yaml +3 -2
  36. followthemoney/schema/Project.yaml +1 -1
  37. followthemoney/schema/ProjectParticipant.yaml +4 -2
  38. followthemoney/schema/PublicBody.yaml +2 -1
  39. followthemoney/schema/RealEstate.yaml +2 -1
  40. followthemoney/schema/Representation.yaml +4 -2
  41. followthemoney/schema/Sanction.yaml +2 -1
  42. followthemoney/schema/Security.yaml +2 -1
  43. followthemoney/schema/Succession.yaml +4 -2
  44. followthemoney/schema/Table.yaml +2 -1
  45. followthemoney/schema/TaxRoll.yaml +2 -1
  46. followthemoney/schema/UnknownLink.yaml +4 -2
  47. followthemoney/schema/Vehicle.yaml +2 -1
  48. followthemoney/schema/Vessel.yaml +2 -1
  49. followthemoney/schema/Video.yaml +2 -1
  50. followthemoney/schema/Workbook.yaml +2 -1
  51. followthemoney/translations/ar/LC_MESSAGES/followthemoney.mo +0 -0
  52. followthemoney/translations/ar/LC_MESSAGES/followthemoney.po +5 -5
  53. followthemoney/translations/bs/LC_MESSAGES/followthemoney.mo +0 -0
  54. followthemoney/translations/bs/LC_MESSAGES/followthemoney.po +3 -3
  55. followthemoney/translations/de/LC_MESSAGES/followthemoney.mo +0 -0
  56. followthemoney/translations/de/LC_MESSAGES/followthemoney.po +5 -5
  57. followthemoney/translations/es/LC_MESSAGES/followthemoney.mo +0 -0
  58. followthemoney/translations/es/LC_MESSAGES/followthemoney.po +5 -5
  59. followthemoney/translations/fr/LC_MESSAGES/followthemoney.mo +0 -0
  60. followthemoney/translations/fr/LC_MESSAGES/followthemoney.po +5 -5
  61. followthemoney/translations/fr/followthemoney.po +3 -3
  62. followthemoney/translations/messages.pot +143 -60
  63. followthemoney/translations/nb/LC_MESSAGES/followthemoney.mo +0 -0
  64. followthemoney/translations/nb/LC_MESSAGES/followthemoney.po +3 -3
  65. followthemoney/translations/nl/LC_MESSAGES/followthemoney.mo +0 -0
  66. followthemoney/translations/nl/LC_MESSAGES/followthemoney.po +3 -3
  67. followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.mo +0 -0
  68. followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.po +3 -3
  69. followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
  70. followthemoney/translations/ru/LC_MESSAGES/followthemoney.po +5 -5
  71. followthemoney/translations/ru/followthemoney.po +4 -4
  72. followthemoney/translations/tr/LC_MESSAGES/followthemoney.mo +0 -0
  73. followthemoney/translations/tr/LC_MESSAGES/followthemoney.po +3 -3
  74. followthemoney/types/checksum.py +1 -0
  75. followthemoney/types/common.py +12 -4
  76. followthemoney/types/country.py +1 -0
  77. followthemoney/types/date.py +1 -0
  78. followthemoney/types/gender.py +1 -0
  79. followthemoney/types/iban.py +4 -1
  80. followthemoney/types/identifier.py +1 -0
  81. followthemoney/types/ip.py +1 -0
  82. followthemoney/types/language.py +1 -0
  83. followthemoney/types/phone.py +1 -0
  84. followthemoney/types/string.py +5 -2
  85. followthemoney/types/topic.py +4 -0
  86. followthemoney/types/url.py +1 -0
  87. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/METADATA +36 -40
  88. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/RECORD +93 -93
  89. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/WHEEL +1 -1
  90. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/entry_points.txt +0 -1
  91. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/LICENSE +0 -0
  92. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/namespace_packages.txt +0 -0
  93. {followthemoney-3.6.3.dist-info → followthemoney-3.7.0.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@ import os
3
3
  from followthemoney.model import Model
4
4
  from followthemoney.util import set_model_locale
5
5
 
6
- __version__ = "3.6.3"
6
+ __version__ = "3.7.0"
7
7
 
8
8
 
9
9
  model_path = os.path.dirname(__file__)
@@ -20,7 +20,6 @@ log = logging.getLogger(__name__)
20
20
 
21
21
 
22
22
  class EntityMapping(object):
23
-
24
23
  __slots__ = (
25
24
  "model",
26
25
  "name",
@@ -117,22 +116,30 @@ class EntityMapping(object):
117
116
  if prop.prop.type == registry.country:
118
117
  discarded_values = prop.map(proxy, record, entities)
119
118
  for value in discarded_values:
120
- log.warn(f"[{self.name}] Discarded unclean value \"{value}\" for property \"{prop.prop.qname}\".")
119
+ log.warning(
120
+ f'[{self.name}] Discarded unclean value "{value}" for property "{prop.prop.qname}".'
121
+ )
121
122
 
122
123
  for prop in self.properties:
123
124
  if prop.prop.type != registry.country:
124
125
  discarded_values = prop.map(proxy, record, entities)
125
126
  for value in discarded_values:
126
- log.warn(f"[{self.name}] Discarding unclean value \"{value}\" for property \"{prop.prop.qname}\".")
127
+ log.warning(
128
+ f'[{self.name}] Discarding unclean value "{value}" for property "{prop.prop.qname}".'
129
+ )
127
130
 
128
131
  # Generate the ID at the end to avoid self-reference checks on empty
129
132
  # keys.
130
133
  proxy.id = self.compute_key(record)
131
134
  if proxy.id is None:
132
135
  if self.id_column:
133
- log.warn(f"[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in the \"{self.id_column}\" column.")
136
+ log.warning(
137
+ f'[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in the "{self.id_column}" column.'
138
+ )
134
139
  if self.keys:
135
- log.warn(f"[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in key columns.")
140
+ log.warning(
141
+ f"[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in key columns."
142
+ )
136
143
  return None
137
144
 
138
145
  for prop in self.properties:
@@ -141,7 +148,9 @@ class EntityMapping(object):
141
148
  # the mapping, not in the model. Basically it means: if
142
149
  # this row of source data doesn't have that field, then do
143
150
  # not map it again.
144
- log.warn(f"[{self.name}] Skipping entity because required property \"{prop.prop.name}\" is empty.")
151
+ log.warning(
152
+ f'[{self.name}] Skipping entity because required property "{prop.prop.name}" is empty.'
153
+ )
145
154
  return None
146
155
  return proxy
147
156
 
followthemoney/proxy.py CHANGED
@@ -220,8 +220,8 @@ class EntityProxy(object):
220
220
  # Somewhat hacky: limit the maximum size of any particular
221
221
  # field to avoid overloading upstream aleph/elasticsearch.
222
222
  value_size = len(value)
223
- if prop.type.max_size is not None:
224
- if self._size + value_size > prop.type.max_size:
223
+ if prop.type.total_size is not None:
224
+ if self._size + value_size > prop.type.total_size:
225
225
  # msg = "[%s] too large. Rejecting additional values."
226
226
  # log.warning(msg, prop.name)
227
227
  return None
@@ -309,7 +309,7 @@ class EntityProxy(object):
309
309
  if self.schema.source_prop is not None and self.schema.target_prop is not None:
310
310
  sources = self.get(self.schema.source_prop)
311
311
  targets = self.get(self.schema.target_prop)
312
- for (source, target) in product(sources, targets):
312
+ for source, target in product(sources, targets):
313
313
  yield (source, target)
314
314
 
315
315
  def get_type_values(
@@ -414,7 +414,7 @@ class EntityProxy(object):
414
414
  for a more generous matching approach than the actual country values."""
415
415
  countries = set(self.countries)
416
416
  if not len(countries):
417
- for (prop, value) in self.itervalues():
417
+ for prop, value in self.itervalues():
418
418
  hint = prop.type.country_hint(value)
419
419
  if hint is not None:
420
420
  countries.add(hint)
@@ -1,7 +1,8 @@
1
1
  Airplane:
2
2
  label: Airplane
3
3
  plural: Airplanes
4
- extends: Vehicle
4
+ extends:
5
+ - Vehicle
5
6
  description: >
6
7
  An airplane, helicopter or other flying vehicle.
7
8
  matchable: true
@@ -1,5 +1,6 @@
1
1
  Article:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Article
4
5
  plural: Articles
5
6
  description: >
@@ -2,7 +2,8 @@ Assessment:
2
2
  # This is overly specific yet not useful. Should we phase it out?
3
3
  label: Assessment
4
4
  plural: Assessments
5
- extends: Thing
5
+ extends:
6
+ - Thing
6
7
  matchable: false
7
8
  featured:
8
9
  - name
@@ -2,7 +2,8 @@ Associate:
2
2
  label: "Associate"
3
3
  plural: "Associates"
4
4
  description: "Non-family association between two people"
5
- extends: Interval
5
+ extends:
6
+ - Interval
6
7
  matchable: false
7
8
  featured:
8
9
  - person
@@ -16,7 +17,8 @@ Associate:
16
17
  label: "associated with"
17
18
  target: associate
18
19
  directed: false
19
- caption: relationship
20
+ caption:
21
+ - relationship
20
22
  properties:
21
23
  person:
22
24
  label: "Person"
@@ -1,5 +1,6 @@
1
1
  Audio:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Audio
4
5
  plural: Audio files
5
6
  matchable: false
@@ -1,9 +1,10 @@
1
1
  BankAccount:
2
2
  label: Bank account
3
3
  plural: Bank accounts
4
- extends: Asset
4
+ extends:
5
+ - Asset
5
6
  description: >
6
- An account held at a bank and controlled by an owner. This may also be used
7
+ An account held at a bank and controlled by an owner. This may also be used
7
8
  to describe more complex arrangements like correspondent bank settlement accounts.
8
9
  matchable: true
9
10
  featured:
@@ -4,7 +4,8 @@ Contract:
4
4
  description: >
5
5
  An contract or contract lot issued by an authority. Multiple lots
6
6
  may be awarded to different suppliers (see ContractAward).
7
- extends: Asset
7
+ extends:
8
+ - Asset
8
9
  matchable: false
9
10
  featured:
10
11
  - title
@@ -20,7 +20,8 @@ ContractAward:
20
20
  label: "awarded to"
21
21
  target: supplier
22
22
  directed: true
23
- caption: lotNumber
23
+ caption:
24
+ - lotNumber
24
25
  properties:
25
26
  supplier:
26
27
  label: "Supplier"
@@ -1,7 +1,8 @@
1
1
  CourtCase:
2
2
  label: Court case
3
3
  plural: Court cases
4
- extends: Thing
4
+ extends:
5
+ - Thing
5
6
  matchable: false
6
7
  featured:
7
8
  - name
@@ -1,7 +1,8 @@
1
1
  CourtCaseParty:
2
2
  label: "Case party"
3
3
  plural: "Case parties"
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - party
@@ -15,7 +16,8 @@ CourtCaseParty:
15
16
  label: "involved in"
16
17
  target: case
17
18
  directed: true
18
- caption: role
19
+ caption:
20
+ - role
19
21
  properties:
20
22
  party:
21
23
  label: "Party"
@@ -18,7 +18,8 @@ Debt:
18
18
  label: "owes"
19
19
  target: creditor
20
20
  directed: true
21
- caption: amount
21
+ caption:
22
+ - amount
22
23
  properties:
23
24
  debtor:
24
25
  label: "Debtor"
@@ -1,7 +1,8 @@
1
1
  Directorship:
2
2
  label: "Directorship"
3
3
  plural: "Directorships"
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - director
@@ -19,7 +20,8 @@ Directorship:
19
20
  label: "directs"
20
21
  target: organization
21
22
  directed: true
22
- caption: role
23
+ caption:
24
+ - role
23
25
  properties:
24
26
  director:
25
27
  label: "Director"
@@ -2,9 +2,10 @@ Documentation:
2
2
  label: "Documentation"
3
3
  plural: "Documentations"
4
4
  description: >
5
- Links some entity to a document, which might provide further detail or
5
+ Links some entity to a document, which might provide further detail or
6
6
  evidence regarding the entity.
7
- extends: Interest
7
+ extends:
8
+ - Interest
8
9
  matchable: false
9
10
  featured:
10
11
  - document
@@ -18,7 +19,8 @@ Documentation:
18
19
  label: "documents"
19
20
  target: entity
20
21
  directed: false
21
- caption: role
22
+ caption:
23
+ - role
22
24
  properties:
23
25
  document:
24
26
  label: "Document"
@@ -1,7 +1,8 @@
1
1
  Employment:
2
2
  label: "Employment"
3
3
  plural: "Employments"
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - employer
@@ -19,7 +20,8 @@ Employment:
19
20
  label: "works for"
20
21
  target: employer
21
22
  directed: true
22
- caption: role
23
+ caption:
24
+ - role
23
25
  properties:
24
26
  employer:
25
27
  label: "Employer"
@@ -2,7 +2,8 @@ Family:
2
2
  label: "Family"
3
3
  plural: "Family members"
4
4
  description: "Family relationship between two people"
5
- extends: Interval
5
+ extends:
6
+ - Interval
6
7
  matchable: false
7
8
  featured:
8
9
  - person
@@ -16,7 +17,8 @@ Family:
16
17
  label: "related to"
17
18
  target: relative
18
19
  directed: false
19
- caption: relationship
20
+ caption:
21
+ - relationship
20
22
  properties:
21
23
  person:
22
24
  label: "Person"
@@ -1,5 +1,6 @@
1
1
  Folder:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Folder
4
5
  plural: Folders
5
6
  matchable: false
@@ -1,6 +1,7 @@
1
1
  HyperText:
2
2
  # HTML document
3
- extends: Document
3
+ extends:
4
+ - Document
4
5
  label: Web page
5
6
  plural: Web pages
6
7
  matchable: false
@@ -4,7 +4,8 @@ Identification:
4
4
  description: >
5
5
  An form of identification associated with its holder and some issuing country. This
6
6
  can be used for national ID cards, voter enrollments and similar instruments.
7
- extends: Interval
7
+ extends:
8
+ - Interval
8
9
  matchable: false
9
10
  featured:
10
11
  - number
@@ -1,5 +1,6 @@
1
1
  Image:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Image
4
5
  plural: Images
5
6
  description: >
@@ -1,6 +1,7 @@
1
1
  Interest:
2
2
  label: "Interest"
3
- extends: Interval
3
+ extends:
4
+ - Interval
4
5
  matchable: false
5
6
  abstract: true
6
7
  properties:
@@ -1,5 +1,6 @@
1
1
  LegalEntity:
2
- extends: Thing
2
+ extends:
3
+ - Thing
3
4
  label: Legal entity
4
5
  plural: Legal entities
5
6
  description: >
@@ -1,7 +1,8 @@
1
1
  Membership:
2
2
  label: "Membership"
3
3
  plural: "Memberships"
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - member
@@ -19,7 +20,8 @@ Membership:
19
20
  label: "belongs to"
20
21
  target: organization
21
22
  directed: true
22
- caption: role
23
+ caption:
24
+ - role
23
25
  properties:
24
26
  member:
25
27
  label: "Member"
@@ -1,7 +1,8 @@
1
1
  Occupancy:
2
2
  label: "Occupancy"
3
3
  plural: "Occupancies"
4
- extends: Interval
4
+ extends:
5
+ - Interval
5
6
  matchable: false
6
7
  description: >
7
8
  The occupation of a position by a person for a specific period of time.
@@ -1,10 +1,11 @@
1
1
  Organization:
2
- extends: LegalEntity
2
+ extends:
3
+ - LegalEntity
3
4
  label: Organization
4
5
  plural: Organizations
5
6
  description: >
6
7
  Any type of incorporated entity that cannot be owned by another (see Company). This
7
- might include charities, foundations or state-owned enterprises, depending on their
8
+ might include charities, foundations or state-owned enterprises, depending on their
8
9
  jurisdiction.
9
10
  matchable: true
10
11
  featured:
@@ -1,7 +1,8 @@
1
1
  Ownership:
2
2
  label: "Ownership"
3
3
  plural: "Ownerships"
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - owner
@@ -17,7 +18,8 @@ Ownership:
17
18
  label: "owns"
18
19
  target: asset
19
20
  directed: true
20
- caption: percentage
21
+ caption:
22
+ - percentage
21
23
  properties:
22
24
  owner:
23
25
  label: "Owner"
@@ -1,5 +1,6 @@
1
1
  Package:
2
- extends: Folder
2
+ extends:
3
+ - Folder
3
4
  label: Package
4
5
  plural: Packages
5
6
  description: >
@@ -1,5 +1,6 @@
1
1
  Pages:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Document
4
5
  description: >
5
6
  A multi-page document, such as a PDF or Word file or slide-show presentation.
@@ -3,7 +3,8 @@ Passport:
3
3
  plural: "Passports"
4
4
  description: >
5
5
  An passport held by a person.
6
- extends: Identification
6
+ extends:
7
+ - Identification
7
8
  matchable: false
8
9
  featured:
9
10
  - passportNumber
@@ -1,5 +1,6 @@
1
1
  Person:
2
- extends: LegalEntity
2
+ extends:
3
+ - LegalEntity
3
4
  label: Person
4
5
  plural: People
5
6
  description: >
@@ -79,6 +80,18 @@ Person:
79
80
  type: gender
80
81
  ethnicity:
81
82
  label: Ethnicity
83
+ height:
84
+ label: Height
85
+ type: number
86
+ weight:
87
+ label: Weight
88
+ type: number
89
+ eyeColor:
90
+ label: Eye color
91
+ hairColor:
92
+ label: Hair color
93
+ appearance:
94
+ label: Physical appearance
82
95
  religion:
83
96
  label: Religion
84
97
  political:
@@ -1,5 +1,6 @@
1
1
  PlainText:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Text file
4
5
  plural: Text files
5
6
  description: >
@@ -1,13 +1,14 @@
1
1
  Position:
2
2
  label: "Position"
3
3
  plural: "Positions"
4
- extends: Thing
4
+ extends:
5
+ - Thing
5
6
  matchable: true
6
7
  # cf. https://www.popoloproject.com/specs/post.html
7
8
  description: >
8
9
  A post, role or position within an organization or body.
9
10
  This describes a position one or more people may occupy
10
- and not the occupation of the post by a specific individual at a
11
+ and not the occupation of the post by a specific individual at a
11
12
  specific point in time.
12
13
 
13
14
  'subnationalArea' should be used to further restrict the scope of the
@@ -1,14 +1,15 @@
1
1
  Post:
2
2
  label: "Post"
3
3
  plural: "Posts"
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  deprecated: true
7
8
  # cf. https://www.popoloproject.com/specs/post.html
8
9
  # But they're using it to define the post as an abstract thing, this
9
10
  # describes the interval in which it is held by an individual.
10
11
  description: >
11
- A post, role or position held by an individual within an organization
12
+ A post, role or position held by an individual within an organization
12
13
  or body. This describes the period for which the position is held,
13
14
  not the abstract concept of the post.
14
15
  featured:
@@ -24,4 +24,4 @@ Project:
24
24
  phase:
25
25
  label: "Phase"
26
26
  goal:
27
- label: "Project goal"
27
+ label: "Project goal"
@@ -1,7 +1,8 @@
1
1
  ProjectParticipant:
2
2
  label: Project participant
3
3
  plural: Project participants
4
- extends: Interest
4
+ extends:
5
+ - Interest
5
6
  description: >
6
7
  An activity carried out by a group of participants.
7
8
  matchable: false
@@ -16,7 +17,8 @@ ProjectParticipant:
16
17
  label: "participates in"
17
18
  target: project
18
19
  directed: true
19
- caption: role
20
+ caption:
21
+ - role
20
22
  properties:
21
23
  project:
22
24
  label: "Project"
@@ -3,7 +3,8 @@ PublicBody:
3
3
  plural: Public bodies
4
4
  description: >
5
5
  A public body, such as a ministry, department or state company.
6
- extends: Organization
6
+ extends:
7
+ - Organization
7
8
  matchable: true
8
9
  featured:
9
10
  - name
@@ -1,5 +1,6 @@
1
1
  RealEstate:
2
- extends: Asset
2
+ extends:
3
+ - Asset
3
4
  label: Real estate
4
5
  plural: Real estates
5
6
  description: "A piece of land or property."
@@ -2,7 +2,8 @@ Representation:
2
2
  label: "Representation"
3
3
  plural: "Representations"
4
4
  description: "A mediatory, intermediary, middleman, or broker acting on behalf of a legal entity."
5
- extends: Interest
5
+ extends:
6
+ - Interest
6
7
  matchable: false
7
8
  featured:
8
9
  - agent
@@ -16,7 +17,8 @@ Representation:
16
17
  label: "represents"
17
18
  target: client
18
19
  directed: true
19
- caption: role
20
+ caption:
21
+ - role
20
22
  properties:
21
23
  agent: # aka representative / incorporation agent
22
24
  label: "Agent"
@@ -2,7 +2,8 @@ Sanction:
2
2
  label: Sanction
3
3
  plural: Sanctions
4
4
  description: "A sanction designation"
5
- extends: Interval
5
+ extends:
6
+ - Interval
6
7
  matchable: false
7
8
  featured:
8
9
  - entity
@@ -1,5 +1,6 @@
1
1
  Security:
2
- extends: Asset
2
+ extends:
3
+ - Asset
3
4
  label: Security
4
5
  plural: Securities
5
6
  description: "A tradeable financial asset."
@@ -2,7 +2,8 @@ Succession:
2
2
  label: "Succession"
3
3
  plural: "Successions"
4
4
  description: "Two entities that legally succeed each other."
5
- extends: Interest
5
+ extends:
6
+ - Interest
6
7
  matchable: false
7
8
  featured:
8
9
  - predecessor
@@ -16,7 +17,8 @@ Succession:
16
17
  label: "preceeds"
17
18
  target: successor
18
19
  directed: true
19
- caption: date
20
+ caption:
21
+ - date
20
22
  properties:
21
23
  predecessor:
22
24
  label: "Predecessor"
@@ -1,5 +1,6 @@
1
1
  Table:
2
- extends: Document
2
+ extends:
3
+ - Document
3
4
  label: Table
4
5
  plural: Tables
5
6
  description: >