-
Notifications
You must be signed in to change notification settings - Fork 0
/
feedback.xsd
299 lines (289 loc) · 15.7 KB
/
feedback.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.geoviqua.org/schemas/FeedbackModel/Draft"
xmlns="http://www.geoviqua.org/schemas/FeedbackModel/Draft"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:md="http://www.isotc211.org/2005/gmd"
xmlns:gvq_fb="http://www.geoviqua.org/schemas/FeedbackModel/Draft"
xmlns:gvq="http://www.geoviqua.org/schemas/ProducerModel_v2"
>
<xs:import namespace="http://www.w3.org/2001/XMLSchema"/>
<xs:import namespace="http://www.isotc211.org/2005/gmd" schemaLocation="schemas/ISOSchemas_20090316/gmd/gmd.xsd"/>
<xs:import namespace="http://www.geoviqua.org/schemas/ProducerModel_v2" schemaLocation="schemas/GeoViQua/GeoViQua_DataQuality.xsd"/>
<xs:complexType name="GVQ_ExternalFeedback">
<xs:annotation>
<xs:documentation>External feedback is intended to associate information about the subject just to highlight its presence (without adding extra value?)
This could be subclassed to draw in facebook likes or google +1's, community sites, blog posts, ...
A point in question is the role of persistent URLs here, which should probably be preferred if not enforced.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackItem">
<xs:sequence>
<xs:element name="resourceURL" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="mime-type" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>IETF RFC 2046 MIME Type
Mime type the resource should answer in. Also, it could inform the user whether a document, web page or other resource is linked.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_FeedbackFocusType">
<xs:annotation>
<xs:documentation>The feedback focus is intended to qualify a "narrow" discussion context similar to a discussion thread. The "narrow" context is always within exactly one "hard" context/target.
The focus may refer to some aspect that actually exists (a radio band, a sensor, a geolocation) prior to the feedback focus, or something purely subjective, like a title of a discussion thread. The user may create (some types of) feedback focuses.
As an item may have several foci, a focus should be mostly singular so the multiplicity shows in the items themselves.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="GVQ_FeedbackTarget" type="GVQ_FeedbackTarget" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GVQ_FeedbackItem">
<xs:annotation>
<xs:documentation>The feedback item is the container of the actual feedback. Every item is set into context by a combination of foci, whose interpretation is subject to application guidelines. General intent is specified in the arc.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="md:MD_Identifier" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is an identifier for the feedback item. Main use case is a stable identifier for the feedback focus. Thus, it only needs to be locally unique.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="primaryFocus" type="GVQ_FeedbackFocusType" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The primary focus ("the", i.e. exactly one) specifies the context of an item, and (indirectly) points to the resource the feedback is about.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="secondaryFoci" type="GVQ_FeedbackFocusType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A secondary focus says something about the nature of the feedback item. For example, it may specify a certain domain of discourse in which the statements have to be understood.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="supplementaryFoci" type="GVQ_FeedbackFocusType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A supplementary focus adds additional references, for example, another region in another data set with similar problems. It is used to formally model references that somehow are related to the feedback item at hand, without implying relevance of the feedback to the focused data.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GVQ_FeedbackTarget">
<xs:annotation>
<xs:documentation>The Target unambiguously refers to pretext in the domain of discourse, such as a dataset or a sensor. This should match a datasetURI or MD_Identifier for that resource.
The parent is intended to model containment such as "this sensor is contained in this SOS". This is redundant, but avoids having to understand e.g. SensorML to uncover the relationship. Obviously, the parent should not have finer granularity than the child.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="parent" type="GVQ_FeedbackTarget" minOccurs="1" maxOccurs="1"/>
<xs:element name="resourceRef" type="md:MD_Identifier_Type" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This field points to a resource (could be the identifier of a dataset in a metadata catalog in GEOSS) which is typically not inside the same system. Any considerations what exactly should go into this field are to be set in application guidelines, or subclasses of this.
Actually, the feedback model does not depend on the target's type, it just postulates a canonicalized or otherwise "matchable" identifier in this field. This could take the form of an outside service to provide the necessary matching capability.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="md:MD_ScopeCode" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The natureOfTarget field gives information mainly about the nature and granularity of the referenced entity, e.g. service, individual sensor, dataset series. Therefore it uses MD_ScopeCode. It is possible that GeoViQua-specific extensions to the list of scope codes may be required - this should be assessed in the prototypes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GVQ_FeedbackTarget" type="GVQ_FeedbackTarget" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GVQ_QualityOverride">
<xs:annotation>
<xs:documentation>Could be used for users to enhance metadata or highlight errors in provider quality metadata.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackItem">
<xs:sequence>
<xs:element name="alternativeDataQualityEstimate" type="md:DQ_DataQuality_Type" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_Rating">
<xs:annotation>
<xs:documentation>A rating is intended to cover star-like low information content ratings. Unlike e.g. a report, it is aggregable by nature.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackItem">
<xs:sequence>
<xs:element name="ratingValue" type="xs:int" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>To be restricted between 1 and 5</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_UsageReport">
<xs:complexContent>
<xs:extension base="GVQ_FeedbackItem">
<xs:sequence>
<xs:element name="usagePurpose" type="GVQ_ReportAspectCode" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="publication" type="gvq:GVQ_PublicationType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Link to zero or more publications which describe the use, if relevant</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="usageDescription" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>For supplementary information on the exact procedure carried out.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="md:MD_Identifier" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Use the 'uuid' attribute of the MD_Identifier to store a unique identifier for the referenced GEOSS resource</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="GVQ_ReportAspectCode">
<xs:restriction base="xs:string">
<xs:enumeration value="Usage"/>
<xs:enumeration value="Problem"/>
<xs:enumeration value="FitnessForPurpose"/>
<xs:enumeration value="Alternatives"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GVQ_UserRoleCodeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="CommercialDataProducer"/>
<xs:enumeration value="ResearchEndUser"/>
<xs:enumeration value="NonResearchEndUser"/>
<xs:enumeration value="ScientificDataProducer"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="GVQ_UserInformation">
<xs:annotation>
<xs:documentation>This class is intended to link to the actual "implemented" user.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="user" type="md:CI_ResponsibleParty_Type" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>In case the user is a CI_ResplnsibleParty this may be used to include details.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="applicationDomain" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The application domains a user considers himself to work in.
Also see GVQ_DomainFocus</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="expertiseLevel" type="xs:int" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>This refers to this user's expertise level in this particular context, will be restricted between 1 and 5</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GVQ_SubjectFocus">
<xs:annotation>
<xs:documentation>The subject is intended to act as a title when given, i.e. a concise summary as is used to structure emails or discussion boards.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackFocusType">
<xs:sequence>
<xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_DataFocus">
<xs:annotation>
<xs:documentation>A data centric focus describes sub-sets of a data set or data provided by a service. It is to be interpreted as the intersection of the attributes which are specified, i.e. an unspecified attribute does not constrain the focus.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackFocusType">
<xs:sequence>
<xs:element ref="md:EX_SpatialTemporalExtent" minOccurs="0" maxOccurs="1"/>
<xs:element name="band" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The band is intended as a local identifier for a band, intended for human understanding.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_FeedbackFocus">
<xs:annotation>
<xs:documentation>The FeedbackFocus specifies which other Feedback is the focus of the feedback given.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackFocusType">
<xs:sequence>
<xs:element name="itemRef" type="md:MD_Identifier_PropertyType" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The feedback item, in this case probably linked in via xlink.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_UserComment">
<xs:annotation>
<xs:documentation>The comment is the most generic feedback type. Depending on the foci, it may serve as answer, rating justification, or general comment.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackItem">
<xs:sequence>
<xs:element name="comment" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The user comment's body.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mime-type" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>IETF RFC 2046 MIME Type
The mime is used to infer additional processing which may be required for proper display of the comment in an environment. For example, text/x-web-markdown may need conversion, text/plain or text/html just need sanitizing in a web application.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_FeedbackGroup">
<xs:annotation>
<xs:documentation>The feedback group is a collection of coherent feedback from one (or possible more) user(s). It is used to group e.g. an intercomparison report with the rating(s) derived from it.
Every feedback item is contained in exactly one feedback group. In other words, feedback is always given in the context of a feedback group.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="timestamp" type="md:CI_Date_Type" minOccurs="1" maxOccurs="1"/>
<xs:element name="user" type="GVQ_UserInformation" minOccurs="1" maxOccurs="1"/>
<xs:element name="roles" type="GVQ_UserRoleCodeEnum" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The role of the user with regard to this specific feedback group: this allows producers to add more information after release of the initial metadata.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GVQ_UserInformation" type="GVQ_UserInformation" minOccurs="1" maxOccurs="1"/>
<xs:element name="items" type="GVQ_FeedbackItem" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GVQ_ThemeFocus">
<xs:annotation>
<xs:documentation>We identify EO domains using selected ontologies such as GEMET concepts. The DomainFocus, unlike the TagFocus, uses domain URNs defined in some ontology.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackFocusType">
<xs:sequence>
<xs:element name="themeURN" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GVQ_TagFocus">
<xs:annotation>
<xs:documentation>Tags are intended as an informal qualification to be applied by the user if he decides that the more formal possibilities (like domain or theme) are somehow inadequate.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="GVQ_FeedbackFocusType">
<xs:sequence>
<xs:element name="tags" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>