| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
# Copyright (c) 2024-2025 Philipp Schafft |
|
2
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
# licensed under Artistic License 2.0 (see LICENSE file) |
|
4
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
# ABSTRACT: Work with Tag databases |
|
6
|
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
package Data::TagDB::WellKnown; |
|
8
|
|
|
|
|
|
|
|
|
9
|
1
|
|
|
1
|
|
15
|
use v5.10; |
|
|
1
|
|
|
|
|
3
|
|
|
10
|
1
|
|
|
1
|
|
6
|
use strict; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
30
|
|
|
11
|
1
|
|
|
1
|
|
6
|
use warnings; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
73
|
|
|
12
|
|
|
|
|
|
|
|
|
13
|
1
|
|
|
1
|
|
6
|
use Carp; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
180
|
|
|
14
|
|
|
|
|
|
|
|
|
15
|
1
|
|
|
1
|
|
7
|
use parent qw(Data::TagDB::WeakBaseObject Data::Identifier::Interface::Known); |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
9
|
|
|
16
|
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
our $VERSION = v0.12; |
|
18
|
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
my %wk_ise = ( |
|
20
|
|
|
|
|
|
|
# Hints as taken from tagdb-cgi-import; |
|
21
|
|
|
|
|
|
|
also_shares_identifier => 'ddd60c5c-2934-404f-8f2d-fcb4da88b633', |
|
22
|
|
|
|
|
|
|
tagname => 'bfae7574-3dae-425d-89b1-9c087c140c23', |
|
23
|
|
|
|
|
|
|
uuid => '8be115d2-dc2f-4a98-91e1-a6e3075cbc31', |
|
24
|
|
|
|
|
|
|
uri => 'a8d1637d-af19-49e9-9ef8-6bc1fbcf6439', |
|
25
|
|
|
|
|
|
|
oid => 'd08dc905-bbf6-4183-b219-67723c3c8374', |
|
26
|
|
|
|
|
|
|
wikidata_identifier => 'ce7aae1e-a210-4214-926a-0ebca56d77e3', |
|
27
|
|
|
|
|
|
|
small_identifier => 'f87a38cb-fd13-4e15-866c-e49901adbec5', |
|
28
|
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
# Used for additional features of source format: |
|
30
|
|
|
|
|
|
|
important => 'e6135f02-28c1-4973-986c-ab7a6421c0a0', |
|
31
|
|
|
|
|
|
|
no_direct => '05648b38-e73c-485c-b536-286ce0918193', |
|
32
|
|
|
|
|
|
|
has_type => '7f265548-81dc-4280-9550-1bd0aa4bf748', |
|
33
|
|
|
|
|
|
|
owned_by => '0ad7f760-8ee7-4367-97f2-ada06864325e', |
|
34
|
|
|
|
|
|
|
implies => 'e48cd5c6-83d7-411e-9640-cb370f3502fc', |
|
35
|
|
|
|
|
|
|
flagged_as => 'a1c478b5-0a85-4b5b-96da-d250db14a67c', |
|
36
|
|
|
|
|
|
|
using_namespace => '3c9f40b4-2b98-44ce-b4dc-97649eb528ae', |
|
37
|
|
|
|
|
|
|
for_type => 'bc2d2e7c-8aa4-420e-ac07-59c422034de9', |
|
38
|
|
|
|
|
|
|
|
|
39
|
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
# Other stuff: |
|
41
|
|
|
|
|
|
|
default_context => '6ba648c2-3657-47c2-8541-9b73c3a9b2b4', |
|
42
|
|
|
|
|
|
|
default_type => '87c4892f-ae39-476e-8ed0-d9ed321dafe9', |
|
43
|
|
|
|
|
|
|
default_encoding => '8440eabd-5d73-4679-8f06-abaa06cf04ac', |
|
44
|
|
|
|
|
|
|
specialises => '923b43ae-a50e-4db3-8655-ed931d0dd6d4', |
|
45
|
|
|
|
|
|
|
generalises => 'c8530d1b-d600-47e5-bc06-7b01416c79eb', |
|
46
|
|
|
|
|
|
|
unicode_string => 'eacbf914-52cf-4192-a42c-8ecd27c85ee1', |
|
47
|
|
|
|
|
|
|
utf_8_string_encoding => 'ec6cd46a-aef5-495d-830b-acb3347a34ec', |
|
48
|
|
|
|
|
|
|
string_ise_uuid_encoding => 'b448c181-606e-460a-a8cd-8b60aeefe6bb', |
|
49
|
|
|
|
|
|
|
string_ise_oid_encoding => '5af917c5-67fd-4019-be38-4093fde9b612', |
|
50
|
|
|
|
|
|
|
ascii_uri_encoding => '61ae4438-e519-4af2-9286-afe8e03bf932', |
|
51
|
|
|
|
|
|
|
colour_value => 'c64b5209-b975-4e59-9467-3c3b3f136b4e', |
|
52
|
|
|
|
|
|
|
hex_rgb_encoding => '66d561ee-c06f-408f-a56c-a009439283bb', |
|
53
|
|
|
|
|
|
|
ascii_decimal_integer_encoding => '84c0547d-4cce-4ece-8d47-57ca8b3a7763', |
|
54
|
|
|
|
|
|
|
tagpool_tag_icontext => '922257e5-8fda-405c-aced-44a378acbdcf', |
|
55
|
|
|
|
|
|
|
tagpool_type_icontext => '962af011-3e8e-4468-9b2e-9d4df93c0d9c', |
|
56
|
|
|
|
|
|
|
has_colour_value => '4c771f95-9c12-4fc7-9cf6-1d5dee7024f9', |
|
57
|
|
|
|
|
|
|
displaycolour => 'a7cfbcb0-45e2-46b9-8f60-646ab2c18b0b', |
|
58
|
|
|
|
|
|
|
also_shares_colour => 'c6e83600-fd96-4b71-b216-21f0c4d73ca6', |
|
59
|
|
|
|
|
|
|
primary_colour => 'd0421d68-8d37-4f78-b800-cae3e896bea5', |
|
60
|
|
|
|
|
|
|
tag_links => 'd926eb95-6984-415f-8892-233c13491931', |
|
61
|
|
|
|
|
|
|
tagpool_title => '361fda18-50ce-4421-b378-881179b0318a', |
|
62
|
|
|
|
|
|
|
tagpool_description => 'ca33b058-b4ce-4059-9f0b-61ca0fd39c35', |
|
63
|
|
|
|
|
|
|
tagpool_tagged_as => '703cbb5d-eb4a-4718-9e60-adbef6f71869', |
|
64
|
|
|
|
|
|
|
subject_type => 'e8c156be-4fe7-4b13-b4fa-e207213caef8', |
|
65
|
|
|
|
|
|
|
inverse_relation => '1eae4688-f66c-4c77-bc9b-bb38be88240a', |
|
66
|
|
|
|
|
|
|
final_file_size => '1cd4a6c6-0d7c-48d1-81e7-4e8d41fdb45d', |
|
67
|
|
|
|
|
|
|
final_file_hash => '79385945-0963-44aa-880a-bca4a42e9002', |
|
68
|
|
|
|
|
|
|
final_file_encoding => '448c50a8-c847-4bc7-856e-0db5fea8f23b', |
|
69
|
|
|
|
|
|
|
generator_request => 'ab573786-73bc-4f5c-9b03-24ef8a70ae45', |
|
70
|
|
|
|
|
|
|
generated_by => '8efbc13b-47e5-4d92-a960-bd9a2efa9ccb', |
|
71
|
|
|
|
|
|
|
namespace => 'd9bd807e-57cb-4736-9317-bf6bba5db48a', |
|
72
|
|
|
|
|
|
|
generator => '8a1cb2d6-df2f-46db-89c3-a75168adebf6', |
|
73
|
|
|
|
|
|
|
icon => 'caf11e36-d401-4521-8f10-f6b36125415c', |
|
74
|
|
|
|
|
|
|
fetch_file_uri => '96674c6c-cf5e-40cd-af1e-63b86e741f4f', |
|
75
|
|
|
|
|
|
|
specific_taglist => '03cadc6f-2609-4527-b296-2590d737e99a', |
|
76
|
|
|
|
|
|
|
also_list_contains_also => '4c9656eb-c130-42b7-9348-a1fee3f42050', |
|
77
|
|
|
|
|
|
|
encoding_file_name_extension => '3d737a5c-9389-4ae7-80ff-5f64c6b3b7f1', |
|
78
|
|
|
|
|
|
|
x11_colour_name => '135032f7-cc60-46ee-8f64-1724c2a56fa2', |
|
79
|
|
|
|
|
|
|
also_has_role => 'd2750351-aed7-4ade-aa80-c32436cc6030', |
|
80
|
|
|
|
|
|
|
also_has_comment => '11d8962c-0a71-4d00-95ed-fa69182788a8', |
|
81
|
|
|
|
|
|
|
also_has_description => '30710bdb-6418-42fb-96db-2278f3bfa17f', |
|
82
|
|
|
|
|
|
|
also_has_proto_title => 'a845bfb7-130f-4f55-8a6d-ea3e5b1c2a09', |
|
83
|
|
|
|
|
|
|
also_has_title => 'f7fd59e6-6727-4128-a0a7-cbc702dc09b8', |
|
84
|
|
|
|
|
|
|
also_has_subtitle => 'df70343f-0c5f-4d76-93b6-4376f680f567', |
|
85
|
|
|
|
|
|
|
gamebook_has_title => '1357f4c9-0419-4493-8d2c-97c6a40a9bc9', |
|
86
|
|
|
|
|
|
|
ascii_code_point => 'f4b073ff-0b53-4034-b4e4-4affe5caf72c', |
|
87
|
|
|
|
|
|
|
unicode_code_point => '5f167223-cc9c-4b2f-9928-9fe1b253b560', |
|
88
|
|
|
|
|
|
|
proto_file => '52a516d0-25d8-47c7-a6ba-80983e576c54', |
|
89
|
|
|
|
|
|
|
earth => '3c2c155f-a4a0-49f3-bdaf-7f61d25c6b8c', |
|
90
|
|
|
|
|
|
|
language_tag_identifier => 'd0a4c6e2-ce2f-4d4c-b079-60065ac681f1', # sid=8 |
|
91
|
|
|
|
|
|
|
text_fragment => '6085f87e-4797-4bb2-b23d-85ff7edc1da0', # sid=19 |
|
92
|
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
|
|
94
|
|
|
|
|
|
|
# Boolans: |
|
95
|
|
|
|
|
|
|
false => '6d34d4a1-8fbc-4e22-b3e0-d50f43d97cb1', # sid=45,sni=189 |
|
96
|
|
|
|
|
|
|
true => 'eb50b3dc-28be-4cfc-a9ea-bd7cee73aed5', # sid=46,sni=190 |
|
97
|
|
|
|
|
|
|
|
|
98
|
|
|
|
|
|
|
# Number related: |
|
99
|
|
|
|
|
|
|
unsigned_integer => 'dea3782c-6bcb-4ce9-8a39-f8dab399d75d', |
|
100
|
|
|
|
|
|
|
has_prime_factor => '7f55c943-06a4-42e4-9c02-f8d2d00479a0', |
|
101
|
|
|
|
|
|
|
zero => 'dd8e13d3-4b0f-5698-9afa-acf037584b20', |
|
102
|
|
|
|
|
|
|
one => 'bd27669b-201e-51ed-9eb8-774ba7fef7ad', |
|
103
|
|
|
|
|
|
|
two => '73415b5a-31fb-5b5a-bb82-8ea5eb3b12f7', |
|
104
|
|
|
|
|
|
|
three => 'be6d8e00-a6c1-5c44-8ffc-f7393e14aa23', |
|
105
|
|
|
|
|
|
|
four => '79422b2c-b6f6-547f-949f-0cba44fa69b7', |
|
106
|
|
|
|
|
|
|
hrair => '7cb67873-33bc-4a93-b53f-072ce96c6f1a', |
|
107
|
|
|
|
|
|
|
|
|
108
|
|
|
|
|
|
|
|
|
109
|
|
|
|
|
|
|
# Wikidata: |
|
110
|
|
|
|
|
|
|
wd_unicode_character => '615351ce-3254-5684-a1ab-93f7c852e626', # P487 |
|
111
|
|
|
|
|
|
|
wd_sRGB_colour_hex_triplet => 'bcff702a-5d22-5e56-abaf-bda489b8438e', # P465 |
|
112
|
|
|
|
|
|
|
|
|
113
|
|
|
|
|
|
|
|
|
114
|
|
|
|
|
|
|
# SIRTX: |
|
115
|
|
|
|
|
|
|
sirtx_logical => '5e80c7b7-215e-4154-b310-a5387045c336', # sni=129 |
|
116
|
|
|
|
|
|
|
sirtx_numerical_identifier => '039e0bb7-5dd3-40ee-a98c-596ff6cce405', # sid=113,sni=10 |
|
117
|
|
|
|
|
|
|
sirtx_function_number => 'd73b6550-5309-46ad-acc9-865c9261065b', # sni=127 |
|
118
|
|
|
|
|
|
|
sirtx_function_name => 'd690772e-de18-4714-aa4e-73fd35e8efc9', # sni=128 |
|
119
|
|
|
|
|
|
|
|
|
120
|
|
|
|
|
|
|
|
|
121
|
|
|
|
|
|
|
# Chat 0: |
|
122
|
|
|
|
|
|
|
chat_0_word_identifier => '2c7e15ed-aa2f-4e2f-9a1d-64df0c85875a', # sid=112,sni=118 |
|
123
|
|
|
|
|
|
|
); |
|
124
|
|
|
|
|
|
|
|
|
125
|
|
|
|
|
|
|
my %aliases = ( |
|
126
|
|
|
|
|
|
|
taglist => 'specific_taglist', |
|
127
|
|
|
|
|
|
|
); |
|
128
|
|
|
|
|
|
|
|
|
129
|
|
|
|
|
|
|
my %wk_tagname = ( |
|
130
|
|
|
|
|
|
|
# first some simple ones: |
|
131
|
|
|
|
|
|
|
(map {$_ => $_ =~ tr/_/-/r} |
|
132
|
|
|
|
|
|
|
# Taken from hints: |
|
133
|
|
|
|
|
|
|
qw(also_shares_identifier tagname uuid uri oid wikidata_identifier small_identifier), # recommend |
|
134
|
|
|
|
|
|
|
qw(important no_direct has_type owned_by implies flagged_as using_namespace for_type), # friendly |
|
135
|
|
|
|
|
|
|
|
|
136
|
|
|
|
|
|
|
# related to generators: |
|
137
|
|
|
|
|
|
|
qw(generator_request generated_by namespace generator), |
|
138
|
|
|
|
|
|
|
|
|
139
|
|
|
|
|
|
|
|
|
140
|
|
|
|
|
|
|
# Others: |
|
141
|
|
|
|
|
|
|
qw(default_context), |
|
142
|
|
|
|
|
|
|
qw(also_has_role), |
|
143
|
|
|
|
|
|
|
qw(also_has_title), |
|
144
|
|
|
|
|
|
|
qw(tagpool_title tagpool_description tagpool_tag_icontext tagpool_type_icontext), |
|
145
|
|
|
|
|
|
|
qw(gamebook_has_title), |
|
146
|
|
|
|
|
|
|
qw(icon fetch_file_uri), |
|
147
|
|
|
|
|
|
|
qw(has_colour_value also_shares_colour primary_colour displaycolour), |
|
148
|
|
|
|
|
|
|
qw(proto_file), |
|
149
|
|
|
|
|
|
|
|
|
150
|
|
|
|
|
|
|
# SIRTX: |
|
151
|
|
|
|
|
|
|
qw(sirtx_numerical_identifier sirtx_logical sirtx_function_number sirtx_function_name), |
|
152
|
|
|
|
|
|
|
|
|
153
|
|
|
|
|
|
|
# Chat 0: |
|
154
|
|
|
|
|
|
|
qw(chat_0_word_identifier), |
|
155
|
|
|
|
|
|
|
) |
|
156
|
|
|
|
|
|
|
); |
|
157
|
|
|
|
|
|
|
|
|
158
|
|
|
|
|
|
|
my %wk_sid = ( |
|
159
|
|
|
|
|
|
|
# Entries marked as "unassigned" are unassigned as of 2024-05-12Z. |
|
160
|
|
|
|
|
|
|
also_shares_identifier => 1, |
|
161
|
|
|
|
|
|
|
uuid => 2, |
|
162
|
|
|
|
|
|
|
tagname => 3, |
|
163
|
|
|
|
|
|
|
has_type => 4, |
|
164
|
|
|
|
|
|
|
uri => 5, |
|
165
|
|
|
|
|
|
|
oid => 6, |
|
166
|
|
|
|
|
|
|
#unassigned 7 |
|
167
|
|
|
|
|
|
|
language_tag_identifier => 8, |
|
168
|
|
|
|
|
|
|
wikidata_identifier => 9, |
|
169
|
|
|
|
|
|
|
specialises => 10, |
|
170
|
|
|
|
|
|
|
unicode_string => 11, |
|
171
|
|
|
|
|
|
|
# integer 12 |
|
172
|
|
|
|
|
|
|
unsigned_integer => 13, |
|
173
|
|
|
|
|
|
|
#unassigned 14 |
|
174
|
|
|
|
|
|
|
#unassigned 15 |
|
175
|
|
|
|
|
|
|
default_context => 16, |
|
176
|
|
|
|
|
|
|
proto_file => 17, |
|
177
|
|
|
|
|
|
|
final_file_size => 18, |
|
178
|
|
|
|
|
|
|
text_fragment => 19, |
|
179
|
|
|
|
|
|
|
also_list_contains_also => 20, |
|
180
|
|
|
|
|
|
|
# proto-message 21 |
|
181
|
|
|
|
|
|
|
# proto-entity 22 |
|
182
|
|
|
|
|
|
|
# proxy-type 23 |
|
183
|
|
|
|
|
|
|
flagged_as => 24, |
|
184
|
|
|
|
|
|
|
# marked_as 25 |
|
185
|
|
|
|
|
|
|
# roaraudio-error-number 26 |
|
186
|
|
|
|
|
|
|
small_identifier => 27, |
|
187
|
|
|
|
|
|
|
also_has_role => 28, |
|
188
|
|
|
|
|
|
|
# also-has-comment 29 |
|
189
|
|
|
|
|
|
|
# also-has-description 30 |
|
190
|
|
|
|
|
|
|
#unassigned 31 |
|
191
|
|
|
|
|
|
|
final_file_encoding => 32, |
|
192
|
|
|
|
|
|
|
final_file_hash => 33, |
|
193
|
|
|
|
|
|
|
# ... |
|
194
|
|
|
|
|
|
|
false => 45, |
|
195
|
|
|
|
|
|
|
true => 46, |
|
196
|
|
|
|
|
|
|
# ... |
|
197
|
|
|
|
|
|
|
chat_0_word_identifier => 112, |
|
198
|
|
|
|
|
|
|
sirtx_numerical_identifier => 113, |
|
199
|
|
|
|
|
|
|
); |
|
200
|
|
|
|
|
|
|
|
|
201
|
|
|
|
|
|
|
my %wk_logical = ( |
|
202
|
|
|
|
|
|
|
uuid => 'uuid', |
|
203
|
|
|
|
|
|
|
tagname => 'tagname', |
|
204
|
|
|
|
|
|
|
uri => 'uri', |
|
205
|
|
|
|
|
|
|
oid => 'oid', |
|
206
|
|
|
|
|
|
|
wikidata_identifier => 'wd', |
|
207
|
|
|
|
|
|
|
small_identifier => 'sid', |
|
208
|
|
|
|
|
|
|
sirtx_numerical_identifier => 'sni', |
|
209
|
|
|
|
|
|
|
); |
|
210
|
|
|
|
|
|
|
|
|
211
|
|
|
|
|
|
|
my %wk_default_type = ( |
|
212
|
|
|
|
|
|
|
(map {$_ => 'unicode_string'} |
|
213
|
|
|
|
|
|
|
qw(also_has_title), |
|
214
|
|
|
|
|
|
|
qw(tagpool_title tagpool_description tagpool_tag_icontext tagpool_type_icontext), |
|
215
|
|
|
|
|
|
|
qw(gamebook_has_title), |
|
216
|
|
|
|
|
|
|
), |
|
217
|
|
|
|
|
|
|
(map {$_ => 'uri'} |
|
218
|
|
|
|
|
|
|
qw(icon fetch_file_uri), |
|
219
|
|
|
|
|
|
|
), |
|
220
|
|
|
|
|
|
|
(map {$_ => 'colour_value'} |
|
221
|
|
|
|
|
|
|
qw(has_colour_value also_shares_colour primary_colour displaycolour), |
|
222
|
|
|
|
|
|
|
), |
|
223
|
|
|
|
|
|
|
); |
|
224
|
|
|
|
|
|
|
|
|
225
|
|
|
|
|
|
|
my %wk_default_encoding = ( |
|
226
|
|
|
|
|
|
|
uuid => 'string_ise_uuid_encoding', |
|
227
|
|
|
|
|
|
|
oid => 'string_ise_oid_encoding', |
|
228
|
|
|
|
|
|
|
uri => 'ascii_uri_encoding', |
|
229
|
|
|
|
|
|
|
tagname => 'utf_8_string_encoding', |
|
230
|
|
|
|
|
|
|
x11_colour_name => 'utf_8_string_encoding', |
|
231
|
|
|
|
|
|
|
wikidata_identifier => 'utf_8_string_encoding', |
|
232
|
|
|
|
|
|
|
small_identifier => 'ascii_decimal_integer_encoding', |
|
233
|
|
|
|
|
|
|
unicode_string => 'utf_8_string_encoding', |
|
234
|
|
|
|
|
|
|
colour_value => 'hex_rgb_encoding', |
|
235
|
|
|
|
|
|
|
); |
|
236
|
|
|
|
|
|
|
|
|
237
|
|
|
|
|
|
|
|
|
238
|
|
|
|
|
|
|
# ---- Implementation for Data::Identifier::Interface::Known ---- |
|
239
|
|
|
|
|
|
|
|
|
240
|
|
|
|
|
|
|
sub _known_provider { |
|
241
|
0
|
|
|
0
|
|
|
my ($pkg, $class, %opts) = @_; |
|
242
|
0
|
0
|
|
|
|
|
croak 'Unsupported options passed' if scalar(keys %opts); |
|
243
|
0
|
0
|
|
|
|
|
return ([values %wk_ise], rawtype => 'ise') if $class eq ':all'; |
|
244
|
0
|
|
|
|
|
|
croak 'Unsupported class'; |
|
245
|
|
|
|
|
|
|
} |
|
246
|
|
|
|
|
|
|
|
|
247
|
|
|
|
|
|
|
# ---- Private helpers ---- |
|
248
|
|
|
|
|
|
|
|
|
249
|
|
|
|
0
|
|
|
sub DESTROY {} # So it's not autoloaded. |
|
250
|
|
|
|
|
|
|
|
|
251
|
|
|
|
|
|
|
sub _call { |
|
252
|
0
|
|
|
0
|
|
|
my ($self, $name, $autocreate) = @_; |
|
253
|
|
|
|
|
|
|
|
|
254
|
0
|
0
|
|
|
|
|
if (defined $wk_ise{$name}) { |
|
255
|
0
|
|
|
|
|
|
return $self->{db}->_tag_by_ise_cached($wk_ise{$name}, $autocreate) |
|
256
|
|
|
|
|
|
|
} else { |
|
257
|
0
|
|
|
|
|
|
confess 'Unknown well known: '.$name; |
|
258
|
|
|
|
|
|
|
} |
|
259
|
|
|
|
|
|
|
} |
|
260
|
|
|
|
|
|
|
|
|
261
|
|
|
|
|
|
|
sub _list { |
|
262
|
0
|
|
|
0
|
|
|
my ($self) = @_; |
|
263
|
0
|
|
|
|
|
|
return keys %wk_ise; |
|
264
|
|
|
|
|
|
|
} |
|
265
|
|
|
|
|
|
|
|
|
266
|
|
|
|
|
|
|
sub _info { |
|
267
|
0
|
|
|
0
|
|
|
my ($self, $name) = @_; |
|
268
|
0
|
|
|
|
|
|
my %info; |
|
269
|
|
|
|
|
|
|
|
|
270
|
0
|
0
|
|
|
|
|
croak 'No such well known: '.$name unless defined $wk_ise{$name}; |
|
271
|
|
|
|
|
|
|
|
|
272
|
0
|
|
|
|
|
|
$info{ise} = $wk_ise{$name}; |
|
273
|
0
|
|
|
|
|
|
$info{tagname} = $wk_tagname{$name}; |
|
274
|
0
|
|
|
|
|
|
$info{sid} = $wk_sid{$name}; |
|
275
|
0
|
|
|
|
|
|
$info{logical} = $wk_logical{$name}; |
|
276
|
0
|
|
|
|
|
|
$info{default_type} = $wk_default_type{$name}; |
|
277
|
0
|
|
|
|
|
|
$info{default_encoding} = $wk_default_encoding{$name}; |
|
278
|
|
|
|
|
|
|
|
|
279
|
0
|
|
|
|
|
|
return \%info; |
|
280
|
|
|
|
|
|
|
} |
|
281
|
|
|
|
|
|
|
|
|
282
|
|
|
|
|
|
|
# ---- AUTOLOAD ---- |
|
283
|
|
|
|
|
|
|
|
|
284
|
|
|
|
|
|
|
sub AUTOLOAD { |
|
285
|
0
|
|
|
0
|
|
|
my ($self, @args) = @_; |
|
286
|
0
|
|
|
|
|
|
our $AUTOLOAD; |
|
287
|
0
|
|
|
|
|
|
my $name = $AUTOLOAD =~ s/^.*:://r; |
|
288
|
|
|
|
|
|
|
|
|
289
|
0
|
|
0
|
|
|
|
$name = $aliases{$name} // $name; |
|
290
|
|
|
|
|
|
|
|
|
291
|
0
|
|
|
|
|
|
$self->_call($name, @args); |
|
292
|
|
|
|
|
|
|
} |
|
293
|
|
|
|
|
|
|
|
|
294
|
|
|
|
|
|
|
1; |
|
295
|
|
|
|
|
|
|
|
|
296
|
|
|
|
|
|
|
__END__ |
|
297
|
|
|
|
|
|
|
|
|
298
|
|
|
|
|
|
|
=pod |
|
299
|
|
|
|
|
|
|
|
|
300
|
|
|
|
|
|
|
=encoding UTF-8 |
|
301
|
|
|
|
|
|
|
|
|
302
|
|
|
|
|
|
|
=head1 NAME |
|
303
|
|
|
|
|
|
|
|
|
304
|
|
|
|
|
|
|
Data::TagDB::WellKnown - Work with Tag databases |
|
305
|
|
|
|
|
|
|
|
|
306
|
|
|
|
|
|
|
=head1 VERSION |
|
307
|
|
|
|
|
|
|
|
|
308
|
|
|
|
|
|
|
version v0.12 |
|
309
|
|
|
|
|
|
|
|
|
310
|
|
|
|
|
|
|
=head1 SYNOPSIS |
|
311
|
|
|
|
|
|
|
|
|
312
|
|
|
|
|
|
|
use Data::TagDB; |
|
313
|
|
|
|
|
|
|
|
|
314
|
|
|
|
|
|
|
my $db = Data::TagDB->new(...); |
|
315
|
|
|
|
|
|
|
|
|
316
|
|
|
|
|
|
|
my Data::TagDB::WellKnown $wk = $db->wk; |
|
317
|
|
|
|
|
|
|
|
|
318
|
|
|
|
|
|
|
my Data::TagDB::Tag $tag = $wk->...; |
|
319
|
|
|
|
|
|
|
|
|
320
|
|
|
|
|
|
|
This package provides access to well known tags. |
|
321
|
|
|
|
|
|
|
|
|
322
|
|
|
|
|
|
|
See also L<Data::TagDB::Tutorial::WellKnown>. |
|
323
|
|
|
|
|
|
|
|
|
324
|
|
|
|
|
|
|
This package inherits from L<Data::Identifier::Interface::Known> (since v0.11). |
|
325
|
|
|
|
|
|
|
|
|
326
|
|
|
|
|
|
|
=head1 AUTHOR |
|
327
|
|
|
|
|
|
|
|
|
328
|
|
|
|
|
|
|
Philipp Schafft <lion@cpan.org> |
|
329
|
|
|
|
|
|
|
|
|
330
|
|
|
|
|
|
|
=head1 COPYRIGHT AND LICENSE |
|
331
|
|
|
|
|
|
|
|
|
332
|
|
|
|
|
|
|
This software is Copyright (c) 2024-2025 by Philipp Schafft <lion@cpan.org>. |
|
333
|
|
|
|
|
|
|
|
|
334
|
|
|
|
|
|
|
This is free software, licensed under: |
|
335
|
|
|
|
|
|
|
|
|
336
|
|
|
|
|
|
|
The Artistic License 2.0 (GPL Compatible) |
|
337
|
|
|
|
|
|
|
|
|
338
|
|
|
|
|
|
|
=cut |