followthemoney 1.3.7__py3-none-any.whl → 3.8.0__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 (186) hide show
  1. followthemoney/__init__.py +5 -3
  2. followthemoney/cli/__init__.py +17 -0
  3. followthemoney/cli/aggregate.py +56 -0
  4. followthemoney/cli/cli.py +88 -0
  5. followthemoney/cli/exports.py +121 -0
  6. followthemoney/cli/mapping.py +85 -0
  7. followthemoney/cli/sieve.py +67 -0
  8. followthemoney/cli/util.py +142 -0
  9. followthemoney/compare.py +130 -60
  10. followthemoney/exc.py +19 -6
  11. followthemoney/export/common.py +29 -0
  12. followthemoney/export/csv.py +82 -0
  13. followthemoney/export/excel.py +75 -0
  14. followthemoney/export/graph.py +79 -0
  15. followthemoney/export/neo4j.py +182 -0
  16. followthemoney/export/rdf.py +26 -0
  17. followthemoney/graph.py +308 -0
  18. followthemoney/helpers.py +212 -0
  19. followthemoney/mapping/__init__.py +1 -1
  20. followthemoney/mapping/csv.py +67 -35
  21. followthemoney/mapping/entity.py +116 -44
  22. followthemoney/mapping/property.py +90 -44
  23. followthemoney/mapping/query.py +27 -19
  24. followthemoney/mapping/source.py +15 -5
  25. followthemoney/mapping/sql.py +75 -61
  26. followthemoney/messages.py +13 -7
  27. followthemoney/model.py +108 -56
  28. followthemoney/namespace.py +119 -0
  29. followthemoney/offshore.py +48 -0
  30. followthemoney/ontology.py +77 -0
  31. followthemoney/property.py +204 -71
  32. followthemoney/proxy.py +455 -118
  33. followthemoney/rdf.py +9 -0
  34. followthemoney/schema/Address.yaml +78 -0
  35. followthemoney/schema/Airplane.yaml +17 -10
  36. followthemoney/schema/Analyzable.yaml +54 -0
  37. followthemoney/schema/Article.yaml +16 -0
  38. followthemoney/schema/Assessment.yaml +32 -0
  39. followthemoney/schema/Asset.yaml +10 -4
  40. followthemoney/schema/Associate.yaml +41 -0
  41. followthemoney/schema/Audio.yaml +24 -0
  42. followthemoney/schema/BankAccount.yaml +53 -9
  43. followthemoney/schema/Call.yaml +48 -0
  44. followthemoney/schema/CallForTenders.yaml +117 -0
  45. followthemoney/schema/Company.yaml +37 -12
  46. followthemoney/schema/Contract.yaml +41 -7
  47. followthemoney/schema/ContractAward.yaml +30 -11
  48. followthemoney/schema/CourtCase.yaml +16 -10
  49. followthemoney/schema/CourtCaseParty.yaml +17 -6
  50. followthemoney/schema/CryptoWallet.yaml +48 -0
  51. followthemoney/schema/Debt.yaml +37 -0
  52. followthemoney/schema/Directorship.yaml +17 -4
  53. followthemoney/schema/Document.yaml +72 -139
  54. followthemoney/schema/Documentation.yml +38 -0
  55. followthemoney/schema/EconomicActivity.yaml +32 -17
  56. followthemoney/schema/Email.yaml +76 -0
  57. followthemoney/schema/Employment.yaml +39 -0
  58. followthemoney/schema/Event.yaml +35 -3
  59. followthemoney/schema/Family.yaml +41 -0
  60. followthemoney/schema/Folder.yaml +13 -0
  61. followthemoney/schema/HyperText.yaml +21 -0
  62. followthemoney/schema/Identification.yaml +40 -0
  63. followthemoney/schema/Image.yaml +25 -0
  64. followthemoney/schema/Interest.yaml +3 -6
  65. followthemoney/schema/Interval.yaml +56 -5
  66. followthemoney/schema/LegalEntity.yaml +81 -20
  67. followthemoney/schema/License.yaml +7 -3
  68. followthemoney/schema/Membership.yaml +19 -4
  69. followthemoney/schema/Mention.yaml +54 -0
  70. followthemoney/schema/Message.yaml +73 -0
  71. followthemoney/schema/Note.yaml +23 -0
  72. followthemoney/schema/Occupancy.yaml +40 -0
  73. followthemoney/schema/Organization.yaml +38 -3
  74. followthemoney/schema/Ownership.yaml +16 -4
  75. followthemoney/schema/Package.yaml +17 -0
  76. followthemoney/schema/Page.yaml +43 -0
  77. followthemoney/schema/Pages.yaml +23 -0
  78. followthemoney/schema/Passport.yaml +15 -17
  79. followthemoney/schema/Payment.yaml +38 -7
  80. followthemoney/schema/Person.yaml +61 -5
  81. followthemoney/schema/PlainText.yaml +17 -0
  82. followthemoney/schema/Position.yaml +50 -0
  83. followthemoney/schema/Post.yaml +42 -0
  84. followthemoney/schema/Project.yaml +27 -0
  85. followthemoney/schema/ProjectParticipant.yaml +36 -0
  86. followthemoney/schema/PublicBody.yaml +14 -3
  87. followthemoney/schema/RealEstate.yaml +19 -3
  88. followthemoney/schema/Representation.yaml +17 -6
  89. followthemoney/schema/Sanction.yaml +44 -20
  90. followthemoney/schema/Security.yaml +59 -0
  91. followthemoney/schema/Similar.yaml +37 -0
  92. followthemoney/schema/Succession.yaml +36 -0
  93. followthemoney/schema/Table.yaml +32 -0
  94. followthemoney/schema/TaxRoll.yaml +27 -9
  95. followthemoney/schema/Thing.yaml +69 -13
  96. followthemoney/schema/Trip.yaml +42 -0
  97. followthemoney/schema/UnknownLink.yaml +17 -6
  98. followthemoney/schema/UserAccount.yaml +44 -0
  99. followthemoney/schema/Value.yaml +5 -1
  100. followthemoney/schema/Vehicle.yaml +25 -8
  101. followthemoney/schema/Vessel.yaml +18 -10
  102. followthemoney/schema/Video.yaml +20 -0
  103. followthemoney/schema/Workbook.yaml +18 -0
  104. followthemoney/schema.py +406 -135
  105. followthemoney/translations/ar/LC_MESSAGES/followthemoney.mo +0 -0
  106. followthemoney/translations/ar/LC_MESSAGES/followthemoney.po +2900 -787
  107. followthemoney/translations/bs/LC_MESSAGES/followthemoney.mo +0 -0
  108. followthemoney/translations/bs/LC_MESSAGES/followthemoney.po +2108 -520
  109. followthemoney/translations/de/LC_MESSAGES/followthemoney.mo +0 -0
  110. followthemoney/translations/de/LC_MESSAGES/followthemoney.po +2902 -782
  111. followthemoney/translations/es/LC_MESSAGES/followthemoney.mo +0 -0
  112. followthemoney/translations/es/LC_MESSAGES/followthemoney.po +2893 -779
  113. followthemoney/translations/fr/LC_MESSAGES/followthemoney.mo +0 -0
  114. followthemoney/translations/fr/LC_MESSAGES/followthemoney.po +4362 -0
  115. followthemoney/translations/fr/followthemoney.po +3861 -0
  116. followthemoney/translations/messages.pot +3021 -725
  117. followthemoney/translations/nb/LC_MESSAGES/followthemoney.mo +0 -0
  118. followthemoney/translations/nb/LC_MESSAGES/followthemoney.po +3778 -0
  119. followthemoney/translations/nl/LC_MESSAGES/followthemoney.mo +0 -0
  120. followthemoney/translations/nl/LC_MESSAGES/followthemoney.po +3837 -0
  121. followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.mo +0 -0
  122. followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.po +3784 -0
  123. followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
  124. followthemoney/translations/ru/LC_MESSAGES/followthemoney.po +2837 -539
  125. followthemoney/translations/ru/followthemoney.po +4221 -0
  126. followthemoney/translations/tr/LC_MESSAGES/followthemoney.mo +0 -0
  127. followthemoney/translations/tr/LC_MESSAGES/followthemoney.po +2073 -491
  128. followthemoney/types/__init__.py +35 -17
  129. followthemoney/types/address.py +41 -21
  130. followthemoney/types/checksum.py +25 -0
  131. followthemoney/types/common.py +233 -88
  132. followthemoney/types/country.py +89 -56
  133. followthemoney/types/date.py +59 -76
  134. followthemoney/types/email.py +66 -35
  135. followthemoney/types/entity.py +66 -13
  136. followthemoney/types/gender.py +66 -0
  137. followthemoney/types/iban.py +47 -28
  138. followthemoney/types/identifier.py +49 -22
  139. followthemoney/types/ip.py +35 -21
  140. followthemoney/types/json.py +58 -0
  141. followthemoney/types/language.py +124 -37
  142. followthemoney/types/mimetype.py +44 -0
  143. followthemoney/types/name.py +56 -12
  144. followthemoney/types/number.py +30 -0
  145. followthemoney/types/phone.py +92 -34
  146. followthemoney/types/registry.py +52 -0
  147. followthemoney/types/string.py +43 -0
  148. followthemoney/types/topic.py +94 -0
  149. followthemoney/types/url.py +39 -17
  150. followthemoney/util.py +139 -45
  151. followthemoney-3.8.0.dist-info/METADATA +153 -0
  152. followthemoney-3.8.0.dist-info/RECORD +157 -0
  153. {followthemoney-1.3.7.dist-info → followthemoney-3.8.0.dist-info}/WHEEL +1 -2
  154. followthemoney-3.8.0.dist-info/entry_points.txt +17 -0
  155. followthemoney-1.3.7.dist-info/LICENSE.txt → followthemoney-3.8.0.dist-info/licenses/LICENSE +1 -1
  156. followthemoney/link.py +0 -75
  157. followthemoney/schema/Associate.yml +0 -19
  158. followthemoney/schema/Family.yml +0 -19
  159. followthemoney/schema/Land.yml +0 -9
  160. followthemoney/schema/Relationship.yaml +0 -26
  161. followthemoney/types/domain.py +0 -50
  162. followthemoney-1.3.7.dist-info/DESCRIPTION.rst +0 -3
  163. followthemoney-1.3.7.dist-info/METADATA +0 -39
  164. followthemoney-1.3.7.dist-info/RECORD +0 -108
  165. followthemoney-1.3.7.dist-info/entry_points.txt +0 -3
  166. followthemoney-1.3.7.dist-info/metadata.json +0 -1
  167. followthemoney-1.3.7.dist-info/namespace_packages.txt +0 -1
  168. followthemoney-1.3.7.dist-info/top_level.txt +0 -3
  169. ns/ontology.py +0 -128
  170. tests/types/test_addresses.py +0 -24
  171. tests/types/test_common.py +0 -32
  172. tests/types/test_countries.py +0 -27
  173. tests/types/test_dates.py +0 -73
  174. tests/types/test_domains.py +0 -23
  175. tests/types/test_emails.py +0 -32
  176. tests/types/test_entity.py +0 -19
  177. tests/types/test_iban.py +0 -109
  178. tests/types/test_identifiers.py +0 -27
  179. tests/types/test_ip.py +0 -29
  180. tests/types/test_languages.py +0 -23
  181. tests/types/test_names.py +0 -33
  182. tests/types/test_phones.py +0 -24
  183. tests/types/test_registry.py +0 -14
  184. tests/types/test_urls.py +0 -23
  185. {ns → followthemoney/export}/__init__.py +0 -0
  186. /tests/types/__init__.py → /followthemoney/py.typed +0 -0
@@ -1,24 +1,39 @@
1
1
  Membership:
2
2
  label: "Membership"
3
- extends: Interest
4
- icon: fa-id-badge
3
+ plural: "Memberships"
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - member
8
9
  - organization
9
10
  - role
11
+ - startDate
12
+ - endDate
13
+ required:
14
+ - member
15
+ - organization
16
+ caption:
17
+ - role
18
+ edge:
19
+ source: member
20
+ label: "belongs to"
21
+ target: organization
22
+ directed: true
23
+ caption:
24
+ - role
10
25
  properties:
11
26
  member:
12
27
  label: "Member"
13
28
  type: entity
14
- schema: LegalEntity
29
+ range: LegalEntity
15
30
  reverse:
16
31
  name: membershipMember
17
32
  label: "Memberships"
18
33
  organization:
19
34
  label: "Organization"
20
35
  type: entity
21
- schema: Organization
36
+ range: Organization
22
37
  reverse:
23
38
  name: membershipOrganization
24
39
  label: "Members"
@@ -0,0 +1,54 @@
1
+ Mention:
2
+ label: Mention
3
+ plural: Mentions
4
+ abstract: false
5
+ matchable: false
6
+ generated: true
7
+ hidden: true
8
+ featured:
9
+ - document
10
+ - name
11
+ - resolved
12
+ required:
13
+ - document
14
+ - name
15
+ caption:
16
+ - name
17
+ properties:
18
+ document:
19
+ label: "Document"
20
+ reverse:
21
+ name: mentionedEntities
22
+ label: "Extracted names"
23
+ hidden: true
24
+ type: entity
25
+ range: Document
26
+ resolved:
27
+ label: "Entity"
28
+ reverse:
29
+ name: mentionedBy
30
+ label: "Document mentions"
31
+ type: entity
32
+ range: LegalEntity
33
+ name:
34
+ label: "Name"
35
+ type: name
36
+ detectedSchema:
37
+ label: "Detected entity type"
38
+ hidden: true
39
+ matchable: false
40
+ contextCountry:
41
+ label: "Co-occurring countries"
42
+ hidden: true
43
+ type: country
44
+ matchable: false
45
+ contextPhone:
46
+ label: "Co-occurring phone numbers"
47
+ hidden: true
48
+ type: phone
49
+ matchable: false
50
+ contextEmail:
51
+ label: "Co-occurring e-mail addresses"
52
+ hidden: true
53
+ type: email
54
+ matchable: false
@@ -0,0 +1,73 @@
1
+ Message:
2
+ extends:
3
+ - Interval
4
+ - Folder
5
+ - PlainText
6
+ - HyperText
7
+ label: Message
8
+ plural: Messages
9
+ matchable: false
10
+ generated: true
11
+ featured:
12
+ - subject
13
+ - date
14
+ - sender
15
+ - recipients
16
+ required:
17
+ - bodyText
18
+ - sender
19
+ caption:
20
+ - subject
21
+ - title
22
+ - threadTopic
23
+ - fileName
24
+ properties:
25
+ subject:
26
+ label: Subject
27
+ type: string
28
+ threadTopic:
29
+ label: Thread topic
30
+ type: string
31
+ sender:
32
+ label: "Sender"
33
+ type: entity
34
+ range: LegalEntity
35
+ reverse:
36
+ name: messagesSent
37
+ label: "Messages sent"
38
+ senderAccount:
39
+ label: "Sender Account"
40
+ type: entity
41
+ range: UserAccount
42
+ reverse:
43
+ name: messagesSent
44
+ label: "Messages sent"
45
+ recipients:
46
+ label: "Recipients"
47
+ type: entity
48
+ range: LegalEntity
49
+ reverse:
50
+ name: messagesReceived
51
+ label: "Messages received"
52
+ recipientAccount:
53
+ label: "Recipient Account"
54
+ type: entity
55
+ range: UserAccount
56
+ reverse:
57
+ name: messagesReceived
58
+ label: "Messages received"
59
+ inReplyTo:
60
+ label: "In Reply To"
61
+ description: "Message ID of the preceding message in the thread"
62
+ hidden: true
63
+ inReplyToMessage:
64
+ label: Responding to
65
+ type: entity
66
+ range: Message
67
+ reverse:
68
+ name: responses
69
+ label: "Responses"
70
+ metadata:
71
+ label: "Metadata"
72
+ hidden: true
73
+ type: json
@@ -0,0 +1,23 @@
1
+ Note:
2
+ extends:
3
+ - Thing
4
+ - Analyzable
5
+ label: Note
6
+ plural: Notes
7
+ description: >
8
+ An annotation that applies to a document or entity.
9
+ matchable: false
10
+ # generated: true
11
+ featured:
12
+ - description
13
+ - entity
14
+ caption:
15
+ - description
16
+ properties:
17
+ entity:
18
+ label: "Entity"
19
+ type: entity
20
+ range: Thing
21
+ reverse:
22
+ name: noteEntities
23
+ label: "Notes"
@@ -0,0 +1,40 @@
1
+ Occupancy:
2
+ label: "Occupancy"
3
+ plural: "Occupancies"
4
+ extends:
5
+ - Interval
6
+ matchable: false
7
+ description: >
8
+ The occupation of a position by a person for a specific period of time.
9
+ featured:
10
+ - holder
11
+ - post
12
+ required:
13
+ - holder
14
+ - post
15
+ edge:
16
+ source: holder
17
+ label: holds
18
+ target: post
19
+ directed: true
20
+ caption:
21
+ - startDate
22
+ - endDate
23
+ properties:
24
+ holder:
25
+ label: "Holder"
26
+ reverse:
27
+ name: positionOccupancies
28
+ label: "Positions held"
29
+ type: entity
30
+ range: Person
31
+ post:
32
+ label: "Position occupied"
33
+ reverse:
34
+ name: occupancies
35
+ label: "Position holders"
36
+ type: entity
37
+ range: Position
38
+ status:
39
+ label: "Status"
40
+ type: string
@@ -1,6 +1,41 @@
1
1
  Organization:
2
- extends: LegalEntity
2
+ extends:
3
+ - LegalEntity
3
4
  label: Organization
4
5
  plural: Organizations
5
- icon: fa-university
6
- matchable: true
6
+ description: >
7
+ Any type of incorporated entity that cannot be owned by another (see Company). This
8
+ might include charities, foundations or state-owned enterprises, depending on their
9
+ jurisdiction.
10
+ matchable: true
11
+ featured:
12
+ - name
13
+ - country
14
+ - legalForm
15
+ - status
16
+ required:
17
+ - name
18
+ caption:
19
+ - name
20
+ properties:
21
+ cageCode:
22
+ label: CAGE
23
+ description: Commercial and Government Entity Code (CAGE)
24
+ type: identifier
25
+ maxLength: 16
26
+ permId:
27
+ label: PermID
28
+ description: LSEG/Refinitiv code for a company
29
+ type: identifier
30
+ maxLength: 16
31
+ imoNumber:
32
+ label: IMO Number
33
+ type: identifier
34
+ format: imo
35
+ maxLength: 16
36
+ giiNumber:
37
+ # cf. https://www.irs.gov/businesses/corporations/fatca-registration-and-ffi-list-giin-composition-information
38
+ label: GIIN
39
+ description: Global Intermediary Identification Number
40
+ type: identifier
41
+ maxLength: 20
@@ -1,7 +1,8 @@
1
1
  Ownership:
2
2
  label: "Ownership"
3
- extends: Interest
4
- icon: fa-shopping-bag
3
+ plural: "Ownerships"
4
+ extends:
5
+ - Interest
5
6
  matchable: false
6
7
  featured:
7
8
  - owner
@@ -9,6 +10,16 @@ Ownership:
9
10
  - percentage
10
11
  - startDate
11
12
  - endDate
13
+ required:
14
+ - owner
15
+ - asset
16
+ edge: # OWNER owns ASSET
17
+ source: owner
18
+ label: "owns"
19
+ target: asset
20
+ directed: true
21
+ caption:
22
+ - percentage
12
23
  properties:
13
24
  owner:
14
25
  label: "Owner"
@@ -16,14 +27,14 @@ Ownership:
16
27
  name: ownershipOwner
17
28
  label: "Assets and shares"
18
29
  type: entity
19
- schema: LegalEntity
30
+ range: LegalEntity
20
31
  asset:
21
32
  label: "Asset"
22
33
  reverse:
23
34
  name: ownershipAsset
24
35
  label: "Owners"
25
36
  type: entity
26
- schema: Asset
37
+ range: Asset
27
38
  percentage:
28
39
  label: "Percentage held"
29
40
  sharesCount:
@@ -38,3 +49,4 @@ Ownership:
38
49
  label: "Legal basis"
39
50
  ownershipType:
40
51
  label: "Type of ownership"
52
+ # e.g. "beneficial", "direct", "indirect", "ultimate"
@@ -0,0 +1,17 @@
1
+ Package:
2
+ extends:
3
+ - Folder
4
+ label: Package
5
+ plural: Packages
6
+ description: >
7
+ A bundle of files that have been packaged together into some form of archive.
8
+ matchable: false
9
+ generated: true
10
+ featured:
11
+ - title
12
+ - fileName
13
+ - mimeType
14
+ - parent
15
+ caption:
16
+ - fileName
17
+ - title
@@ -0,0 +1,43 @@
1
+ Page:
2
+ # Be careful: Not derived from anything!
3
+ label: Page
4
+ plural: Pages
5
+ matchable: false
6
+ generated: true
7
+ hidden: true
8
+ properties:
9
+ index:
10
+ label: "Index"
11
+ type: number
12
+ bodyText:
13
+ label: "Text"
14
+ hidden: true
15
+ type: text
16
+ document:
17
+ label: "Document"
18
+ type: entity
19
+ range: Pages
20
+ reverse:
21
+ name: pages
22
+ label: "Pages"
23
+ hidden: true
24
+ rdf: http://purl.org/dc/terms/isPartOf
25
+ detectedLanguage:
26
+ label: "Detected language"
27
+ type: language
28
+ hidden: true
29
+ translatedText:
30
+ label: "Translated version of the body text"
31
+ hidden: true
32
+ type: text
33
+ translatedTextLanguage:
34
+ label: "The language of the translated text"
35
+ hidden: true
36
+ indexText:
37
+ # This is a leaked abstraction from aleph. The idea is to have some
38
+ # additional text field that can be used to associate searchable text
39
+ # with an entity. This will be removed as a property upon indexing so
40
+ # that it can never be retrieved.
41
+ label: Index text
42
+ hidden: true
43
+ type: text
@@ -0,0 +1,23 @@
1
+ Pages:
2
+ extends:
3
+ - Document
4
+ label: Document
5
+ description: >
6
+ A multi-page document, such as a PDF or Word file or slide-show presentation.
7
+ plural: Documents
8
+ matchable: false
9
+ generated: true
10
+ featured:
11
+ - title
12
+ - fileName
13
+ - mimeType
14
+ - parent
15
+ caption:
16
+ - fileName
17
+ - title
18
+ properties:
19
+ pdfHash:
20
+ label: "PDF alternative version checksum"
21
+ hidden: true
22
+ type: checksum
23
+ matchable: false
@@ -1,36 +1,36 @@
1
1
  Passport:
2
2
  label: "Passport"
3
3
  plural: "Passports"
4
- description: "Passport"
5
- extends: Interval
6
- icon: fa-id-card-o
4
+ description: >
5
+ An passport held by a person.
6
+ extends:
7
+ - Identification
7
8
  matchable: false
8
9
  featured:
10
+ - number
11
+ - country
9
12
  - type
10
13
  - holder
11
14
  - startDate
12
15
  - endDate
16
+ required:
17
+ - holder
18
+ - number
19
+ caption:
20
+ - passportNumber
21
+ - number
13
22
  properties:
14
- holder:
15
- label: "Document holder"
16
- type: entity
17
- range: LegalEntity
18
- reverse:
19
- name: passport
20
- type:
21
- label: "Document type"
22
- country:
23
- label: "Country"
24
- type: country
25
23
  passportNumber:
24
+ # FIXME: Use `number` from `Identification` instead!!
26
25
  label: "Passport number"
27
26
  type: identifier
27
+ hidden: true
28
28
  surname:
29
29
  label: "Surname"
30
30
  givenName:
31
31
  label: "Given name"
32
32
  birthDate:
33
- label: "Date of birth"
33
+ label: "Birth date"
34
34
  type: date
35
35
  birthPlace:
36
36
  label: "Place of birth"
@@ -39,5 +39,3 @@ Passport:
39
39
  personalNumber:
40
40
  label: "Personal number"
41
41
  type: identifier
42
- authority:
43
- label: "Authority"
@@ -1,15 +1,31 @@
1
1
  Payment:
2
2
  label: "Payment"
3
- extends:
3
+ plural: "Payments"
4
+ description: "A monetary payment between two parties."
5
+ matchable: false
6
+ extends:
4
7
  - Interval
5
8
  - Value
6
- icon: fa-usd
7
- matchable: false
8
9
  featured:
9
10
  - payer
10
11
  - beneficiary
12
+ - date
11
13
  - amount
12
14
  - purpose
15
+ required:
16
+ - payer
17
+ - beneficiary
18
+ caption:
19
+ - amount
20
+ edge:
21
+ source: payer
22
+ label: "paid"
23
+ target: beneficiary
24
+ directed: true
25
+ caption:
26
+ - amount
27
+ - date
28
+ - purpose
13
29
  properties:
14
30
  sequenceNumber:
15
31
  label: "Sequence number"
@@ -17,6 +33,7 @@ Payment:
17
33
  label: "Transaction number"
18
34
  purpose:
19
35
  label: "Payment purpose"
36
+ type: text
20
37
  programme:
21
38
  label: "Payment programme"
22
39
  description: "Programme name, funding code, category identifier, etc."
@@ -26,25 +43,39 @@ Payment:
26
43
  name: paymentPayer
27
44
  label: "Payments made"
28
45
  type: entity
29
- schema: LegalEntity
46
+ range: LegalEntity
30
47
  payerAccount:
31
48
  label: "Payer bank account"
32
49
  reverse:
33
50
  name: paymentPayerAccount
34
51
  label: "Payments made"
35
52
  type: entity
36
- schema: BankAccount
53
+ range: BankAccount
37
54
  beneficiary:
38
55
  label: "Beneficiary"
39
56
  reverse:
40
57
  name: paymentBeneficiary
41
58
  label: "Payments received"
42
59
  type: entity
43
- schema: LegalEntity
60
+ range: LegalEntity
44
61
  beneficiaryAccount:
45
62
  label: "Beneficiary bank account"
46
63
  reverse:
47
64
  name: paymentBeneficiaryAccount
48
65
  label: "Payments received"
49
66
  type: entity
50
- schema: BankAccount
67
+ range: BankAccount
68
+ contract:
69
+ label: "Contract"
70
+ reverse:
71
+ name: paymentContract
72
+ label: "Contractual payments"
73
+ type: entity
74
+ range: Contract
75
+ project:
76
+ label: "Project"
77
+ reverse:
78
+ name: payments
79
+ label: "Payments"
80
+ type: entity
81
+ range: Project
@@ -1,18 +1,36 @@
1
1
  Person:
2
- extends: LegalEntity
2
+ extends:
3
+ - LegalEntity
3
4
  label: Person
4
5
  plural: People
5
- icon: fa-user
6
+ description: >
7
+ A natural person, as opposed to a corporation of some type.
6
8
  matchable: true
7
9
  rdf: http://xmlns.com/foaf/0.1/Person
8
10
  featured:
9
11
  - name
10
12
  - nationality
11
13
  - birthDate
14
+ required:
15
+ - name
16
+ caption:
17
+ - name
18
+ - lastName
19
+ - email
20
+ - phone
21
+ temporalExtent:
22
+ start:
23
+ - birthDate
24
+ end:
25
+ - deathDate
12
26
  properties:
13
27
  title:
14
28
  label: Title
15
29
  rdf: http://xmlns.com/foaf/0.1/title
30
+ # The `firstName`, `lastName`, `secondName` etc. properties intentionally do not use
31
+ # the `name` property type. Many FtM tools (including Aleph) use name properties to
32
+ # compare/match entities, but matching entites just on e.g. a first name would lead to
33
+ # too many false positives.
16
34
  firstName:
17
35
  label: First name
18
36
  rdf: http://xmlns.com/foaf/0.1/givenName
@@ -27,22 +45,60 @@ Person:
27
45
  lastName:
28
46
  label: Last name
29
47
  rdf: http://xmlns.com/foaf/0.1/lastName
48
+ nameSuffix:
49
+ label: Name suffix
30
50
  birthDate:
31
51
  label: Birth date
32
52
  type: date
33
53
  rdf: http://xmlns.com/foaf/0.1/birthday
34
54
  birthPlace:
35
55
  label: Place of birth
56
+ birthCountry:
57
+ label: Country of birth
58
+ type: country
36
59
  deathDate:
37
60
  label: Death date
38
61
  type: date
39
62
  position:
40
63
  label: Position
64
+ matchable: false
41
65
  nationality:
42
66
  label: Nationality
43
67
  type: country
44
- gender:
45
- label: Gender
68
+ citizenship:
69
+ label: Citizenship
70
+ type: country
46
71
  passportNumber:
47
- label: Passport
72
+ label: Passport number
73
+ type: identifier
74
+ # Awkward data section below
75
+ socialSecurityNumber:
76
+ label: Social security number
48
77
  type: identifier
78
+ format: ssn
79
+ gender:
80
+ label: Gender
81
+ type: gender
82
+ ethnicity:
83
+ label: Ethnicity
84
+ height:
85
+ label: Height
86
+ type: number
87
+ weight:
88
+ label: Weight
89
+ type: number
90
+ eyeColor:
91
+ label: Eye color
92
+ hairColor:
93
+ label: Hair color
94
+ appearance:
95
+ label: Physical appearance
96
+ religion:
97
+ label: Religion
98
+ political:
99
+ label: Political association
100
+ education:
101
+ label: Education
102
+ spokenLanguage:
103
+ label: Spoken language
104
+ type: language
@@ -0,0 +1,17 @@
1
+ PlainText:
2
+ extends:
3
+ - Document
4
+ label: Text file
5
+ plural: Text files
6
+ description: >
7
+ Text files, like .txt or source code.
8
+ matchable: false
9
+ generated: true
10
+ featured:
11
+ - title
12
+ - fileName
13
+ - mimeType
14
+ - parent
15
+ caption:
16
+ - fileName
17
+ - title