rabbit-slide-kou-osc-2014-tokyo-fall 2014.10.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.rd +43 -0
- data/Rakefile +129 -0
- data/config.yaml +24 -0
- data/images/full-text-server-search.svg +652 -0
- data/images/full-text-server-update.svg +656 -0
- data/images/integrate-with-full-text-server.svg +623 -0
- data/mysql-japanese-full-text-search.rab +772 -0
- data/pdf/osc-2014-tokyo-fall-mysql-japanese-full-text-search.pdf +0 -0
- data/theme.rb +6 -0
- metadata +89 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 22df75a4afd6678354d24d8748274df382dd686d
|
4
|
+
data.tar.gz: 2ae0c7d4d295c3a442f34553b034aacb5f8d41ae
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 65591ac1dcd0442f24688d0dc2d7401cd842cb93734f78302baeaa1312b61cc368e114506c75ee08ecdfa1a30b446bbabd2c14c6f59fdc556100498f1ecf53dd
|
7
|
+
data.tar.gz: 1341e770d78b82906827ea68dc3fc3cb15eeb7d4b19d43ac37ba088a68cdaed89d8e33088c233e4c0b61718ce7e222da52372b009a221c29e9a376f5a1537710
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
mysql-japanese-full-text-search.rab
|
data/README.rd
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
= いろいろ考えると日本語の全文検索もMySQLがいいね!
|
2
|
+
|
3
|
+
MySQLは広く使われているRDBMSです。速いし、レプリケーションのノウハウもあるし、Web上にたくさんの情報もあるからいざというときも安心、というのがその理由でしょう。
|
4
|
+
|
5
|
+
そんなMySQLの弱点の1つがデフォルトでは日本語で全文検索できないことです。でも、日本語で全文検索したいし。。。どうしよう。
|
6
|
+
|
7
|
+
そんなあなたに最近の日本語の全文検索事情を紹介します。Solr?Elasticsearch?Groonga?PostgreSQLはどうやっているの?Mroonga?Sphinx?
|
8
|
+
|
9
|
+
いろいろ考えると日本語で全文検索するときもMySQLを使うのがいいね!と思えてくるから不思議です。最近の日本語の全文検索事情を聞いて一緒に考えてみませんか?
|
10
|
+
|
11
|
+
== ライセンス
|
12
|
+
|
13
|
+
=== その他
|
14
|
+
|
15
|
+
上述以外のファイルです。
|
16
|
+
|
17
|
+
CC BY-SA 4.0
|
18
|
+
|
19
|
+
原著作者名には以下のどちらかを使ってください。
|
20
|
+
|
21
|
+
* 須藤功平
|
22
|
+
* Kouhei Sutou
|
23
|
+
|
24
|
+
== 作者向け
|
25
|
+
|
26
|
+
=== 表示
|
27
|
+
|
28
|
+
rake
|
29
|
+
|
30
|
+
=== 公開
|
31
|
+
|
32
|
+
rake publish
|
33
|
+
|
34
|
+
== 閲覧者向け
|
35
|
+
|
36
|
+
=== インストール
|
37
|
+
|
38
|
+
gem install rabbit-slide-kou-osc-2014-tokyo-fall
|
39
|
+
|
40
|
+
=== 表示
|
41
|
+
|
42
|
+
rabbit rabbit-slide-kou-osc-2014-tokyo-fall.gem
|
43
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
require "benchmark"
|
2
|
+
require "rabbit/task/slide"
|
3
|
+
|
4
|
+
# Edit ./config.yaml to customize meta data
|
5
|
+
|
6
|
+
spec = nil
|
7
|
+
Rabbit::Task::Slide.new do |task|
|
8
|
+
spec = task.spec
|
9
|
+
spec.files += Dir.glob("images/**/*.*")
|
10
|
+
# spec.files -= Dir.glob("private/**/*.*")
|
11
|
+
spec.add_runtime_dependency("groonga", ">= 1.0.2")
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Tag #{spec.version}"
|
15
|
+
task :tag do
|
16
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
17
|
+
sh("git", "push", "--tags")
|
18
|
+
end
|
19
|
+
|
20
|
+
namespace :benchmark do
|
21
|
+
benchmark_dir = "benchmark"
|
22
|
+
tmp_dir = "#{benchmark_dir}/data"
|
23
|
+
data_dir = "#{benchmark_dir}/data"
|
24
|
+
|
25
|
+
directory tmp_dir
|
26
|
+
directory data_dir
|
27
|
+
|
28
|
+
data_download_base_url =
|
29
|
+
"https://github.com/livedoor/datasets/raw/master"
|
30
|
+
data_tgz = "#{data_dir}/ldgourmet.tar.gz"
|
31
|
+
file data_tgz => data_dir do
|
32
|
+
sh("wget",
|
33
|
+
"--output-document", data_tgz,
|
34
|
+
"#{data_download_base_url}/#{File.basename(data_tgz)}")
|
35
|
+
end
|
36
|
+
|
37
|
+
ratings_csv = "#{data_dir}/ratings.csv"
|
38
|
+
file ratings_csv => data_tgz do
|
39
|
+
cd(data_dir) do
|
40
|
+
sh("tar", "xvf", File.basename(data_tgz))
|
41
|
+
end
|
42
|
+
touch(ratings_csv) if File.exist?(ratings_csv)
|
43
|
+
end
|
44
|
+
|
45
|
+
n_records_list = [
|
46
|
+
1000,
|
47
|
+
5000,
|
48
|
+
10000,
|
49
|
+
100000,
|
50
|
+
:all,
|
51
|
+
:all_index,
|
52
|
+
:all_index_id,
|
53
|
+
]
|
54
|
+
|
55
|
+
prepared_time_stamp = "#{tmp_dir}/prepared.time_stamp"
|
56
|
+
initialize_database_sql = "#{benchmark_dir}/initialize-database.sql"
|
57
|
+
convert_ratings_to_sql = "#{benchmark_dir}/convert-ratings-to-sql.rb"
|
58
|
+
prepare_files = [
|
59
|
+
tmp_dir,
|
60
|
+
ratings_csv,
|
61
|
+
initialize_database_sql,
|
62
|
+
convert_ratings_to_sql,
|
63
|
+
]
|
64
|
+
file prepared_time_stamp => prepare_files do
|
65
|
+
sh("mysql -u root < #{initialize_database_sql}")
|
66
|
+
n_records_list.each do |n_records|
|
67
|
+
if n_records.is_a?(Symbol)
|
68
|
+
read_command = "cat"
|
69
|
+
else
|
70
|
+
read_command = "head -#{n_records + 1}"
|
71
|
+
end
|
72
|
+
sh("#{read_command} #{ratings_csv} | " +
|
73
|
+
"#{convert_ratings_to_sql} ratings_#{n_records} | " +
|
74
|
+
"mysql -u root full_text_search")
|
75
|
+
end
|
76
|
+
touch(prepared_time_stamp)
|
77
|
+
end
|
78
|
+
|
79
|
+
desc "Run benchmark"
|
80
|
+
task :run => prepared_time_stamp do
|
81
|
+
queries = [
|
82
|
+
[:and, "ラーメン"],
|
83
|
+
[:and, "ラーメン", "焼き肉"],
|
84
|
+
[:or, "ラーメン", "焼き肉"],
|
85
|
+
]
|
86
|
+
queries.each do |query|
|
87
|
+
operator, *keywords = query
|
88
|
+
n_records_list.each do |n_records|
|
89
|
+
if n_records == :all_index or n_records == :all_index_id
|
90
|
+
keywords_in_boolean_mode = keywords.collect do |keyword|
|
91
|
+
if operator == :and
|
92
|
+
"+#{keyword}"
|
93
|
+
else
|
94
|
+
keyword
|
95
|
+
end
|
96
|
+
end
|
97
|
+
boolean_mode_query = keywords_in_boolean_mode.join(" ")
|
98
|
+
condition =
|
99
|
+
"MATCH (comment) " +
|
100
|
+
"AGAINST (\"#{boolean_mode_query}\" IN BOOLEAN MODE)"
|
101
|
+
else
|
102
|
+
conditions = keywords.collect do |keyword|
|
103
|
+
"#{comment} LIKE \"%#{keyword}%\""
|
104
|
+
end
|
105
|
+
condition = conditions.join(" #{operator.to_s.upcase} ")
|
106
|
+
end
|
107
|
+
table_name = "ratings_#{n_records}"
|
108
|
+
|
109
|
+
sql = <<-SQL
|
110
|
+
SELECT AVG(CHAR_LENGTH(comment)) AS average,
|
111
|
+
MIN(CHAR_LENGTH(comment)) as min,
|
112
|
+
MAX(CHAR_LENGTH(comment)) as max
|
113
|
+
FROM #{table_name};
|
114
|
+
SQL
|
115
|
+
sh("mysql -u root full_text_search -e '#{sql}'")
|
116
|
+
|
117
|
+
sql = <<-SQL
|
118
|
+
SET SESSION query_cache_type = OFF;
|
119
|
+
SELECT COUNT(*) FROM #{table_name} WHERE #{condition};
|
120
|
+
SQL
|
121
|
+
elapsed = Benchmark.measure do
|
122
|
+
sh("mysql -u root full_text_search -e '#{sql}'")
|
123
|
+
end
|
124
|
+
puts("#{n_records}: #{elapsed}")
|
125
|
+
$stdout.flush
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
id: osc-2014-tokyo-fall
|
3
|
+
base_name: mysql-japanese-full-text-search
|
4
|
+
tags:
|
5
|
+
- rabbit
|
6
|
+
- mysql
|
7
|
+
- full-text-search
|
8
|
+
- mroonga
|
9
|
+
presentation_date: 2014-10-18
|
10
|
+
version: 2014.10.18.0
|
11
|
+
licenses:
|
12
|
+
- CC BY-SA 4.0
|
13
|
+
slideshare_id: osc-2014-tokyo-fall
|
14
|
+
speaker_deck_id: iroirokao-erutori-ben-yu-falsequan-wen-jian-suo-momysqlgaiine
|
15
|
+
ustream_id:
|
16
|
+
vimeo_id:
|
17
|
+
youtube_id:
|
18
|
+
author:
|
19
|
+
markup_language: :rd
|
20
|
+
name: Kouhei Sutou
|
21
|
+
email: kou@cozmixng.org
|
22
|
+
rubygems_user: kou
|
23
|
+
slideshare_user: kou
|
24
|
+
speaker_deck_user: kou
|
@@ -0,0 +1,652 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
width="446.68063"
|
14
|
+
height="258.92844"
|
15
|
+
id="svg2"
|
16
|
+
version="1.1"
|
17
|
+
inkscape:version="0.48.5 r10040"
|
18
|
+
sodipodi:docname="full-text-server-search.svg">
|
19
|
+
<defs
|
20
|
+
id="defs4">
|
21
|
+
<marker
|
22
|
+
inkscape:stockid="Arrow1Mend"
|
23
|
+
orient="auto"
|
24
|
+
refY="0"
|
25
|
+
refX="0"
|
26
|
+
id="Arrow1Mend"
|
27
|
+
style="overflow:visible">
|
28
|
+
<path
|
29
|
+
id="path6166"
|
30
|
+
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
31
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
32
|
+
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
33
|
+
inkscape:connector-curvature="0" />
|
34
|
+
</marker>
|
35
|
+
<filter
|
36
|
+
id="filter3927"
|
37
|
+
inkscape:label="Drop Shadow"
|
38
|
+
color-interpolation-filters="sRGB">
|
39
|
+
<feFlood
|
40
|
+
id="feFlood3929"
|
41
|
+
flood-opacity="0.5"
|
42
|
+
flood-color="rgb(0,0,0)"
|
43
|
+
result="flood" />
|
44
|
+
<feComposite
|
45
|
+
id="feComposite3931"
|
46
|
+
in2="SourceGraphic"
|
47
|
+
in="flood"
|
48
|
+
operator="in"
|
49
|
+
result="composite1" />
|
50
|
+
<feGaussianBlur
|
51
|
+
id="feGaussianBlur3933"
|
52
|
+
stdDeviation="1"
|
53
|
+
result="blur" />
|
54
|
+
<feOffset
|
55
|
+
id="feOffset3935"
|
56
|
+
dx="1"
|
57
|
+
dy="1"
|
58
|
+
result="offset" />
|
59
|
+
<feComposite
|
60
|
+
id="feComposite3937"
|
61
|
+
in2="offset"
|
62
|
+
in="SourceGraphic"
|
63
|
+
operator="over"
|
64
|
+
result="composite2" />
|
65
|
+
</filter>
|
66
|
+
<filter
|
67
|
+
id="filter4119"
|
68
|
+
inkscape:label="Drop Shadow"
|
69
|
+
color-interpolation-filters="sRGB">
|
70
|
+
<feFlood
|
71
|
+
id="feFlood4121"
|
72
|
+
flood-opacity="0.25"
|
73
|
+
flood-color="rgb(0,0,0)"
|
74
|
+
result="flood" />
|
75
|
+
<feComposite
|
76
|
+
id="feComposite4123"
|
77
|
+
in2="SourceGraphic"
|
78
|
+
in="flood"
|
79
|
+
operator="in"
|
80
|
+
result="composite1" />
|
81
|
+
<feGaussianBlur
|
82
|
+
id="feGaussianBlur4125"
|
83
|
+
stdDeviation="1"
|
84
|
+
result="blur" />
|
85
|
+
<feOffset
|
86
|
+
id="feOffset4127"
|
87
|
+
dx="0.5"
|
88
|
+
dy="0.5"
|
89
|
+
result="offset" />
|
90
|
+
<feComposite
|
91
|
+
id="feComposite4129"
|
92
|
+
in2="offset"
|
93
|
+
in="SourceGraphic"
|
94
|
+
operator="over"
|
95
|
+
result="composite2" />
|
96
|
+
</filter>
|
97
|
+
<filter
|
98
|
+
id="filter4583"
|
99
|
+
inkscape:label="Drop Shadow"
|
100
|
+
color-interpolation-filters="sRGB">
|
101
|
+
<feFlood
|
102
|
+
id="feFlood4585"
|
103
|
+
flood-opacity="0.25"
|
104
|
+
flood-color="rgb(0,0,0)"
|
105
|
+
result="flood" />
|
106
|
+
<feComposite
|
107
|
+
id="feComposite4587"
|
108
|
+
in2="SourceGraphic"
|
109
|
+
in="flood"
|
110
|
+
operator="in"
|
111
|
+
result="composite1" />
|
112
|
+
<feGaussianBlur
|
113
|
+
id="feGaussianBlur4589"
|
114
|
+
stdDeviation="1"
|
115
|
+
result="blur" />
|
116
|
+
<feOffset
|
117
|
+
id="feOffset4591"
|
118
|
+
dx="0.5"
|
119
|
+
dy="0.5"
|
120
|
+
result="offset" />
|
121
|
+
<feComposite
|
122
|
+
id="feComposite4593"
|
123
|
+
in2="offset"
|
124
|
+
in="SourceGraphic"
|
125
|
+
operator="over"
|
126
|
+
result="composite2" />
|
127
|
+
</filter>
|
128
|
+
<filter
|
129
|
+
id="filter3915"
|
130
|
+
inkscape:label="Drop Shadow"
|
131
|
+
color-interpolation-filters="sRGB">
|
132
|
+
<feFlood
|
133
|
+
id="feFlood3917"
|
134
|
+
flood-opacity="0.5"
|
135
|
+
flood-color="rgb(0,0,0)"
|
136
|
+
result="flood" />
|
137
|
+
<feComposite
|
138
|
+
id="feComposite3919"
|
139
|
+
in2="SourceGraphic"
|
140
|
+
in="flood"
|
141
|
+
operator="in"
|
142
|
+
result="composite1" />
|
143
|
+
<feGaussianBlur
|
144
|
+
id="feGaussianBlur3921"
|
145
|
+
stdDeviation="1"
|
146
|
+
result="blur" />
|
147
|
+
<feOffset
|
148
|
+
id="feOffset3923"
|
149
|
+
dx="1"
|
150
|
+
dy="1"
|
151
|
+
result="offset" />
|
152
|
+
<feComposite
|
153
|
+
id="feComposite3925"
|
154
|
+
in2="offset"
|
155
|
+
in="SourceGraphic"
|
156
|
+
operator="over"
|
157
|
+
result="composite2" />
|
158
|
+
</filter>
|
159
|
+
<linearGradient
|
160
|
+
y2="35.739632"
|
161
|
+
x2="21.408455"
|
162
|
+
y1="36.3904"
|
163
|
+
x1="22.686766"
|
164
|
+
gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,41.80576,-11.11866)"
|
165
|
+
gradientUnits="userSpaceOnUse"
|
166
|
+
id="linearGradient4374"
|
167
|
+
xlink:href="#linearGradient4356"
|
168
|
+
inkscape:collect="always" />
|
169
|
+
<linearGradient
|
170
|
+
y2="36.217758"
|
171
|
+
x2="22.626925"
|
172
|
+
y1="35.817974"
|
173
|
+
x1="20.661695"
|
174
|
+
gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,-7.07212,-9.82492)"
|
175
|
+
gradientUnits="userSpaceOnUse"
|
176
|
+
id="linearGradient4372"
|
177
|
+
xlink:href="#linearGradient4356"
|
178
|
+
inkscape:collect="always" />
|
179
|
+
<radialGradient
|
180
|
+
gradientUnits="userSpaceOnUse"
|
181
|
+
gradientTransform="matrix(1,0,0,0.681917,0,8.233773)"
|
182
|
+
r="13.56536"
|
183
|
+
fy="19.836468"
|
184
|
+
fx="16.214741"
|
185
|
+
cy="19.836468"
|
186
|
+
cx="16.214741"
|
187
|
+
id="radialGradient4350"
|
188
|
+
xlink:href="#linearGradient4344"
|
189
|
+
inkscape:collect="always" />
|
190
|
+
<linearGradient
|
191
|
+
gradientTransform="translate(-13.125,-7)"
|
192
|
+
y2="35.803486"
|
193
|
+
x2="30.935921"
|
194
|
+
y1="29.553486"
|
195
|
+
x1="30.935921"
|
196
|
+
gradientUnits="userSpaceOnUse"
|
197
|
+
id="linearGradient4332"
|
198
|
+
xlink:href="#linearGradient3824"
|
199
|
+
inkscape:collect="always" />
|
200
|
+
<linearGradient
|
201
|
+
y2="35.803486"
|
202
|
+
x2="30.935921"
|
203
|
+
y1="29.553486"
|
204
|
+
x1="30.935921"
|
205
|
+
gradientTransform="translate(-12.41789,-7)"
|
206
|
+
gradientUnits="userSpaceOnUse"
|
207
|
+
id="linearGradient4326"
|
208
|
+
xlink:href="#linearGradient3824"
|
209
|
+
inkscape:collect="always" />
|
210
|
+
<linearGradient
|
211
|
+
gradientTransform="translate(0.707108,0)"
|
212
|
+
y2="35.803486"
|
213
|
+
x2="30.935921"
|
214
|
+
y1="29.553486"
|
215
|
+
x1="30.935921"
|
216
|
+
gradientUnits="userSpaceOnUse"
|
217
|
+
id="linearGradient4175"
|
218
|
+
xlink:href="#linearGradient3824"
|
219
|
+
inkscape:collect="always" />
|
220
|
+
<radialGradient
|
221
|
+
gradientUnits="userSpaceOnUse"
|
222
|
+
r="9.1620579"
|
223
|
+
fy="17.064077"
|
224
|
+
fx="29.344931"
|
225
|
+
cy="17.064077"
|
226
|
+
cx="29.344931"
|
227
|
+
id="radialGradient3806"
|
228
|
+
xlink:href="#linearGradient3800"
|
229
|
+
inkscape:collect="always" />
|
230
|
+
<linearGradient
|
231
|
+
id="linearGradient3800">
|
232
|
+
<stop
|
233
|
+
id="stop3802"
|
234
|
+
offset="0.0000000"
|
235
|
+
style="stop-color:#f4d9b1;stop-opacity:1.0000000;" />
|
236
|
+
<stop
|
237
|
+
id="stop3804"
|
238
|
+
offset="1.0000000"
|
239
|
+
style="stop-color:#df9725;stop-opacity:1.0000000;" />
|
240
|
+
</linearGradient>
|
241
|
+
<linearGradient
|
242
|
+
id="linearGradient3816"
|
243
|
+
inkscape:collect="always">
|
244
|
+
<stop
|
245
|
+
id="stop3818"
|
246
|
+
offset="0"
|
247
|
+
style="stop-color:#000000;stop-opacity:1;" />
|
248
|
+
<stop
|
249
|
+
id="stop3820"
|
250
|
+
offset="1"
|
251
|
+
style="stop-color:#000000;stop-opacity:0;" />
|
252
|
+
</linearGradient>
|
253
|
+
<linearGradient
|
254
|
+
id="linearGradient3824">
|
255
|
+
<stop
|
256
|
+
id="stop3826"
|
257
|
+
offset="0"
|
258
|
+
style="stop-color:#ffffff;stop-opacity:1;" />
|
259
|
+
<stop
|
260
|
+
id="stop3828"
|
261
|
+
offset="1.0000000"
|
262
|
+
style="stop-color:#c9c9c9;stop-opacity:1.0000000;" />
|
263
|
+
</linearGradient>
|
264
|
+
<linearGradient
|
265
|
+
id="linearGradient4163">
|
266
|
+
<stop
|
267
|
+
id="stop4165"
|
268
|
+
offset="0.0000000"
|
269
|
+
style="stop-color:#3b74bc;stop-opacity:1.0000000;" />
|
270
|
+
<stop
|
271
|
+
id="stop4167"
|
272
|
+
offset="1.0000000"
|
273
|
+
style="stop-color:#2d5990;stop-opacity:1.0000000;" />
|
274
|
+
</linearGradient>
|
275
|
+
<linearGradient
|
276
|
+
id="linearGradient4338">
|
277
|
+
<stop
|
278
|
+
style="stop-color:#e9b15e;stop-opacity:1.0000000;"
|
279
|
+
offset="0.0000000"
|
280
|
+
id="stop4340" />
|
281
|
+
<stop
|
282
|
+
style="stop-color:#966416;stop-opacity:1.0000000;"
|
283
|
+
offset="1.0000000"
|
284
|
+
id="stop4342" />
|
285
|
+
</linearGradient>
|
286
|
+
<linearGradient
|
287
|
+
id="linearGradient4344">
|
288
|
+
<stop
|
289
|
+
id="stop4346"
|
290
|
+
offset="0"
|
291
|
+
style="stop-color:#727e0a;stop-opacity:1;" />
|
292
|
+
<stop
|
293
|
+
id="stop4348"
|
294
|
+
offset="1.0000000"
|
295
|
+
style="stop-color:#5b6508;stop-opacity:1.0000000;" />
|
296
|
+
</linearGradient>
|
297
|
+
<linearGradient
|
298
|
+
id="linearGradient4356"
|
299
|
+
inkscape:collect="always">
|
300
|
+
<stop
|
301
|
+
id="stop4358"
|
302
|
+
offset="0"
|
303
|
+
style="stop-color:#000000;stop-opacity:1;" />
|
304
|
+
<stop
|
305
|
+
id="stop4360"
|
306
|
+
offset="1"
|
307
|
+
style="stop-color:#000000;stop-opacity:0;" />
|
308
|
+
</linearGradient>
|
309
|
+
<inkscape:perspective
|
310
|
+
id="perspective72"
|
311
|
+
inkscape:persp3d-origin="24 : 16 : 1"
|
312
|
+
inkscape:vp_z="48 : 24 : 1"
|
313
|
+
inkscape:vp_y="0 : 1000 : 0"
|
314
|
+
inkscape:vp_x="0 : 24 : 1"
|
315
|
+
sodipodi:type="inkscape:persp3d" />
|
316
|
+
<radialGradient
|
317
|
+
inkscape:collect="always"
|
318
|
+
xlink:href="#linearGradient3816"
|
319
|
+
id="radialGradient5365"
|
320
|
+
gradientUnits="userSpaceOnUse"
|
321
|
+
cx="31.112698"
|
322
|
+
cy="19.008621"
|
323
|
+
fx="31.112698"
|
324
|
+
fy="19.008621"
|
325
|
+
r="8.6620579" />
|
326
|
+
<radialGradient
|
327
|
+
inkscape:collect="always"
|
328
|
+
xlink:href="#linearGradient4163"
|
329
|
+
id="radialGradient5367"
|
330
|
+
gradientUnits="userSpaceOnUse"
|
331
|
+
gradientTransform="matrix(1.297564,0,0,0.884831,-8.358505,4.940469)"
|
332
|
+
cx="28.089741"
|
333
|
+
cy="27.203083"
|
334
|
+
fx="28.089741"
|
335
|
+
fy="27.203083"
|
336
|
+
r="13.56536" />
|
337
|
+
<linearGradient
|
338
|
+
inkscape:collect="always"
|
339
|
+
xlink:href="#linearGradient3824"
|
340
|
+
id="linearGradient5369"
|
341
|
+
gradientUnits="userSpaceOnUse"
|
342
|
+
x1="30.935921"
|
343
|
+
y1="29.553486"
|
344
|
+
x2="30.935921"
|
345
|
+
y2="35.803486" />
|
346
|
+
<radialGradient
|
347
|
+
inkscape:collect="always"
|
348
|
+
xlink:href="#linearGradient3816"
|
349
|
+
id="radialGradient5371"
|
350
|
+
gradientUnits="userSpaceOnUse"
|
351
|
+
cx="31.112698"
|
352
|
+
cy="19.008621"
|
353
|
+
fx="31.112698"
|
354
|
+
fy="19.008621"
|
355
|
+
r="8.6620579" />
|
356
|
+
<radialGradient
|
357
|
+
inkscape:collect="always"
|
358
|
+
xlink:href="#linearGradient3800"
|
359
|
+
id="radialGradient5373"
|
360
|
+
gradientUnits="userSpaceOnUse"
|
361
|
+
gradientTransform="matrix(0.787998,0,0,0.787998,6.221198,3.617627)"
|
362
|
+
cx="29.344931"
|
363
|
+
cy="17.064077"
|
364
|
+
fx="29.344931"
|
365
|
+
fy="17.064077"
|
366
|
+
r="9.1620579" />
|
367
|
+
<linearGradient
|
368
|
+
inkscape:collect="always"
|
369
|
+
xlink:href="#linearGradient4356"
|
370
|
+
id="linearGradient5375"
|
371
|
+
gradientUnits="userSpaceOnUse"
|
372
|
+
gradientTransform="matrix(0.983375,0.181588,-0.181588,0.983375,6.231716,-2.651466)"
|
373
|
+
x1="20.661695"
|
374
|
+
y1="35.817974"
|
375
|
+
x2="22.626925"
|
376
|
+
y2="36.217758" />
|
377
|
+
<linearGradient
|
378
|
+
inkscape:collect="always"
|
379
|
+
xlink:href="#linearGradient4356"
|
380
|
+
id="linearGradient5377"
|
381
|
+
gradientUnits="userSpaceOnUse"
|
382
|
+
gradientTransform="matrix(-0.977685,0.210075,0.210075,0.977685,55.1096,-3.945209)"
|
383
|
+
x1="22.686766"
|
384
|
+
y1="36.3904"
|
385
|
+
x2="21.408455"
|
386
|
+
y2="35.739632" />
|
387
|
+
</defs>
|
388
|
+
<sodipodi:namedview
|
389
|
+
id="base"
|
390
|
+
pagecolor="#ffffff"
|
391
|
+
bordercolor="#666666"
|
392
|
+
borderopacity="1.0"
|
393
|
+
inkscape:pageopacity="0.0"
|
394
|
+
inkscape:pageshadow="2"
|
395
|
+
inkscape:zoom="2"
|
396
|
+
inkscape:cx="268.2082"
|
397
|
+
inkscape:cy="131.83433"
|
398
|
+
inkscape:document-units="px"
|
399
|
+
inkscape:current-layer="layer1"
|
400
|
+
showgrid="false"
|
401
|
+
fit-margin-top="10"
|
402
|
+
fit-margin-left="10"
|
403
|
+
fit-margin-right="10"
|
404
|
+
fit-margin-bottom="10"
|
405
|
+
inkscape:window-width="1482"
|
406
|
+
inkscape:window-height="869"
|
407
|
+
inkscape:window-x="1997"
|
408
|
+
inkscape:window-y="60"
|
409
|
+
inkscape:window-maximized="0" />
|
410
|
+
<metadata
|
411
|
+
id="metadata7">
|
412
|
+
<rdf:RDF>
|
413
|
+
<cc:Work
|
414
|
+
rdf:about="">
|
415
|
+
<dc:format>image/svg+xml</dc:format>
|
416
|
+
<dc:type
|
417
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
418
|
+
</cc:Work>
|
419
|
+
</rdf:RDF>
|
420
|
+
</metadata>
|
421
|
+
<g
|
422
|
+
inkscape:label="レイヤー 1"
|
423
|
+
inkscape:groupmode="layer"
|
424
|
+
id="layer1"
|
425
|
+
transform="translate(372.88483,-97.852283)">
|
426
|
+
<rect
|
427
|
+
style="color:#000000;fill:#efefef;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3927);enable-background:accumulate"
|
428
|
+
id="rect5141"
|
429
|
+
width="187.90053"
|
430
|
+
height="57.873974"
|
431
|
+
x="-143.49478"
|
432
|
+
y="282.51935"
|
433
|
+
rx="5" />
|
434
|
+
<text
|
435
|
+
xml:space="preserve"
|
436
|
+
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter4119);font-family:'M+ 2p';-inkscape-font-specification:'M+ 2p Medium'"
|
437
|
+
x="-81.266602"
|
438
|
+
y="317.61938"
|
439
|
+
id="text3755"
|
440
|
+
sodipodi:linespacing="125%"><tspan
|
441
|
+
sodipodi:role="line"
|
442
|
+
id="tspan3757"
|
443
|
+
x="-81.266602"
|
444
|
+
y="317.61938"><tspan
|
445
|
+
style="fill:#336889;fill-opacity:1"
|
446
|
+
id="tspan3775">My</tspan><tspan
|
447
|
+
style="fill:#f8900c;fill-opacity:1"
|
448
|
+
id="tspan3789">SQL</tspan></tspan></text>
|
449
|
+
<rect
|
450
|
+
rx="5"
|
451
|
+
y="202.99539"
|
452
|
+
x="-318.39453"
|
453
|
+
height="29.961571"
|
454
|
+
width="339.92606"
|
455
|
+
id="rect3877"
|
456
|
+
style="color:#000000;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3915);enable-background:accumulate" />
|
457
|
+
<text
|
458
|
+
xml:space="preserve"
|
459
|
+
style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter4583);font-family:Sans;-inkscape-font-specification:Sans"
|
460
|
+
x="-218.87646"
|
461
|
+
y="224.11757"
|
462
|
+
id="text3879"
|
463
|
+
sodipodi:linespacing="125%"><tspan
|
464
|
+
sodipodi:role="line"
|
465
|
+
id="tspan3881"
|
466
|
+
x="-218.87646"
|
467
|
+
y="224.11757">アプリケーション</tspan></text>
|
468
|
+
<rect
|
469
|
+
rx="5"
|
470
|
+
y="282.51935"
|
471
|
+
x="-343.49478"
|
472
|
+
height="57.873974"
|
473
|
+
width="187.90053"
|
474
|
+
id="rect5105"
|
475
|
+
style="color:#000000;fill:#efefef;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3927);enable-background:accumulate" />
|
476
|
+
<text
|
477
|
+
sodipodi:linespacing="125%"
|
478
|
+
id="text5097"
|
479
|
+
y="319.76224"
|
480
|
+
x="-326.40945"
|
481
|
+
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter4119);font-family:'M+ 2p';-inkscape-font-specification:'M+ 2p Medium'"
|
482
|
+
xml:space="preserve"><tspan
|
483
|
+
y="319.76224"
|
484
|
+
x="-326.40945"
|
485
|
+
id="tspan5099"
|
486
|
+
sodipodi:role="line">全文検索サーバー</tspan></text>
|
487
|
+
<g
|
488
|
+
id="layer2"
|
489
|
+
inkscape:label="dalsi cipek"
|
490
|
+
style="display:inline"
|
491
|
+
transform="translate(-188.99661,98.00572)">
|
492
|
+
<path
|
493
|
+
transform="matrix(1.77551,0,0,0.583984,-24.25322,28.27856)"
|
494
|
+
sodipodi:type="arc"
|
495
|
+
style="color:#000000;fill:url(#radialGradient5365);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
|
496
|
+
id="path4306"
|
497
|
+
sodipodi:cx="31.112698"
|
498
|
+
sodipodi:cy="19.008621"
|
499
|
+
sodipodi:rx="8.6620579"
|
500
|
+
sodipodi:ry="8.6620579"
|
501
|
+
d="m 39.774755,19.008621 c 0,4.783923 -3.878135,8.662058 -8.662057,8.662058 -4.783923,0 -8.662058,-3.878135 -8.662058,-8.662058 0,-4.783922 3.878135,-8.662058 8.662058,-8.662058 4.783922,0 8.662057,3.878136 8.662057,8.662058 z" />
|
502
|
+
<path
|
503
|
+
inkscape:connector-curvature="0"
|
504
|
+
style="color:#000000;fill:url(#radialGradient5367);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
505
|
+
d="m 25.986174,41.636039 10.606602,0 c 3.005204,0 5.980484,-1.101932 7.071067,-4.242641 1.035639,-2.982476 0.176777,-8.662058 -6.540737,-13.258252 l -12.551146,0 c -6.717514,4.24264 -7.556991,10.044831 -6.010407,13.435028 1.575595,3.45379 4.24264,4.065865 7.424621,4.065865 z"
|
506
|
+
id="path4308"
|
507
|
+
sodipodi:nodetypes="cczcczc" />
|
508
|
+
<path
|
509
|
+
inkscape:connector-curvature="0"
|
510
|
+
style="color:#000000;fill:url(#linearGradient5369);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
|
511
|
+
d="m 26.693281,25.726136 c 3.18198,2.828427 4.596194,13.081476 4.596194,13.081476 0,0 1.414213,-10.253048 3.889087,-13.258252 l -8.485281,0.176776 z"
|
512
|
+
id="path4310"
|
513
|
+
sodipodi:nodetypes="cccc" />
|
514
|
+
<path
|
515
|
+
inkscape:connector-curvature="0"
|
516
|
+
sodipodi:nodetypes="cccc"
|
517
|
+
id="path4312"
|
518
|
+
d="m 28.972721,26.786797 c 0,0 -2.151323,1.660335 -1.965991,3.660533 -2.041226,-1.800794 -2.099873,-5.251524 -2.099873,-5.251524 l 4.065864,1.590991 z"
|
519
|
+
style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
|
520
|
+
<path
|
521
|
+
inkscape:connector-curvature="0"
|
522
|
+
sodipodi:nodetypes="cczcczc"
|
523
|
+
id="path4314"
|
524
|
+
d="m 25.914862,40.593933 10.493447,-0.0221 c 2.639723,0 5.253161,-0.967919 6.211112,-3.726667 0.909689,-2.61976 -0.09472,-7.608614 -5.995279,-11.645837 L 25.099417,24.956264 c -5.900557,3.726667 -7.04262,8.823219 -5.662029,12.044182 1.380592,3.220963 3.395211,3.57139 6.477474,3.593487 z"
|
525
|
+
style="opacity:0.21518986;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999976px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
526
|
+
<path
|
527
|
+
inkscape:connector-curvature="0"
|
528
|
+
style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
|
529
|
+
d="m 33.410795,26.786797 c 0,0 2.151323,1.660335 1.965991,3.660533 2.041226,-1.800794 2.099873,-5.251524 2.099873,-5.251524 l -4.065864,1.590991 z"
|
530
|
+
id="path4316"
|
531
|
+
sodipodi:nodetypes="cccc" />
|
532
|
+
<path
|
533
|
+
d="m 39.774755,19.008621 c 0,4.783923 -3.878135,8.662058 -8.662057,8.662058 -4.783923,0 -8.662058,-3.878135 -8.662058,-8.662058 0,-4.783922 3.878135,-8.662058 8.662058,-8.662058 4.783922,0 8.662057,3.878136 8.662057,8.662058 z"
|
534
|
+
sodipodi:ry="8.6620579"
|
535
|
+
sodipodi:rx="8.6620579"
|
536
|
+
sodipodi:cy="19.008621"
|
537
|
+
sodipodi:cx="31.112698"
|
538
|
+
id="path4318"
|
539
|
+
style="color:#000000;fill:url(#radialGradient5371);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
|
540
|
+
sodipodi:type="arc"
|
541
|
+
transform="translate(-0.125,3.5)" />
|
542
|
+
<path
|
543
|
+
sodipodi:type="arc"
|
544
|
+
style="color:#000000;fill:url(#radialGradient5373);fill-opacity:1;fill-rule:evenodd;stroke:#c17d11;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
545
|
+
id="path4320"
|
546
|
+
sodipodi:cx="31.112698"
|
547
|
+
sodipodi:cy="19.008621"
|
548
|
+
sodipodi:rx="8.6620579"
|
549
|
+
sodipodi:ry="8.6620579"
|
550
|
+
d="m 39.774755,19.008621 c 0,4.783923 -3.878135,8.662058 -8.662057,8.662058 -4.783923,0 -8.662058,-3.878135 -8.662058,-8.662058 0,-4.783922 3.878135,-8.662058 8.662058,-8.662058 4.783922,0 8.662057,3.878136 8.662057,8.662058 z" />
|
551
|
+
<path
|
552
|
+
d="m 39.774755,19.008621 c 0,4.783923 -3.878135,8.662058 -8.662057,8.662058 -4.783923,0 -8.662058,-3.878135 -8.662058,-8.662058 0,-4.783922 3.878135,-8.662058 8.662058,-8.662058 4.783922,0 8.662057,3.878136 8.662057,8.662058 z"
|
553
|
+
sodipodi:ry="8.6620579"
|
554
|
+
sodipodi:rx="8.6620579"
|
555
|
+
sodipodi:cy="19.008621"
|
556
|
+
sodipodi:cx="31.112698"
|
557
|
+
id="path4322"
|
558
|
+
style="opacity:0.19620254;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.14012825px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
559
|
+
sodipodi:type="arc"
|
560
|
+
transform="matrix(0.877095,0,0,0.877095,3.823927,2.336267)" />
|
561
|
+
<path
|
562
|
+
inkscape:connector-curvature="0"
|
563
|
+
style="opacity:0.22784807;color:#000000;fill:url(#linearGradient5375);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible"
|
564
|
+
d="m 21.85179,40.775197 c -1.247607,-0.544969 -1.805994,-1.858277 -1.805994,-1.858277 0.841281,-4.069136 3.719925,-7.046216 3.719925,-7.046216 0,0 -2.279321,6.411514 -1.913931,8.904493 z"
|
565
|
+
id="path4354"
|
566
|
+
sodipodi:nodetypes="cccc" />
|
567
|
+
<path
|
568
|
+
inkscape:connector-curvature="0"
|
569
|
+
sodipodi:nodetypes="cccc"
|
570
|
+
id="path4364"
|
571
|
+
d="m 40.757497,39.916846 c 1.231251,-0.580978 1.80438,-2.002321 1.80438,-2.002321 -0.95912,-4.042983 -3.976149,-6.842821 -3.976149,-6.842821 0,0 2.464593,6.342602 2.171769,8.845142 z"
|
572
|
+
style="opacity:0.22784807;color:#000000;fill:url(#linearGradient5377);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible" />
|
573
|
+
</g>
|
574
|
+
<path
|
575
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
|
576
|
+
d="m -149.28571,148.93361 0,39"
|
577
|
+
id="path5379"
|
578
|
+
inkscape:connector-curvature="0"
|
579
|
+
sodipodi:nodetypes="cc" />
|
580
|
+
<path
|
581
|
+
sodipodi:nodetypes="cc"
|
582
|
+
inkscape:connector-curvature="0"
|
583
|
+
id="path6597"
|
584
|
+
d="m -169.28571,189.43361 0,-39"
|
585
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" />
|
586
|
+
<path
|
587
|
+
sodipodi:nodetypes="cc"
|
588
|
+
inkscape:connector-curvature="0"
|
589
|
+
id="path6599"
|
590
|
+
d="m -110.78571,238.93361 26,36"
|
591
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" />
|
592
|
+
<path
|
593
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
|
594
|
+
d="m -104.11473,276.05497 -26,-36"
|
595
|
+
id="path6601"
|
596
|
+
inkscape:connector-curvature="0"
|
597
|
+
sodipodi:nodetypes="cc" />
|
598
|
+
<path
|
599
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
|
600
|
+
d="m -230.78571,276.05497 26,-36"
|
601
|
+
id="path6603"
|
602
|
+
inkscape:connector-curvature="0"
|
603
|
+
sodipodi:nodetypes="cc" />
|
604
|
+
<path
|
605
|
+
sodipodi:nodetypes="cc"
|
606
|
+
inkscape:connector-curvature="0"
|
607
|
+
id="path6605"
|
608
|
+
d="m -184.11473,238.93361 -26,36"
|
609
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" />
|
610
|
+
<text
|
611
|
+
xml:space="preserve"
|
612
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
613
|
+
x="247.5"
|
614
|
+
y="69.928436"
|
615
|
+
id="text6607"
|
616
|
+
sodipodi:linespacing="125%"
|
617
|
+
transform="translate(-372.88483,97.852283)"><tspan
|
618
|
+
sodipodi:role="line"
|
619
|
+
id="tspan6609"
|
620
|
+
x="247.5"
|
621
|
+
y="69.928436" /></text>
|
622
|
+
<text
|
623
|
+
xml:space="preserve"
|
624
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
625
|
+
x="-130.88483"
|
626
|
+
y="177.28072"
|
627
|
+
id="text6611"
|
628
|
+
sodipodi:linespacing="125%"><tspan
|
629
|
+
sodipodi:role="line"
|
630
|
+
id="tspan6613"
|
631
|
+
x="-130.88483"
|
632
|
+
y="177.28072">➀</tspan></text>
|
633
|
+
<text
|
634
|
+
xml:space="preserve"
|
635
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans;text-anchor:start;text-align:start;writing-mode:lr"
|
636
|
+
x="-78.384827"
|
637
|
+
y="265.78073"
|
638
|
+
id="text6615"
|
639
|
+
sodipodi:linespacing="125%"><tspan
|
640
|
+
sodipodi:role="line"
|
641
|
+
id="tspan3081">➂</tspan></text>
|
642
|
+
<text
|
643
|
+
xml:space="preserve"
|
644
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans;text-anchor:start;text-align:start;writing-mode:lr"
|
645
|
+
x="-268.38483"
|
646
|
+
y="268.28073"
|
647
|
+
id="text6619"
|
648
|
+
sodipodi:linespacing="125%"><tspan
|
649
|
+
sodipodi:role="line"
|
650
|
+
id="tspan7273">➁</tspan></text>
|
651
|
+
</g>
|
652
|
+
</svg>
|