wordlift-sdk 2.10.3__py3-none-any.whl → 2.12.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.
- wordlift_sdk/validation/generator.py +157 -15
- wordlift_sdk/validation/shacls/google-breadcrumb.ttl +17 -18
- wordlift_sdk/validation/shacls/google-carousel.ttl +25 -22
- wordlift_sdk/validation/shacls/google-course.ttl +4 -4
- wordlift_sdk/validation/shacls/google-education-qa.ttl +23 -24
- wordlift_sdk/validation/shacls/google-faqpage.ttl +21 -23
- wordlift_sdk/validation/shacls/google-merchant-listing.ttl +56 -57
- wordlift_sdk/validation/shacls/google-product-snippet.ttl +37 -34
- wordlift_sdk/validation/shacls/google-profile-page.ttl +103 -103
- wordlift_sdk/validation/shacls/google-qapage.ttl +345 -180
- wordlift_sdk/validation/shacls/google-recipe.ttl +42 -49
- {wordlift_sdk-2.10.3.dist-info → wordlift_sdk-2.12.0.dist-info}/METADATA +5 -2
- {wordlift_sdk-2.10.3.dist-info → wordlift_sdk-2.12.0.dist-info}/RECORD +14 -14
- {wordlift_sdk-2.10.3.dist-info → wordlift_sdk-2.12.0.dist-info}/WHEEL +0 -0
|
@@ -3,193 +3,358 @@
|
|
|
3
3
|
@prefix schema: <http://schema.org/> .
|
|
4
4
|
|
|
5
5
|
# Source: https://developers.google.com/search/docs/appearance/structured-data/qapage
|
|
6
|
-
# Generated: 2026-
|
|
6
|
+
# Generated: 2026-02-04T20:00:53Z
|
|
7
7
|
# Notes: required properties => errors; recommended properties => warnings.
|
|
8
8
|
|
|
9
|
-
:google_AnswerShape
|
|
10
|
-
a sh:NodeShape ;
|
|
11
|
-
sh:targetClass schema:Answer ;
|
|
12
|
-
sh:property [
|
|
13
|
-
sh:path schema:text ;
|
|
14
|
-
sh:minCount 1 ;
|
|
15
|
-
] ;
|
|
16
|
-
sh:property [
|
|
17
|
-
sh:path schema:author ;
|
|
18
|
-
sh:minCount 1 ;
|
|
19
|
-
sh:severity sh:Warning ;
|
|
20
|
-
sh:message "Recommended by Google: author." ;
|
|
21
|
-
] ;
|
|
22
|
-
sh:property [
|
|
23
|
-
sh:path schema:comment ;
|
|
24
|
-
sh:minCount 1 ;
|
|
25
|
-
sh:severity sh:Warning ;
|
|
26
|
-
sh:message "Recommended by Google: comment." ;
|
|
27
|
-
] ;
|
|
28
|
-
sh:property [
|
|
29
|
-
sh:path schema:dateModified ;
|
|
30
|
-
sh:minCount 1 ;
|
|
31
|
-
sh:severity sh:Warning ;
|
|
32
|
-
sh:message "Recommended by Google: dateModified." ;
|
|
33
|
-
] ;
|
|
34
|
-
sh:property [
|
|
35
|
-
sh:path schema:datePublished ;
|
|
36
|
-
sh:minCount 1 ;
|
|
37
|
-
sh:severity sh:Warning ;
|
|
38
|
-
sh:message "Recommended by Google: datePublished." ;
|
|
39
|
-
] ;
|
|
40
|
-
sh:property [
|
|
41
|
-
sh:path schema:image ;
|
|
42
|
-
sh:minCount 1 ;
|
|
43
|
-
sh:severity sh:Warning ;
|
|
44
|
-
sh:message "Recommended by Google: image." ;
|
|
45
|
-
] ;
|
|
46
|
-
sh:property [
|
|
47
|
-
sh:path schema:upvoteCount ;
|
|
48
|
-
sh:minCount 1 ;
|
|
49
|
-
sh:severity sh:Warning ;
|
|
50
|
-
sh:message "Recommended by Google: upvoteCount." ;
|
|
51
|
-
] ;
|
|
52
|
-
sh:property [
|
|
53
|
-
sh:path schema:url ;
|
|
54
|
-
sh:minCount 1 ;
|
|
55
|
-
sh:severity sh:Warning ;
|
|
56
|
-
sh:message "Recommended by Google: url." ;
|
|
57
|
-
] ;
|
|
58
|
-
sh:property [
|
|
59
|
-
sh:path schema:video ;
|
|
60
|
-
sh:minCount 1 ;
|
|
61
|
-
sh:severity sh:Warning ;
|
|
62
|
-
sh:message "Recommended by Google: video." ;
|
|
63
|
-
] ;
|
|
64
|
-
.
|
|
65
|
-
|
|
66
|
-
:google_CommentShape
|
|
67
|
-
a sh:NodeShape ;
|
|
68
|
-
sh:targetClass schema:Comment ;
|
|
69
|
-
sh:property [
|
|
70
|
-
sh:path schema:text ;
|
|
71
|
-
sh:minCount 1 ;
|
|
72
|
-
] ;
|
|
73
|
-
sh:property [
|
|
74
|
-
sh:path schema:author ;
|
|
75
|
-
sh:minCount 1 ;
|
|
76
|
-
sh:severity sh:Warning ;
|
|
77
|
-
sh:message "Recommended by Google: author." ;
|
|
78
|
-
] ;
|
|
79
|
-
sh:property [
|
|
80
|
-
sh:path schema:comment ;
|
|
81
|
-
sh:minCount 1 ;
|
|
82
|
-
sh:severity sh:Warning ;
|
|
83
|
-
sh:message "Recommended by Google: comment." ;
|
|
84
|
-
] ;
|
|
85
|
-
sh:property [
|
|
86
|
-
sh:path schema:dateModified ;
|
|
87
|
-
sh:minCount 1 ;
|
|
88
|
-
sh:severity sh:Warning ;
|
|
89
|
-
sh:message "Recommended by Google: dateModified." ;
|
|
90
|
-
] ;
|
|
91
|
-
sh:property [
|
|
92
|
-
sh:path schema:datePublished ;
|
|
93
|
-
sh:minCount 1 ;
|
|
94
|
-
sh:severity sh:Warning ;
|
|
95
|
-
sh:message "Recommended by Google: datePublished." ;
|
|
96
|
-
] ;
|
|
97
|
-
sh:property [
|
|
98
|
-
sh:path schema:image ;
|
|
99
|
-
sh:minCount 1 ;
|
|
100
|
-
sh:severity sh:Warning ;
|
|
101
|
-
sh:message "Recommended by Google: image." ;
|
|
102
|
-
] ;
|
|
103
|
-
sh:property [
|
|
104
|
-
sh:path schema:url ;
|
|
105
|
-
sh:minCount 1 ;
|
|
106
|
-
sh:severity sh:Warning ;
|
|
107
|
-
sh:message "Recommended by Google: url." ;
|
|
108
|
-
] ;
|
|
109
|
-
sh:property [
|
|
110
|
-
sh:path schema:video ;
|
|
111
|
-
sh:minCount 1 ;
|
|
112
|
-
sh:severity sh:Warning ;
|
|
113
|
-
sh:message "Recommended by Google: video." ;
|
|
114
|
-
] ;
|
|
115
|
-
.
|
|
116
|
-
|
|
117
9
|
:google_QAPageShape
|
|
118
10
|
a sh:NodeShape ;
|
|
119
11
|
sh:targetClass schema:QAPage ;
|
|
120
12
|
sh:property [
|
|
121
13
|
sh:path schema:mainEntity ;
|
|
122
14
|
sh:minCount 1 ;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
:
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
15
|
+
sh:node [
|
|
16
|
+
a sh:NodeShape ;
|
|
17
|
+
sh:class schema:Question ;
|
|
18
|
+
sh:property [
|
|
19
|
+
sh:path schema:acceptedAnswer ;
|
|
20
|
+
sh:minCount 1 ;
|
|
21
|
+
sh:node [
|
|
22
|
+
a sh:NodeShape ;
|
|
23
|
+
sh:class schema:Answer ;
|
|
24
|
+
sh:property [
|
|
25
|
+
sh:path schema:text ;
|
|
26
|
+
sh:minCount 1 ;
|
|
27
|
+
] ;
|
|
28
|
+
sh:property [
|
|
29
|
+
sh:path schema:author ;
|
|
30
|
+
sh:minCount 1 ;
|
|
31
|
+
sh:severity sh:Warning ;
|
|
32
|
+
sh:message "Recommended by Google: author." ;
|
|
33
|
+
] ;
|
|
34
|
+
sh:property [
|
|
35
|
+
sh:path ( schema:author schema:url ) ;
|
|
36
|
+
sh:minCount 1 ;
|
|
37
|
+
sh:severity sh:Warning ;
|
|
38
|
+
sh:message "Recommended by Google: author.url." ;
|
|
39
|
+
] ;
|
|
40
|
+
sh:property [
|
|
41
|
+
sh:path schema:comment ;
|
|
42
|
+
sh:minCount 1 ;
|
|
43
|
+
sh:severity sh:Warning ;
|
|
44
|
+
sh:message "Recommended by Google: comment." ;
|
|
45
|
+
sh:node [
|
|
46
|
+
a sh:NodeShape ;
|
|
47
|
+
sh:class schema:Comment ;
|
|
48
|
+
sh:property [
|
|
49
|
+
sh:path schema:text ;
|
|
50
|
+
sh:minCount 1 ;
|
|
51
|
+
] ;
|
|
52
|
+
sh:property [
|
|
53
|
+
sh:path schema:author ;
|
|
54
|
+
sh:minCount 1 ;
|
|
55
|
+
sh:severity sh:Warning ;
|
|
56
|
+
sh:message "Recommended by Google: author." ;
|
|
57
|
+
] ;
|
|
58
|
+
sh:property [
|
|
59
|
+
sh:path ( schema:author schema:url ) ;
|
|
60
|
+
sh:minCount 1 ;
|
|
61
|
+
sh:severity sh:Warning ;
|
|
62
|
+
sh:message "Recommended by Google: author.url." ;
|
|
63
|
+
] ;
|
|
64
|
+
sh:property [
|
|
65
|
+
sh:path schema:comment ;
|
|
66
|
+
sh:minCount 1 ;
|
|
67
|
+
sh:severity sh:Warning ;
|
|
68
|
+
sh:message "Recommended by Google: comment." ;
|
|
69
|
+
] ;
|
|
70
|
+
sh:property [
|
|
71
|
+
sh:path schema:dateModified ;
|
|
72
|
+
sh:minCount 1 ;
|
|
73
|
+
sh:severity sh:Warning ;
|
|
74
|
+
sh:message "Recommended by Google: dateModified." ;
|
|
75
|
+
] ;
|
|
76
|
+
sh:property [
|
|
77
|
+
sh:path schema:datePublished ;
|
|
78
|
+
sh:minCount 1 ;
|
|
79
|
+
sh:severity sh:Warning ;
|
|
80
|
+
sh:message "Recommended by Google: datePublished." ;
|
|
81
|
+
] ;
|
|
82
|
+
sh:property [
|
|
83
|
+
sh:path schema:image ;
|
|
84
|
+
sh:minCount 1 ;
|
|
85
|
+
sh:severity sh:Warning ;
|
|
86
|
+
sh:message "Recommended by Google: image." ;
|
|
87
|
+
] ;
|
|
88
|
+
sh:property [
|
|
89
|
+
sh:path schema:video ;
|
|
90
|
+
sh:minCount 1 ;
|
|
91
|
+
sh:severity sh:Warning ;
|
|
92
|
+
sh:message "Recommended by Google: video." ;
|
|
93
|
+
] ;
|
|
94
|
+
] ;
|
|
95
|
+
] ;
|
|
96
|
+
sh:property [
|
|
97
|
+
sh:path schema:dateModified ;
|
|
98
|
+
sh:minCount 1 ;
|
|
99
|
+
sh:severity sh:Warning ;
|
|
100
|
+
sh:message "Recommended by Google: dateModified." ;
|
|
101
|
+
] ;
|
|
102
|
+
sh:property [
|
|
103
|
+
sh:path schema:datePublished ;
|
|
104
|
+
sh:minCount 1 ;
|
|
105
|
+
sh:severity sh:Warning ;
|
|
106
|
+
sh:message "Recommended by Google: datePublished." ;
|
|
107
|
+
] ;
|
|
108
|
+
sh:property [
|
|
109
|
+
sh:path schema:image ;
|
|
110
|
+
sh:minCount 1 ;
|
|
111
|
+
sh:severity sh:Warning ;
|
|
112
|
+
sh:message "Recommended by Google: image." ;
|
|
113
|
+
] ;
|
|
114
|
+
sh:property [
|
|
115
|
+
sh:path schema:upvoteCount ;
|
|
116
|
+
sh:minCount 1 ;
|
|
117
|
+
sh:severity sh:Warning ;
|
|
118
|
+
sh:message "Recommended by Google: upvoteCount." ;
|
|
119
|
+
] ;
|
|
120
|
+
sh:property [
|
|
121
|
+
sh:path schema:url ;
|
|
122
|
+
sh:minCount 1 ;
|
|
123
|
+
sh:severity sh:Warning ;
|
|
124
|
+
sh:message "Recommended by Google: url." ;
|
|
125
|
+
] ;
|
|
126
|
+
sh:property [
|
|
127
|
+
sh:path schema:video ;
|
|
128
|
+
sh:minCount 1 ;
|
|
129
|
+
sh:severity sh:Warning ;
|
|
130
|
+
sh:message "Recommended by Google: video." ;
|
|
131
|
+
] ;
|
|
132
|
+
] ;
|
|
133
|
+
] ;
|
|
134
|
+
sh:property [
|
|
135
|
+
sh:path schema:answerCount ;
|
|
136
|
+
sh:minCount 1 ;
|
|
137
|
+
] ;
|
|
138
|
+
sh:property [
|
|
139
|
+
sh:path schema:suggestedAnswer ;
|
|
140
|
+
sh:minCount 1 ;
|
|
141
|
+
sh:node [
|
|
142
|
+
a sh:NodeShape ;
|
|
143
|
+
sh:class schema:Answer ;
|
|
144
|
+
sh:property [
|
|
145
|
+
sh:path schema:text ;
|
|
146
|
+
sh:minCount 1 ;
|
|
147
|
+
] ;
|
|
148
|
+
sh:property [
|
|
149
|
+
sh:path schema:author ;
|
|
150
|
+
sh:minCount 1 ;
|
|
151
|
+
sh:severity sh:Warning ;
|
|
152
|
+
sh:message "Recommended by Google: author." ;
|
|
153
|
+
] ;
|
|
154
|
+
sh:property [
|
|
155
|
+
sh:path ( schema:author schema:url ) ;
|
|
156
|
+
sh:minCount 1 ;
|
|
157
|
+
sh:severity sh:Warning ;
|
|
158
|
+
sh:message "Recommended by Google: author.url." ;
|
|
159
|
+
] ;
|
|
160
|
+
sh:property [
|
|
161
|
+
sh:path schema:comment ;
|
|
162
|
+
sh:minCount 1 ;
|
|
163
|
+
sh:severity sh:Warning ;
|
|
164
|
+
sh:message "Recommended by Google: comment." ;
|
|
165
|
+
sh:node [
|
|
166
|
+
a sh:NodeShape ;
|
|
167
|
+
sh:class schema:Comment ;
|
|
168
|
+
sh:property [
|
|
169
|
+
sh:path schema:text ;
|
|
170
|
+
sh:minCount 1 ;
|
|
171
|
+
] ;
|
|
172
|
+
sh:property [
|
|
173
|
+
sh:path schema:author ;
|
|
174
|
+
sh:minCount 1 ;
|
|
175
|
+
sh:severity sh:Warning ;
|
|
176
|
+
sh:message "Recommended by Google: author." ;
|
|
177
|
+
] ;
|
|
178
|
+
sh:property [
|
|
179
|
+
sh:path ( schema:author schema:url ) ;
|
|
180
|
+
sh:minCount 1 ;
|
|
181
|
+
sh:severity sh:Warning ;
|
|
182
|
+
sh:message "Recommended by Google: author.url." ;
|
|
183
|
+
] ;
|
|
184
|
+
sh:property [
|
|
185
|
+
sh:path schema:comment ;
|
|
186
|
+
sh:minCount 1 ;
|
|
187
|
+
sh:severity sh:Warning ;
|
|
188
|
+
sh:message "Recommended by Google: comment." ;
|
|
189
|
+
] ;
|
|
190
|
+
sh:property [
|
|
191
|
+
sh:path schema:dateModified ;
|
|
192
|
+
sh:minCount 1 ;
|
|
193
|
+
sh:severity sh:Warning ;
|
|
194
|
+
sh:message "Recommended by Google: dateModified." ;
|
|
195
|
+
] ;
|
|
196
|
+
sh:property [
|
|
197
|
+
sh:path schema:datePublished ;
|
|
198
|
+
sh:minCount 1 ;
|
|
199
|
+
sh:severity sh:Warning ;
|
|
200
|
+
sh:message "Recommended by Google: datePublished." ;
|
|
201
|
+
] ;
|
|
202
|
+
sh:property [
|
|
203
|
+
sh:path schema:image ;
|
|
204
|
+
sh:minCount 1 ;
|
|
205
|
+
sh:severity sh:Warning ;
|
|
206
|
+
sh:message "Recommended by Google: image." ;
|
|
207
|
+
] ;
|
|
208
|
+
sh:property [
|
|
209
|
+
sh:path schema:video ;
|
|
210
|
+
sh:minCount 1 ;
|
|
211
|
+
sh:severity sh:Warning ;
|
|
212
|
+
sh:message "Recommended by Google: video." ;
|
|
213
|
+
] ;
|
|
214
|
+
] ;
|
|
215
|
+
] ;
|
|
216
|
+
sh:property [
|
|
217
|
+
sh:path schema:dateModified ;
|
|
218
|
+
sh:minCount 1 ;
|
|
219
|
+
sh:severity sh:Warning ;
|
|
220
|
+
sh:message "Recommended by Google: dateModified." ;
|
|
221
|
+
] ;
|
|
222
|
+
sh:property [
|
|
223
|
+
sh:path schema:datePublished ;
|
|
224
|
+
sh:minCount 1 ;
|
|
225
|
+
sh:severity sh:Warning ;
|
|
226
|
+
sh:message "Recommended by Google: datePublished." ;
|
|
227
|
+
] ;
|
|
228
|
+
sh:property [
|
|
229
|
+
sh:path schema:image ;
|
|
230
|
+
sh:minCount 1 ;
|
|
231
|
+
sh:severity sh:Warning ;
|
|
232
|
+
sh:message "Recommended by Google: image." ;
|
|
233
|
+
] ;
|
|
234
|
+
sh:property [
|
|
235
|
+
sh:path schema:upvoteCount ;
|
|
236
|
+
sh:minCount 1 ;
|
|
237
|
+
sh:severity sh:Warning ;
|
|
238
|
+
sh:message "Recommended by Google: upvoteCount." ;
|
|
239
|
+
] ;
|
|
240
|
+
sh:property [
|
|
241
|
+
sh:path schema:url ;
|
|
242
|
+
sh:minCount 1 ;
|
|
243
|
+
sh:severity sh:Warning ;
|
|
244
|
+
sh:message "Recommended by Google: url." ;
|
|
245
|
+
] ;
|
|
246
|
+
sh:property [
|
|
247
|
+
sh:path schema:video ;
|
|
248
|
+
sh:minCount 1 ;
|
|
249
|
+
sh:severity sh:Warning ;
|
|
250
|
+
sh:message "Recommended by Google: video." ;
|
|
251
|
+
] ;
|
|
252
|
+
] ;
|
|
253
|
+
] ;
|
|
254
|
+
sh:property [
|
|
255
|
+
sh:path schema:author ;
|
|
256
|
+
sh:minCount 1 ;
|
|
257
|
+
sh:severity sh:Warning ;
|
|
258
|
+
sh:message "Recommended by Google: author." ;
|
|
259
|
+
] ;
|
|
260
|
+
sh:property [
|
|
261
|
+
sh:path ( schema:author schema:url ) ;
|
|
262
|
+
sh:minCount 1 ;
|
|
263
|
+
sh:severity sh:Warning ;
|
|
264
|
+
sh:message "Recommended by Google: author.url." ;
|
|
265
|
+
] ;
|
|
266
|
+
sh:property [
|
|
267
|
+
sh:path schema:comment ;
|
|
268
|
+
sh:minCount 1 ;
|
|
269
|
+
sh:severity sh:Warning ;
|
|
270
|
+
sh:message "Recommended by Google: comment." ;
|
|
271
|
+
sh:node [
|
|
272
|
+
a sh:NodeShape ;
|
|
273
|
+
sh:class schema:Comment ;
|
|
274
|
+
sh:property [
|
|
275
|
+
sh:path schema:text ;
|
|
276
|
+
sh:minCount 1 ;
|
|
277
|
+
] ;
|
|
278
|
+
sh:property [
|
|
279
|
+
sh:path schema:author ;
|
|
280
|
+
sh:minCount 1 ;
|
|
281
|
+
sh:severity sh:Warning ;
|
|
282
|
+
sh:message "Recommended by Google: author." ;
|
|
283
|
+
] ;
|
|
284
|
+
sh:property [
|
|
285
|
+
sh:path ( schema:author schema:url ) ;
|
|
286
|
+
sh:minCount 1 ;
|
|
287
|
+
sh:severity sh:Warning ;
|
|
288
|
+
sh:message "Recommended by Google: author.url." ;
|
|
289
|
+
] ;
|
|
290
|
+
sh:property [
|
|
291
|
+
sh:path schema:comment ;
|
|
292
|
+
sh:minCount 1 ;
|
|
293
|
+
sh:severity sh:Warning ;
|
|
294
|
+
sh:message "Recommended by Google: comment." ;
|
|
295
|
+
] ;
|
|
296
|
+
sh:property [
|
|
297
|
+
sh:path schema:dateModified ;
|
|
298
|
+
sh:minCount 1 ;
|
|
299
|
+
sh:severity sh:Warning ;
|
|
300
|
+
sh:message "Recommended by Google: dateModified." ;
|
|
301
|
+
] ;
|
|
302
|
+
sh:property [
|
|
303
|
+
sh:path schema:datePublished ;
|
|
304
|
+
sh:minCount 1 ;
|
|
305
|
+
sh:severity sh:Warning ;
|
|
306
|
+
sh:message "Recommended by Google: datePublished." ;
|
|
307
|
+
] ;
|
|
308
|
+
sh:property [
|
|
309
|
+
sh:path schema:image ;
|
|
310
|
+
sh:minCount 1 ;
|
|
311
|
+
sh:severity sh:Warning ;
|
|
312
|
+
sh:message "Recommended by Google: image." ;
|
|
313
|
+
] ;
|
|
314
|
+
sh:property [
|
|
315
|
+
sh:path schema:video ;
|
|
316
|
+
sh:minCount 1 ;
|
|
317
|
+
sh:severity sh:Warning ;
|
|
318
|
+
sh:message "Recommended by Google: video." ;
|
|
319
|
+
] ;
|
|
320
|
+
] ;
|
|
321
|
+
] ;
|
|
322
|
+
sh:property [
|
|
323
|
+
sh:path schema:dateModified ;
|
|
324
|
+
sh:minCount 1 ;
|
|
325
|
+
sh:severity sh:Warning ;
|
|
326
|
+
sh:message "Recommended by Google: dateModified." ;
|
|
327
|
+
] ;
|
|
328
|
+
sh:property [
|
|
329
|
+
sh:path schema:datePublished ;
|
|
330
|
+
sh:minCount 1 ;
|
|
331
|
+
sh:severity sh:Warning ;
|
|
332
|
+
sh:message "Recommended by Google: datePublished." ;
|
|
333
|
+
] ;
|
|
334
|
+
sh:property [
|
|
335
|
+
sh:path schema:image ;
|
|
336
|
+
sh:minCount 1 ;
|
|
337
|
+
sh:severity sh:Warning ;
|
|
338
|
+
sh:message "Recommended by Google: image." ;
|
|
339
|
+
] ;
|
|
340
|
+
sh:property [
|
|
341
|
+
sh:path schema:text ;
|
|
342
|
+
sh:minCount 1 ;
|
|
343
|
+
sh:severity sh:Warning ;
|
|
344
|
+
sh:message "Recommended by Google: text." ;
|
|
345
|
+
] ;
|
|
346
|
+
sh:property [
|
|
347
|
+
sh:path schema:upvoteCount ;
|
|
348
|
+
sh:minCount 1 ;
|
|
349
|
+
sh:severity sh:Warning ;
|
|
350
|
+
sh:message "Recommended by Google: upvoteCount." ;
|
|
351
|
+
] ;
|
|
352
|
+
sh:property [
|
|
353
|
+
sh:path schema:video ;
|
|
354
|
+
sh:minCount 1 ;
|
|
355
|
+
sh:severity sh:Warning ;
|
|
356
|
+
sh:message "Recommended by Google: video." ;
|
|
357
|
+
] ;
|
|
358
|
+
] ;
|
|
194
359
|
] ;
|
|
195
360
|
.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
@prefix schema: <http://schema.org/> .
|
|
4
4
|
|
|
5
5
|
# Source: https://developers.google.com/search/docs/appearance/structured-data/recipe
|
|
6
|
-
# Generated: 2026-
|
|
6
|
+
# Generated: 2026-02-04T20:09:19Z
|
|
7
7
|
# Notes: required properties => errors; recommended properties => warnings.
|
|
8
8
|
|
|
9
9
|
:google_HowToDirectionShape
|
|
@@ -28,43 +28,6 @@
|
|
|
28
28
|
] ;
|
|
29
29
|
.
|
|
30
30
|
|
|
31
|
-
:google_HowToStepShape
|
|
32
|
-
a sh:NodeShape ;
|
|
33
|
-
sh:targetClass schema:HowToStep ;
|
|
34
|
-
sh:property [
|
|
35
|
-
sh:path schema:itemListElement ;
|
|
36
|
-
sh:minCount 1 ;
|
|
37
|
-
] ;
|
|
38
|
-
sh:property [
|
|
39
|
-
sh:path schema:text ;
|
|
40
|
-
sh:minCount 1 ;
|
|
41
|
-
] ;
|
|
42
|
-
sh:property [
|
|
43
|
-
sh:path schema:image ;
|
|
44
|
-
sh:minCount 1 ;
|
|
45
|
-
sh:severity sh:Warning ;
|
|
46
|
-
sh:message "Recommended by Google: image." ;
|
|
47
|
-
] ;
|
|
48
|
-
sh:property [
|
|
49
|
-
sh:path schema:name ;
|
|
50
|
-
sh:minCount 1 ;
|
|
51
|
-
sh:severity sh:Warning ;
|
|
52
|
-
sh:message "Recommended by Google: name." ;
|
|
53
|
-
] ;
|
|
54
|
-
sh:property [
|
|
55
|
-
sh:path schema:url ;
|
|
56
|
-
sh:minCount 1 ;
|
|
57
|
-
sh:severity sh:Warning ;
|
|
58
|
-
sh:message "Recommended by Google: url." ;
|
|
59
|
-
] ;
|
|
60
|
-
sh:property [
|
|
61
|
-
sh:path schema:video ;
|
|
62
|
-
sh:minCount 1 ;
|
|
63
|
-
sh:severity sh:Warning ;
|
|
64
|
-
sh:message "Recommended by Google: video." ;
|
|
65
|
-
] ;
|
|
66
|
-
.
|
|
67
|
-
|
|
68
31
|
:google_HowToTipShape
|
|
69
32
|
a sh:NodeShape ;
|
|
70
33
|
sh:targetClass schema:HowToTip ;
|
|
@@ -78,15 +41,15 @@
|
|
|
78
41
|
a sh:NodeShape ;
|
|
79
42
|
sh:targetClass schema:ItemList ;
|
|
80
43
|
sh:property [
|
|
81
|
-
sh:path schema:
|
|
44
|
+
sh:path ( schema:ListItem schema:position ) ;
|
|
82
45
|
sh:minCount 1 ;
|
|
83
46
|
] ;
|
|
84
47
|
sh:property [
|
|
85
|
-
sh:path schema:
|
|
48
|
+
sh:path ( schema:ListItem schema:url ) ;
|
|
86
49
|
sh:minCount 1 ;
|
|
87
50
|
] ;
|
|
88
51
|
sh:property [
|
|
89
|
-
sh:path schema:
|
|
52
|
+
sh:path schema:itemListElement ;
|
|
90
53
|
sh:minCount 1 ;
|
|
91
54
|
] ;
|
|
92
55
|
.
|
|
@@ -114,12 +77,6 @@
|
|
|
114
77
|
sh:severity sh:Warning ;
|
|
115
78
|
sh:message "Recommended by Google: author." ;
|
|
116
79
|
] ;
|
|
117
|
-
sh:property [
|
|
118
|
-
sh:path schema:calories ;
|
|
119
|
-
sh:minCount 1 ;
|
|
120
|
-
sh:severity sh:Warning ;
|
|
121
|
-
sh:message "Recommended by Google: calories." ;
|
|
122
|
-
] ;
|
|
123
80
|
sh:property [
|
|
124
81
|
sh:path schema:cookTime ;
|
|
125
82
|
sh:minCount 1 ;
|
|
@@ -145,10 +102,10 @@
|
|
|
145
102
|
sh:message "Recommended by Google: keywords." ;
|
|
146
103
|
] ;
|
|
147
104
|
sh:property [
|
|
148
|
-
sh:path schema:nutrition ;
|
|
105
|
+
sh:path ( schema:nutrition schema:calories ) ;
|
|
149
106
|
sh:minCount 1 ;
|
|
150
107
|
sh:severity sh:Warning ;
|
|
151
|
-
sh:message "Recommended by Google: nutrition." ;
|
|
108
|
+
sh:message "Recommended by Google: nutrition.calories." ;
|
|
152
109
|
] ;
|
|
153
110
|
sh:property [
|
|
154
111
|
sh:path schema:prepTime ;
|
|
@@ -179,6 +136,42 @@
|
|
|
179
136
|
sh:minCount 1 ;
|
|
180
137
|
sh:severity sh:Warning ;
|
|
181
138
|
sh:message "Recommended by Google: recipeInstructions." ;
|
|
139
|
+
sh:node [
|
|
140
|
+
a sh:NodeShape ;
|
|
141
|
+
sh:class schema:HowToStep ;
|
|
142
|
+
sh:property [
|
|
143
|
+
sh:path schema:itemListElement ;
|
|
144
|
+
sh:minCount 1 ;
|
|
145
|
+
] ;
|
|
146
|
+
sh:property [
|
|
147
|
+
sh:path schema:text ;
|
|
148
|
+
sh:minCount 1 ;
|
|
149
|
+
] ;
|
|
150
|
+
sh:property [
|
|
151
|
+
sh:path schema:image ;
|
|
152
|
+
sh:minCount 1 ;
|
|
153
|
+
sh:severity sh:Warning ;
|
|
154
|
+
sh:message "Recommended by Google: image." ;
|
|
155
|
+
] ;
|
|
156
|
+
sh:property [
|
|
157
|
+
sh:path schema:name ;
|
|
158
|
+
sh:minCount 1 ;
|
|
159
|
+
sh:severity sh:Warning ;
|
|
160
|
+
sh:message "Recommended by Google: name." ;
|
|
161
|
+
] ;
|
|
162
|
+
sh:property [
|
|
163
|
+
sh:path schema:url ;
|
|
164
|
+
sh:minCount 1 ;
|
|
165
|
+
sh:severity sh:Warning ;
|
|
166
|
+
sh:message "Recommended by Google: url." ;
|
|
167
|
+
] ;
|
|
168
|
+
sh:property [
|
|
169
|
+
sh:path schema:video ;
|
|
170
|
+
sh:minCount 1 ;
|
|
171
|
+
sh:severity sh:Warning ;
|
|
172
|
+
sh:message "Recommended by Google: video." ;
|
|
173
|
+
] ;
|
|
174
|
+
] ;
|
|
182
175
|
] ;
|
|
183
176
|
sh:property [
|
|
184
177
|
sh:path schema:recipeYield ;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wordlift-sdk
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.12.0
|
|
4
4
|
Summary:
|
|
5
5
|
Author: David Riccitelli
|
|
6
6
|
Author-email: david@wordlift.io
|
|
@@ -118,6 +118,10 @@ Override the web page import callback by placing `web_page_import_protocol.py` w
|
|
|
118
118
|
|
|
119
119
|
Add `.ttl.liquid` files under `data/templates`. Templates render with `account` fields available (e.g., `{{ account.dataset_uri }}`) and are uploaded before URL handling begins.
|
|
120
120
|
|
|
121
|
+
## Validation
|
|
122
|
+
|
|
123
|
+
SHACL validation utilities and generated Google Search Gallery shapes are included. When a feature includes both container types (for example `ItemList`, `BreadcrumbList`, `QAPage`, `FAQPage`, `Quiz`, `ProfilePage`, `Product`, `Recipe`, `Course`) and their contained types (`ListItem`, `Question`, `Answer`, `Comment`, `Offer`, `HowToStep`, `Person`, `Organization`), the generator scopes the contained constraints under the container properties to avoid enforcing them on unrelated nodes.
|
|
124
|
+
|
|
121
125
|
## Testing
|
|
122
126
|
|
|
123
127
|
```bash
|
|
@@ -129,4 +133,3 @@ poetry run pytest
|
|
|
129
133
|
|
|
130
134
|
- [Google Sheets Lookup](docs/google_sheets_lookup.md): Utility for O(1) lookups from Google Sheets.
|
|
131
135
|
|
|
132
|
-
|