Figure 4 with the best represented global words in the first plane (cos2 higher than 0.5 in either of the two factors). Names and positions.
sel.12.BRGW <-which((res.mfact.23$freq.sup$cos2[,1]>0.5)|(res.mfact.23$freq.sup$cos2[,2] > 0.5))
sel.12.BRGW
aspect asséchant beau bois boisé carton charpenté cuit
12 13 17 18 19 24 29 36
curieux dominé étable évent évolué évolution farineux finale
37 41 50 51 52 53 55 58
fraîcheur fruit fumée généreux humide limite matière mou
63 65 67 69 75 81 85 88
neuf noir nonboisé particulier plat réduction rond sec
91 94 95 98 102 112 115 117
souple sucrée sucrosité toasté vanillé vin alt bota
119 121 122 126 131 135 142 148
cafè cartró cedre cítric claudolor cos especiat floral
151 153 155 157 158 163 168 172
formatge fruitsec fum fusta gerani glicerol greix iode
174 176 177 179 180 181 182 184
liniment malaqualitat mantegós marcat neopre regalèssia secant sutja
187 190 191 192 198 213 216 221
taní torrat vainilla xocolata
222 225 227 230
plot.MFA(res.mfact.23,choix=c("freq"),invisible=c("row","col"),axes=c(1,2),select=sel.12.BRGW,unselect=1,
legend=list(plot=FALSE),habillage="none",autoLab = c("yes"),cex=0.8,
title="",graph.type="classic")
Figure with the best represented global words in the plane (3,4) (cos2 higher than 0.5 in either of the two factors). Names and positions.
sel.34.BRGW<-which((res.mfact.23$freq.sup$cos2[,3]>0.5)|(res.mfact.23$freq.sup$cos2[,4] > 0.5) )
plot.MFA(res.mfact.23,choix=c("freq"),invisible=c("row","col"),axes=c(3,4),select=sel.34.BRGW,unselect=1,
legend=list(plot=FALSE),habillage="none",autoLab = c("yes"),cex=0.8,
title="The best represented global words",graph.type="classic")
38 characteristic French words for the plane (1,2)
sel.12.BRGW.Fr <-which((res.mfact.23$freq.sup$cos2[c(1:135),1]>0.5)|(res.mfact.23$freq.sup$cos2[c(1:135),2] > 0.5))
sel.12.BRGW.Fr
aspect asséchant beau bois boisé carton charpenté cuit curieux
12 13 17 18 19 24 29 36 37
dominé étable évent évolué évolution farineux finale fraîcheur fruit
41 50 51 52 53 55 58 63 65
fumée généreux humide limite matière mou neuf noir nonboisé
67 69 75 81 85 88 91 94 95
particulier plat réduction rond sec souple sucrée sucrosité toasté
98 102 112 115 117 119 121 122 126
vanillé vin
131 135
cat(length(sel.12.BRGW.Fr))
38
Words12.BRGW.Fr <- data.frame(posit=as.vector(sel.12.BRGW.Fr), wordF4=names(sel.12.BRGW.Fr), lang="Fr")
Words12.BRGW.Fr
posit wordF4 lang
1 12 aspect Fr
2 13 asséchant Fr
3 17 beau Fr
4 18 bois Fr
5 19 boisé Fr
6 24 carton Fr
7 29 charpenté Fr
8 36 cuit Fr
9 37 curieux Fr
10 41 dominé Fr
11 50 étable Fr
12 51 évent Fr
13 52 évolué Fr
14 53 évolution Fr
15 55 farineux Fr
16 58 finale Fr
17 63 fraîcheur Fr
18 65 fruit Fr
19 67 fumée Fr
20 69 généreux Fr
21 75 humide Fr
22 81 limite Fr
23 85 matière Fr
24 88 mou Fr
25 91 neuf Fr
26 94 noir Fr
27 95 nonboisé Fr
28 98 particulier Fr
29 102 plat Fr
30 112 réduction Fr
31 115 rond Fr
32 117 sec Fr
33 119 souple Fr
34 121 sucrée Fr
35 122 sucrosité Fr
36 126 toasté Fr
37 131 vanillé Fr
38 135 vin Fr
French translation
df.WTR.Fr <- data.frame(orig= "aspect", transl="aspect")
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "asséchant", transl="drying") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "beau", transl="beautiful") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "bois", transl="wood") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "boisé", transl="woody") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "carton", transl="cardboard") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "charpenté", transl="structured") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "cuit", transl="cooked") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "curieux", transl="curious") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "dominé", transl="dominated") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "étable", transl="stable") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "évent", transl="staleness") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "évolué", transl="evolved") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "évolution", transl="development") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "farineux", transl="floury") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "finale", transl="final") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "fraîcheur", transl="freshness") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "fruit", transl="fruit") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "fumée", transl="smoke") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "généreux", transl="generous") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "humide", transl="wet") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "limite", transl="limit") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "matière", transl="material") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "mou", transl="soft") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "neuf", transl="new") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "noir", transl="black") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "nonboisé", transl="unwooded") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "particulier", transl="particular") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "plat", transl="flat") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "réduction", transl="reduction") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "rond", transl="round") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "sec", transl="dry") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "souple", transl="supple") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "sucrée", transl="sweet") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "sucrosité", transl="sweetness") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "toasté", transl="toasted") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "vanillé", transl="vanillin") )
df.WTR.Fr <- rbind(df.WTR.Fr, data.frame(orig= "vin", transl="wine") )
dim(df.WTR.Fr)
38 2
df.WTR.Fr
orig transl
1 aspect aspect
2 asséchant drying
3 beau beautiful
4 bois wood
5 boisé woody
6 carton cardboard
7 charpenté structured
8 cuit cooked
9 curieux curious
10 dominé dominated
11 étable stable
12 évent staleness
13 évolué evolved
14 évolution development
15 farineux floury
16 finale final
17 fraîcheur freshness
18 fruit fruit
19 fumée smoke
20 généreux generous
21 humide wet
22 limite limit
23 matière material
24 mou soft
25 neuf new
26 noir black
27 nonboisé unwooded
28 particulier particular
29 plat flat
30 réduction reduction
31 rond round
32 sec dry
33 souple supple
34 sucrée sweet
35 sucrosité sweetness
36 toasté toasted
37 vanillé vanillin
38 vin wine
To join French coordinates and their translation:
Coord.Fr.Fig4 <- data.frame(res.mfact.23$freq.sup$coord[sel.12.BRGW.Fr,], lang="Fr")
Coord.Fr.Fig4 <- merge(Coord.Fr.Fig4, df.WTR.Fr, by.x=0, by.y="orig")
Coord.Fr.Fig4[,c(1:5,9,10)]
Row.names Dim.1 Dim.2 Dim.3 Dim.4 lang transl
1 aspect 0.01597913 -0.853134728 0.009069728 0.03228269 Fr aspect
2 asséchant -0.67338104 -0.803561875 -0.101463172 0.27194795 Fr drying
3 beau 0.18464237 0.693693657 -0.094493630 -0.34464145 Fr beautiful
4 bois 1.30114701 0.051069203 -0.483807494 0.08205348 Fr wood
5 boisé 0.66641435 -0.480026128 -0.044177786 0.10843598 Fr woody
6 carton -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr cardboard
7 charpenté 1.24802969 -0.336910906 -0.255218575 0.22412317 Fr structured
8 cuit 0.01597913 -0.853134728 0.009069728 0.03228269 Fr cooked
9 curieux -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr curious
10 dominé 1.48972280 -0.132100595 -0.425383218 0.44185159 Fr dominated
11 étable -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr stable
12 évent -0.92317035 0.072908887 -0.754317378 0.28753767 Fr staleness
13 évolué 0.22963518 -1.193102877 0.338674359 0.03142973 Fr evolved
14 évolution -0.01757719 0.724909260 -0.116715947 -0.00354856 Fr development
15 farineux -0.74236722 -0.059917941 -0.540802652 -0.20512605 Fr floury
16 finale 1.23519276 -0.323182362 -0.272182884 0.14037764 Fr final
17 fraîcheur -0.60089901 0.385991015 0.172514233 0.19735824 Fr freshness
18 fruit -0.47749854 0.355953911 -0.027557246 0.06103203 Fr fruit
19 fumée -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr smoke
20 généreux 1.58489551 -0.002238351 -0.544394158 0.38322473 Fr generous
21 humide -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr wet
22 limite -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr limit
23 matière 1.58489551 -0.002238351 -0.544394158 0.38322473 Fr material
24 mou -0.74236722 -0.059917941 -0.540802652 -0.20512605 Fr soft
25 neuf 1.58489551 -0.002238351 -0.544394158 0.38322473 Fr new
26 noir -0.51200080 0.979784095 0.588623369 0.08993399 Fr black
27 nonboisé -0.68346651 0.164631867 0.048985206 0.30313197 Fr unwooded
28 particulier -0.30523593 -1.593741775 0.601692209 -0.23240807 Fr particular
29 plat -0.74236722 -0.059917941 -0.540802652 -0.20512605 Fr flat
30 réduction -0.74236722 -0.059917941 -0.540802652 -0.20512605 Fr reduction
31 rond -0.51200080 0.979784095 0.588623369 0.08993399 Fr round
32 sec -0.88066723 0.010392073 -0.646368809 0.11574179 Fr dry
33 souple -0.03439260 0.902010962 0.328552340 -0.57750861 Fr supple
34 sucrée 1.58489551 -0.002238351 -0.544394158 0.38322473 Fr sweet
35 sucrosité 0.34183745 -0.534850990 -0.070969914 -0.21484109 Fr sweetness
36 toasté 0.29012704 -1.118934073 0.300860299 -0.16743876 Fr toasted
37 vanillé 0.70680948 -0.354176022 -0.232543146 -0.06772137 Fr vanillin
38 vin 0.32738937 -0.090612082 0.085744578 0.12380635 Fr wine
30 characteristic Catalan words for the plane (1,2)
sel.12.BRGW.Cat <- which((res.mfact.23$freq.sup$cos2[c(136:230),1]>0.5)|(res.mfact.23$freq.sup$cos2[c(136:230),2] > 0.5))
sel.12.BRGW.Cat
alt bota cafè cartró cedre cítric claudolor cos
7 13 16 18 20 22 23 28
especiat floral formatge fruitsec fum fusta gerani glicerol
33 37 39 41 42 44 45 46
greix iode liniment malaqualitat mantegós marcat neopre regalèssia
47 49 52 55 56 57 63 78
secant sutja taní torrat vainilla xocolata
81 86 87 90 92 95
cat(length(sel.12.BRGW.Cat))
30
Words12.BRGW.Cat <- data.frame(posit=as.vector(sel.12.BRGW.Cat), wordF4=names(sel.12.BRGW.Cat), lang="Cat")
Words12.BRGW.Cat
posit wordF4 lang
1 7 alt Cat
2 13 bota Cat
3 16 cafè Cat
4 18 cartró Cat
5 20 cedre Cat
6 22 cítric Cat
7 23 claudolor Cat
8 28 cos Cat
9 33 especiat Cat
10 37 floral Cat
11 39 formatge Cat
12 41 fruitsec Cat
13 42 fum Cat
14 44 fusta Cat
15 45 gerani Cat
16 46 glicerol Cat
17 47 greix Cat
18 49 iode Cat
19 52 liniment Cat
20 55 malaqualitat Cat
21 56 mantegós Cat
22 57 marcat Cat
23 63 neopre Cat
24 78 regalèssia Cat
25 81 secant Cat
26 86 sutja Cat
27 87 taní Cat
28 90 torrat Cat
29 92 vainilla Cat
30 95 xocolata Cat
French translation
df.WTR.Cat <- data.frame(orig= "alt", transl="high")
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "bota", transl="barrel") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "cafè", transl="coffee") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "cartró", transl="cardboard") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "cedre", transl="cedar") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "cítric", transl="citrus") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "claudolor", transl="clove") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "cos", transl="full_bodied") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "especiat", transl="spicy") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "floral.1", transl="floral") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "formatge", transl="cheese") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "fruitsec", transl="nuts") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "fum", transl="smoke") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "fusta", transl="wood") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "gerani", transl="geranium") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "glicerol", transl="glycerol") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "greix", transl="fat") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "iode", transl="iodine") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "liniment", transl="liniment") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "malaqualitat", transl="poorquality") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "mantegós", transl="buttered") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "marcat", transl="marked") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "neopre", transl="neoprene") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "regalèssia", transl="licorice") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "secant", transl="drying") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "sutja", transl="soot") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "taní", transl="tannin") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "torrat", transl="toasted") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "vainilla", transl="vanilla") )
df.WTR.Cat <- rbind(df.WTR.Cat , data.frame(orig= "xocolata", transl="chocolate") )
dim(df.WTR.Cat)
30 2
df.WTR.Cat
orig transl
1 alt high
2 bota barrel
3 cafè coffee
4 cartró cardboard
5 cedre cedar
6 cítric citrus
7 claudolor clove
8 cos full_bodied
9 especiat spicy
10 floral.1 floral
11 formatge cheese
12 fruitsec nuts
13 fum smoke
14 fusta wood
15 gerani geranium
16 glicerol glycerol
17 greix fat
18 iode iodine
19 liniment liniment
20 malaqualitat poorquality
21 mantegós buttered
22 marcat marked
23 neopre neoprene
24 regalèssia licorice
25 secant drying
26 sutja soot
27 taní tannin
28 torrat toasted
29 vainilla vanilla
30 xocolata chocolate
To join Catalan coordinates and their translation. 29 characteristic Catalan words for the plane (1,2):
sel.12.BRGW.Cat
alt bota cafè cartró cedre cítric claudolor cos
7 13 16 18 20 22 23 28
especiat floral formatge fruitsec fum fusta gerani glicerol
33 37 39 41 42 44 45 46
greix iode liniment malaqualitat mantegós marcat neopre regalèssia
47 49 52 55 56 57 63 78
secant sutja taní torrat vainilla xocolata
81 86 87 90 92 95
Coord.Cat.Fig4 <- data.frame(res.mfact.23$freq.sup$coord[135+sel.12.BRGW.Cat,], lang="Cat")
Coord.Cat.Fig4 <- merge(Coord.Cat.Fig4, df.WTR.Cat, by.x=0, by.y="orig")
Coord.Cat.Fig4[,c(1:5,9,10)]
Row.names Dim.1 Dim.2 Dim.3 Dim.4 lang transl
1 alt 1.594762412 0.03621157 -0.422972137 0.355937434 Cat high
2 bota 1.594762412 0.03621157 -0.422972137 0.355937434 Cat barrel
3 cafè 1.499589705 -0.09365067 -0.303961198 0.414564298 Cat coffee
4 cartró -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat cardboard
5 cedre -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat cedar
6 cítric 0.239502079 -1.15465295 0.460096380 0.004142437 Cat citrus
7 claudolor 1.170024478 0.33762005 -0.480315219 -0.334345362 Cat clove
8 cos 0.862357705 -0.09456111 0.430474899 0.271621921 Cat full_bodied
9 especiat 1.197868440 0.19942101 -0.397440039 -0.161112684 Cat spicy
10 formatge -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat cheese
11 fruitsec 0.239502079 -1.15465295 0.460096380 0.004142437 Cat nuts
12 fum 0.812995160 0.31113997 -0.555916604 -0.265965432 Cat smoke
13 fusta 1.217970407 0.32673601 -0.174644124 0.071150592 Cat wood
14 gerani 0.933272460 0.30822729 -0.380418640 -0.505812763 Cat geranium
15 glicerol 0.933272460 0.30822729 -0.380418640 -0.505812763 Cat glycerol
16 greix 0.008356135 -0.56804162 -0.111703813 0.213163418 Cat fat
17 iode -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat iodine
18 liniment 0.933272460 0.30822729 -0.380418640 -0.505812763 Cat liniment
19 malaqualitat -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat poorquality
20 mantegós -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat buttered
21 marcat 1.594762412 0.03621157 -0.422972137 0.355937434 Cat marked
22 neopre -0.295369026 -1.55529185 0.723114229 -0.259695358 Cat neoprene
23 regalèssia 0.623473033 -0.37652219 -0.170410215 0.325183556 Cat licorice
24 secant -0.536766429 -0.94764429 0.181153893 0.056783121 Cat drying
25 sutja 1.594762412 0.03621157 -0.422972137 0.355937434 Cat soot
26 taní 0.649696693 -0.75954014 0.150071046 0.048121038 Cat tannin
27 torrat 1.142158500 -0.24380276 -0.300656637 0.203027830 Cat toasted
28 vainilla -0.046753466 -0.52902043 -0.006036952 -0.130748840 Cat vanilla
29 xocolata -0.129192655 0.65173127 -0.167899570 -0.023157824 Cat chocolate
Coord.Fig4 <- rbind(Coord.Fr.Fig4, Coord.Cat.Fig4)
To build Figure 4:
ax1 <-1 ; ax2 <-2
labx <- paste0("Dim 1 (", round(res.mfact.23$eig[ax1,2],1),"%)" )
laby <- paste0("Dim 2 (", round(res.mfact.23$eig[ax2,2],1),"%)" )
font.type.FRCat <- c("bold", "bold.italic")
color.type.FRCat <- c("Green", "Blue")
col.margin = c("black", "red")
Coord.Fig4$lang <- as.factor(Coord.Fig4$lang)
set.seed(1234)
Figure4 <- ggplot(Coord.Fig4)+
theme_light() + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
xlab(labx)+ ylab(laby) + coord_fixed()+
geom_hline(yintercept=0, linetype="dashed", color = "grey")+
geom_vline(xintercept=0, linetype="dashed", color = "grey")+
geom_text_repel(size=5, fontface = font.type.FRCat[Coord.Fig4$lang], max.overlaps=100,
box.padding = unit(0.35, "lines"),
aes(x=Dim.1, y=Dim.2, label = transl, color=lang))+
theme( axis.text.x = element_text(size=rel(1.6)))+
theme( axis.text.y = element_text(size=rel(1.6)))+
labs(x=labx)+labs(y=laby)+
theme(axis.title.x= element_text(size=17, face="bold"))+
theme(axis.title.y= element_text(size=17, face="bold"))+
theme(plot.margin = grid::unit(c(t=5,r= 2,b=5, l=2), "mm"))+
scale_color_manual(name="Language",
labels=c("Catalan","French"),
values = setNames(col.margin, levels(Coord.Fig4$lang))) +
theme(axis.title.x = element_text(margin=margin(t=10))) +
theme(panel.border = element_rect(colour = "black", fill=NA, linewidth=1)) +
theme(legend.position = "none")+
labs(title = "Words originally in <b style='color:#FF0000'>**_French_**</b> and **Catalan**")+
theme(plot.title = element_markdown(lineheight = 1.1, hjust=1, size=20))+
ylim(-1.9, 1.1)+
ggtitle("Figure 4. The best-represented global words on either of the first two axes")
To plot Figure 4: