rdf 1.1.0p4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +6 -14
  2. data/README +33 -33
  3. data/VERSION +1 -1
  4. data/lib/rdf.rb +60 -12
  5. data/lib/rdf/cli.rb +7 -1
  6. data/lib/rdf/cli/vocab-loader.rb +240 -0
  7. data/lib/rdf/format.rb +2 -2
  8. data/lib/rdf/mixin/enumerable.rb +12 -4
  9. data/lib/rdf/mixin/queryable.rb +13 -13
  10. data/lib/rdf/model/graph.rb +5 -4
  11. data/lib/rdf/model/list.rb +15 -4
  12. data/lib/rdf/model/literal.rb +2 -1
  13. data/lib/rdf/model/statement.rb +10 -1
  14. data/lib/rdf/model/term.rb +8 -0
  15. data/lib/rdf/model/uri.rb +107 -2
  16. data/lib/rdf/model/value.rb +8 -0
  17. data/lib/rdf/ntriples/reader.rb +5 -4
  18. data/lib/rdf/query.rb +47 -12
  19. data/lib/rdf/query/solutions.rb +29 -29
  20. data/lib/rdf/reader.rb +13 -3
  21. data/lib/rdf/repository.rb +1 -0
  22. data/lib/rdf/util/file.rb +86 -6
  23. data/lib/rdf/vocab.rb +158 -58
  24. data/lib/rdf/vocab/cc.rb +28 -11
  25. data/lib/rdf/vocab/cert.rb +127 -9
  26. data/lib/rdf/vocab/dc.rb +242 -60
  27. data/lib/rdf/vocab/dc11.rb +42 -20
  28. data/lib/rdf/vocab/doap.rb +121 -42
  29. data/lib/rdf/vocab/exif.rb +540 -165
  30. data/lib/rdf/vocab/foaf.rb +353 -66
  31. data/lib/rdf/vocab/geo.rb +40 -10
  32. data/lib/rdf/vocab/gr.rb +1094 -0
  33. data/lib/rdf/vocab/http.rb +81 -23
  34. data/lib/rdf/vocab/ical.rb +361 -0
  35. data/lib/rdf/vocab/ma.rb +281 -69
  36. data/lib/rdf/vocab/og.rb +98 -0
  37. data/lib/rdf/vocab/owl.rb +226 -56
  38. data/lib/rdf/vocab/prov.rb +489 -0
  39. data/lib/rdf/vocab/rdfs.rb +38 -14
  40. data/lib/rdf/vocab/rsa.rb +25 -9
  41. data/lib/rdf/vocab/rss.rb +29 -11
  42. data/lib/rdf/vocab/schema.rb +3729 -647
  43. data/lib/rdf/vocab/sioc.rb +224 -89
  44. data/lib/rdf/vocab/skos.rb +141 -33
  45. data/lib/rdf/vocab/skosxl.rb +43 -0
  46. data/lib/rdf/vocab/v.rb +154 -0
  47. data/lib/rdf/vocab/vcard.rb +337 -0
  48. data/lib/rdf/vocab/void.rb +142 -0
  49. data/lib/rdf/vocab/wdrs.rb +129 -0
  50. data/lib/rdf/vocab/wot.rb +52 -18
  51. data/lib/rdf/vocab/xhtml.rb +3 -6
  52. data/lib/rdf/vocab/xhv.rb +239 -0
  53. data/lib/rdf/writer.rb +3 -3
  54. metadata +81 -14
@@ -0,0 +1,1094 @@
1
+ # This file generated automatically using vocab-fetch from http://www.heppnetz.de/ontologies/goodrelations/v1.owl
2
+ require 'rdf'
3
+ module RDF
4
+ class GR < StrictVocabulary("http://purl.org/goodrelations/v1#")
5
+
6
+ # Class definitions
7
+ property :ActualProductOrServiceInstance, :label => 'Actual product or service instance (DEPRECATED)', :comment =>
8
+ %(DEPRECATED - This class is superseded by gr:Individual.
9
+ Replace all occurrences of gr:ActualProductOrServiceInstance
10
+ by gr:Individual, if possible.)
11
+ property :Brand, :label => 'Brand', :comment =>
12
+ %(A brand is the identity of a specific product, service, or
13
+ business. Use foaf:logo for attaching a brand logo and gr:name
14
+ or rdfs:label for attaching the brand name. \(Source:
15
+ Wikipedia, the free encyclopedia, see
16
+ http://en.wikipedia.org/wiki/Brand\))
17
+ property :BusinessEntity, :label => 'Business entity', :comment =>
18
+ %(An instance of this class represents the legal agent making
19
+ \(or seeking\) a particular offering. This can be a legal body
20
+ or a person. A business entity has at least a primary mailing
21
+ address and contact details. For this, typical address
22
+ standards \(vCard\) and location data \(geo, WGS84\) can be
23
+ attached. Note that the location of the business entity is not
24
+ necessarily the location from which the product or service is
25
+ being available \(e.g. the branch or store\). Use gr:Location
26
+ for stores and branches. Example: Siemens Austria AG,
27
+ Volkswagen Ltd., Peter Miller's Cell phone Shop LLC
28
+ Compatibility with schema.org: This class is equivalent to the
29
+ union of http://schema.org/Person and
30
+ http://schema.org/Organization.)
31
+ property :BusinessEntityType, :label => 'Business entity type', :comment =>
32
+ %(A business entity type is a conceptual entity representing the
33
+ legal form, the size, the main line of business, the position
34
+ in the value chain, or any combination thereof, of a
35
+ gr:BusinessEntity. From the ontological point of view,
36
+ business entity types are mostly roles that a business entity
37
+ has in the market. Business entity types are important for
38
+ specifying eligible customers, since a gr:Offering is often
39
+ valid only for business entities of a certain size, legal
40
+ structure, or role in the value chain. Examples: Consumers,
41
+ Retailers, Wholesalers, or Public Institutions)
42
+ property :BusinessFunction, :label => 'Business function', :comment =>
43
+ %(The business function specifies the type of activity or access
44
+ \(i.e., the bundle of rights\) offered by the
45
+ gr:BusinessEntity on the gr:ProductOrService through the
46
+ gr:Offering. Typical are sell, rental or lease, maintenance or
47
+ repair, manufacture / produce, recycle / dispose, engineering
48
+ / construction, or installation. Licenses and other
49
+ proprietary specifications of access rights are also instances
50
+ of this class. Examples: A particular offering made by Miller
51
+ Rentals Ltd. says that they \(1\) sell Volkswagen Golf
52
+ convertibles, \(2\) lease out a particular Ford pick-up truck,
53
+ and \(3\) dispose car wrecks of any make and model.)
54
+ property :DayOfWeek, :label => 'Day of week', :comment =>
55
+ %(The day of the week, used to specify to which day the opening
56
+ hours of a gr:OpeningHoursSpecification refer. Examples:
57
+ Monday, Tuesday, Wednesday,...)
58
+ property :DeliveryChargeSpecification, :label => 'Delivery charge specification', :comment =>
59
+ %(A delivery charge specification is a conceptual entity that
60
+ specifies the additional costs asked for the delivery of a
61
+ given gr:Offering using a particular gr:DeliveryMethod by the
62
+ respective gr:BusinessEntity. A delivery charge specification
63
+ is characterized by \(1\) a monetary amount per order,
64
+ specified as a literal value of type float in combination with
65
+ a currency, \(2\) the delivery method, \(3\) the target
66
+ country or region, and \(4\) whether this charge includes
67
+ local sales taxes, namely VAT. A gr:Offering may be linked to
68
+ multiple gr:DeliveryChargeSpecification nodes that specify
69
+ alternative charges for disjoint combinations of target
70
+ countries or regions, and delivery methods. Examples: Delivery
71
+ by direct download is free of charge worldwide, delivery by
72
+ UPS to Germany is 10 Euros per order, delivery by mail within
73
+ the US is 5 Euros per order. The total amount of this charge
74
+ is specified as a float value of the gr:hasCurrencyValue
75
+ property. The currency is specified via the gr:hasCurrency
76
+ datatype property. Whether the price includes VAT or not is
77
+ indicated by the gr:valueAddedTaxIncluded property. The
78
+ gr:DeliveryMethod to which this charge applies is specified
79
+ using the gr:appliesToDeliveryMethod object property. The
80
+ region or regions to which this charge applies is specified
81
+ using the gr:eligibleRegions property, which uses ISO 3166-1
82
+ and ISO 3166-2 codes. If the price can only be given as a
83
+ range, use gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue
84
+ for the upper and lower bounds. Important: When querying for
85
+ the price, always use gr:hasMaxCurrencyValue and
86
+ gr:hasMinCurrencyValue.)
87
+ property :DeliveryMethod, :label => 'Delivery method', :comment =>
88
+ %(A delivery method is a standardized procedure for transferring
89
+ the product or service to the destination of fulfilment chosen
90
+ by the customer. Delivery methods are characterized by the
91
+ means of transportation used, and by the organization or group
92
+ that is the contracting party for the sending
93
+ gr:BusinessEntity \(this is important, since the contracted
94
+ party may subcontract the fulfilment to smaller, regional
95
+ businesses\). Examples: Delivery by mail, delivery by direct
96
+ download, delivery by UPS)
97
+ property :DeliveryModeParcelService, :label => 'Delivery mode parcel service', :comment =>
98
+ %(A private parcel service as the delivery mode available for a
99
+ certain offering. Examples: UPS, DHL)
100
+ property :Individual, :label => 'Individual', :comment =>
101
+ %(A gr:Individual is an actual product or service instance,
102
+ i.e., a single identifiable object or action that creates some
103
+ increase in utility \(in the economic sense\) for the
104
+ individual possessing or using this very object \(product\) or
105
+ for the individual in whose favor this very action is being
106
+ taken \(service\). Products or services are types of goods in
107
+ the economic sense. For an overview of goods and commodities
108
+ in economics, see Milgate \(1987\). Examples: MyThinkpad T60,
109
+ the pint of beer standing in front of me, my Volkswagen Golf,
110
+ the haircut that I received or will be receiving at a given
111
+ date and time. Note 1: In many cases, product or service
112
+ instances are not explicitly exposed on the Web but only
113
+ claimed to exist \(i.e. existentially quantified\). In this
114
+ case, use gr:SomeItems. Note 2: This class is the new, shorter
115
+ form of the former gr:ActualProductOrServiceInstance.
116
+ Compatibility with schema.org: This class is a subclass of
117
+ http://schema.org/Product.)
118
+ property :License, :label => 'License', :comment =>
119
+ %(A license is the specification of a bundle of rights that
120
+ determines the type of activity or access offered by the
121
+ gr:BusinessEntity on the gr:ProductOrService through the
122
+ gr:Offering. Licenses can be standardized \(e.g. LPGL,
123
+ Creative Commons, ...\), vendor-specific, or individually
124
+ defined for a single offer or product. Whether there is a fee
125
+ for obtaining the license is specified using the
126
+ gr:UnitPriceSpecification attached to the gr:Offering. Use
127
+ foaf:page for linking to a document containing the license,
128
+ e.g. in PDF or HTML.)
129
+ property :Location, :label => 'Location', :comment =>
130
+ %(A location is a point or area of interest from which a
131
+ particular product or service is available, e.g. a store, a
132
+ bus stop, a gas station, or a ticket booth. The difference to
133
+ gr:BusinessEntity is that the gr:BusinessEntity is the legal
134
+ entity \(e.g. a person or corporation\) making the offer,
135
+ while gr:Location is the store, office, or place. A chain
136
+ restaurant will e.g. have one legal entity but multiple
137
+ restaurant locations. Locations are characterized by an
138
+ address or geographical position and a set of opening hour
139
+ specifications for various days of the week. Example: A rental
140
+ car company may offer the Business Function Lease Out of cars
141
+ from two locations, one in Fort Myers, Florida, and one in
142
+ Boston, Massachussetts. Both stations are open 7:00 - 23:00
143
+ Mondays through Saturdays. Note: Typical address standards
144
+ \(vcard\) and location data \(geo, WGC84\) should be attached
145
+ to a gr:Location node. Since there already exist established
146
+ vocabularies for this, the GoodRelations ontology does not
147
+ provide respective attributes. Instead, the use of respective
148
+ vocabularies is recommended. However, the
149
+ gr:hasGlobalLocationNumber property is provided for linking to
150
+ public identifiers for business locations. Compatibility with
151
+ schema.org: This class is equivalent to
152
+ http://schema.org/Place.)
153
+ property :LocationOfSalesOrServiceProvisioning, :label => 'Location of sales or service provisioning (DEPRECATED)', :comment =>
154
+ %(DEPRECATED - This class is superseded by gr:Location. Replace
155
+ all occurrences of gr:LocationOfSalesOrServiceProvisioning by
156
+ gr:Location, if possible.)
157
+ property :"N-Ary-Relations", :label => 'N-ary relations (DEPRECATED)', :comment =>
158
+ %(This is the superclass for all classes that are placeholders
159
+ for n-ary relations, which OWL cannot represent. DEPRECATED.
160
+ Do not use this class in data or queries.)
161
+ property :Offering, :label => 'Offering', :comment =>
162
+ %(An offering represents the public, not necessarily binding,
163
+ not necessarily exclusive, announcement by a gr:BusinessEntity
164
+ to provide \(or seek\) a certain gr:BusinessFunction for a
165
+ certain gr:ProductOrService to a specified target audience. An
166
+ offering is specified by the type of product or service or
167
+ bundle it refers to, what business function is being offered
168
+ \(sales, rental, ...\), and a set of commercial properties. It
169
+ can either refer to \(1\) a clearly specified instance
170
+ \(gr:Individual\), \(2\) to a set of anonymous instances of a
171
+ given type \(gr:SomeItems\), \(3\) a product model
172
+ specification \(gr:ProductOrServiceModel\), see also section
173
+ 3.3.3 of the GoodRelations Technical Report. An offering may
174
+ be constrained in terms of the eligible type of business
175
+ partner, countries, quantities, and other commercial
176
+ properties. The definition of the commercial properties, the
177
+ type of product offered, and the business function are
178
+ explained in other parts of this vocabulary in more detail.
179
+ Example: Peter Miller offers to repair TV sets made by
180
+ Siemens, Volkswagen Innsbruck sells a particular instance of a
181
+ Volkswagen Golf at $10,000. Compatibility with schema.org:
182
+ This class is a superclass to http://schema.org/Offer, since
183
+ gr:Offering can also represent demand.)
184
+ property :OpeningHoursSpecification, :label => 'Opening hours specification', :comment =>
185
+ %(This is a conceptual entity that holds together all
186
+ information about the opening hours on a given day
187
+ \(gr:DayOfWeek\).)
188
+ property :PaymentChargeSpecification, :label => 'Payment charge specification', :comment =>
189
+ %(A payment charge specification is a conceptual entity that
190
+ specifies the additional costs asked for settling the payment
191
+ after accepting a given gr:Offering using a particular
192
+ gr:PaymentMethod. A payment charge specification is
193
+ characterized by \(1\) a monetary amount per order specified
194
+ as a literal value of type float in combination with a
195
+ Currency, \(2\) the payment method, and \(3\) a whether this
196
+ charge includes local sales taxes, namely VAT. A gr:Offering
197
+ may be linked to multiple payment charge specifications that
198
+ specify alternative charges for various payment methods.
199
+ Examples: Payment by VISA or Mastercard costs a fee of 3 Euros
200
+ including VAT, payment by bank transfer in advance is free of
201
+ charge. The total amount of this surcharge is specified as a
202
+ float value of the gr:hasCurrencyValue property. The currency
203
+ is specified via the gr:hasCurrency datatype property. Whether
204
+ the price includes VAT or not is indicated by the
205
+ gr:valueAddedTaxIncluded datatype property. The
206
+ gr:PaymentMethod to which this charge applies is specified
207
+ using the gr:appliesToPaymentMethod object property. If the
208
+ price can only be given as a range, use gr:hasMaxCurrencyValue
209
+ and gr:hasMinCurrencyValue for the upper and lower bounds.
210
+ Important: When querying for the price, always use
211
+ gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue.)
212
+ property :PaymentMethod, :label => 'Payment method', :comment =>
213
+ %(A payment method is a standardized procedure for transferring
214
+ the monetary amount for a purchase. Payment methods are
215
+ characterized by the legal and technical structures used, and
216
+ by the organization or group carrying out the transaction.
217
+ This element is mostly used for specifying the types of
218
+ payment accepted by a gr:BusinessEntity. Examples: VISA,
219
+ MasterCard, Diners, cash, or bank transfer in advance.)
220
+ property :PaymentMethodCreditCard, :label => 'Payment method credit card', :comment =>
221
+ %(The subclass of gr:PaymentMethod represents all variants and
222
+ brands of credit or debit cards as a standardized procedure
223
+ for transferring the monetary amount for a purchase. It is
224
+ mostly used for specifying the types of payment accepted by a
225
+ gr:Business Entity. Examples: VISA, MasterCard, or American
226
+ Express.)
227
+ property :PriceSpecification, :label => 'Price specification', :comment =>
228
+ %(The superclass of all price specifications.)
229
+ property :ProductOrService, :label => 'Product or service', :comment =>
230
+ %(The superclass of all classes describing products or services
231
+ types, either by nature or purpose. Examples for such
232
+ subclasses are "TV set", "vacuum cleaner", etc. An instance of
233
+ this class can be either an actual product or service
234
+ \(gr:Individual\), a placeholder instance for unknown
235
+ instances of a mass-produced commodity \(gr:SomeItems\), or a
236
+ model / prototype specification \(gr:ProductOrServiceModel\).
237
+ When in doubt, use gr:SomeItems. Examples: a\) MyCellphone123,
238
+ i.e. my personal, tangible cell phone \(gr:Individual\) b\)
239
+ Siemens1234, i.e. the Siemens cell phone make and model 1234
240
+ \(gr:ProductOrServiceModel\) c\) dummyCellPhone123 as a
241
+ placeholder for actual instances of a certain kind of cell
242
+ phones \(gr:SomeItems\) Note: Your first choice for
243
+ specializations of gr:ProductOrService should be
244
+ http://www.productontology.org. Compatibility with schema.org:
245
+ This class is \(approximately\) equivalent to
246
+ http://schema.org/Product.)
247
+ property :ProductOrServiceModel, :label => 'Product or service model', :comment =>
248
+ %(A product or service model is a intangible entity that
249
+ specifies some characteristics of a group of similar, usually
250
+ mass-produced products, in the sense of a prototype. In case
251
+ of mass-produced products, there exists a relation
252
+ gr:hasMakeAndModel between the actual product or service
253
+ \(gr:Individual or gr:SomeItems\) and the prototype
254
+ \(gr:ProductOrServiceModel\). GoodRelations treats product or
255
+ service models as "prototypes" instead of a completely
256
+ separate kind of entities, because this allows using the same
257
+ domain-specific properties \(e.g. gr:weight\) for describing
258
+ makes and models and for describing actual products. Examples:
259
+ Ford T, Volkswagen Golf, Sony Ericsson W123 cell phone Note:
260
+ An actual product or service \(gr:Individual\) by default
261
+ shares the features of its model \(e.g. the weight\). However,
262
+ this requires non-standard reasoning. See
263
+ http://wiki.goodrelations-vocabulary.org/Axioms for respective
264
+ rule sets. Compatibility with schema.org: This class is
265
+ \(approximately\) a subclass of http://schema.org/Product.)
266
+ property :ProductOrServicesSomeInstancesPlaceholder, :label => 'Product or services some instances placeholder (DEPRECATED)', :comment =>
267
+ %(DEPRECATED - This class is superseded by gr:SomeItems. Replace
268
+ all occurrences of
269
+ gr:ProductOrServicesSomeInstancesPlaceholder by gr:SomeItems,
270
+ if possible.)
271
+ property :QualitativeValue, :label => 'Qualitative value', :comment =>
272
+ %(A qualitative value is a predefined value for a product
273
+ characteristic. Examples: the color "green" or the power cord
274
+ plug type "US"; the garment sizes "S", "M", "L", and "XL".
275
+ Note: Value sets are supported by creating subclasses of this
276
+ class. Ordinal relations between values \(gr:greater,
277
+ gr:lesser, ...\) are provided directly by GoodRelations.
278
+ Compatibility with schema.org: This class is equivalent to
279
+ http://schema.org/Enumeration.)
280
+ property :QuantitativeValue, :label => 'Quantitative value', :comment =>
281
+ %(A quantitative value is a numerical interval that represents
282
+ the range of a certain gr:quantitativeProductOrServiceProperty
283
+ in terms of the lower and upper bounds for a particular
284
+ gr:ProductOrService. It is to be interpreted in combination
285
+ with the respective unit of measurement. Most quantitative
286
+ values are intervals even if they are in practice often
287
+ treated as a single point value. Example: a weight between 10
288
+ and 25 kilogramms, a length between 10 and 15 milimeters.
289
+ Compatibility with schema.org: This class is equivalent to
290
+ http://schema.org/Quantity.)
291
+ property :QuantitativeValueFloat, :label => 'Quantitative value float', :comment =>
292
+ %(An instance of this class is an actual float value for a
293
+ quantitative property of a product. This instance is usually
294
+ characterized by a minimal value, a maximal value, and a unit
295
+ of measurement. Examples: The intervals "between 10.0 and 25.4
296
+ kilogramms" or "10.2 and 15.5 milimeters". Compatibility with
297
+ schema.org: This class is a subclass of
298
+ http://schema.org/Quantity.)
299
+ property :QuantitativeValueInteger, :label => 'Quantitative value integer', :comment =>
300
+ %(An instance of this class is an actual integer value for a
301
+ quantitative property of a product. This instance is usually
302
+ characterized by a minimal value, a maximal value, and a unit
303
+ of measurement. Example: A seating capacity between 1 and 8
304
+ persons. Note: Users must keep in mind that ranges in here
305
+ mean that ALL possible values in this interval are covered.
306
+ \(Sometimes, the actual commitment may be less than that: "We
307
+ sell cars from 2 - 12 seats" does often not really mean that
308
+ they have cars with 2,3,4,...12 seats.\). Someone renting out
309
+ two types of rowing boats, one that fits for 1 or 2 people,
310
+ and another that must be operated by 4 people cannot claim to
311
+ rent boats with a seating capacity between 1 and 4 people. He
312
+ or she is offering two boat types for 1-2 and 4 persons.
313
+ Compatibility with schema.org: This class is a subclass of
314
+ http://schema.org/Quantity.)
315
+ property :SomeItems, :label => 'Some items', :comment =>
316
+ %(A placeholder instance for unknown instances of a
317
+ mass-produced commodity. This is used as a computationally
318
+ cheap work-around for such instances that are not individually
319
+ exposed on the Web but just stated to exist \(i.e., which are
320
+ existentially quantified\). Example: An instance of this class
321
+ can represent an anonymous set of green Siemens1234 phones. It
322
+ is different from the gr:ProductOrServiceModel Siemens1234,
323
+ since this refers to the make and model, and it is different
324
+ from a particular instance of this make and model \(e.g. my
325
+ individual phone\) since the latter can be sold only once.
326
+ Note: This class is the new, shorter form of the former
327
+ gr:ProductOrServicesSomeInstancesPlaceholder. Compatibility
328
+ with schema.org: This class is \(approximately\) a subclass of
329
+ http://schema.org/Product.)
330
+ property :TypeAndQuantityNode, :label => 'Type and quantity node', :comment =>
331
+ %(This class collates all the information about a
332
+ gr:ProductOrService included in a bundle. If a gr:Offering
333
+ contains just one item, you can directly link from the
334
+ gr:Offering to the gr:ProductOrService using gr:includes. If
335
+ the offering contains multiple items, use an instance of this
336
+ class for each component to indicate the quantity, unit of
337
+ measurement, and type of product, and link from the
338
+ gr:Offering via gr:includesObject. Example: An offering may
339
+ include of 100g of Butter and 1 kg of potatoes, or 1 cell
340
+ phone and 2 headsets.)
341
+ property :UnitPriceSpecification, :label => 'Unit price specification', :comment =>
342
+ %(A unit price specification is a conceptual entity that
343
+ specifies the price asked for a given gr:Offering by the
344
+ respective gr:Business Entity. An offering may be linked to
345
+ multiple unit price specifications that specify alternative
346
+ prices for non-overlapping sets of conditions \(e.g.
347
+ quantities or sales regions\) or with differing validity
348
+ periods. A unit price specification is characterized by \(1\)
349
+ the lower and upper limits and the unit of measurement of the
350
+ eligible quantity, \(2\) by a monetary amount per unit of the
351
+ product or service, and \(3\) whether this prices includes
352
+ local sales taxes, namely VAT. Example: The price, including
353
+ VAT, for 1 kg of a given material is 5 Euros per kg for 0 - 5
354
+ kg and 4 Euros for quantities above 5 kg. The eligible
355
+ quantity interval for a given price is specified using the
356
+ object property gr:hasEligibleQuantity, which points to an
357
+ instance of gr:QuantitativeValue. The currency is specified
358
+ using the gr:hasCurrency property, which points to an ISO 4217
359
+ currency code. The unit of measurement for the eligible
360
+ quantity is specified using the gr:hasUnitOfMeasurement
361
+ datatype property, which points to an UN/CEFACT Common Code
362
+ \(3 characters\). In most cases, the appropriate unit of
363
+ measurement is the UN/CEFACT Common Code "C62" for "Unit or
364
+ piece", since a gr:Offering is defined by the quantity and
365
+ unit of measurement of all items included \(e.g. "1 kg of
366
+ bananas plus a 2 kg of apples"\). As long at the offering
367
+ consists of only one item, it is also possible to use an unit
368
+ of measurement of choice for specifying the price per unit.
369
+ For bundles, however, only "C62" for "Unit or piece" is a
370
+ valid unit of measurement. You can assume that the price is
371
+ given per unit or piece if there is no gr:hasUnitOfMeasurement
372
+ property attached to the price. Whether VAT and sales taxes
373
+ are included in this price is specified using the property
374
+ gr:valueAddedTaxIncluded \(xsd:boolean\). The price per unit
375
+ of measurement is specified as a float value of the
376
+ gr:hasCurrencyValue property. The currency is specified via
377
+ the gr:hasCurrency datatype property. Whether the price
378
+ includes VAT or not is indicated by the
379
+ gr:valueAddedTaxIncluded datatype property. The property
380
+ priceType can be used to indicate that the price is a retail
381
+ price recommendation only \(i.e. a list price\). If the price
382
+ can only be given as a range, use gr:hasMaxCurrencyValue and
383
+ gr:hasMinCurrencyValue for the upper and lower bounds.
384
+ Important: When querying for the price, always use
385
+ gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue. Note 1: Due
386
+ to the complexity of pricing scenarios in various industries,
387
+ it may be necessary to create extensions of this fundamental
388
+ model of price specifications. Such can be done easily by
389
+ importing and refining the GoodRelations ontology. Note 2: For
390
+ Google, attaching a gr:validThrough statement to a
391
+ gr:UnitPriceSpecification is mandatory.)
392
+ property :WarrantyPromise, :label => 'Warranty promise', :comment =>
393
+ %(This is a conceptual entity that holds together all aspects of
394
+ the n-ary relation gr:hasWarrantyPromise. A Warranty promise
395
+ is an entity representing the duration and scope of services
396
+ that will be provided to a customer free of charge in case of
397
+ a defect or malfunction of the gr:ProductOrService. A warranty
398
+ promise is characterized by its temporal duration \(usually
399
+ starting with the date of purchase\) and its gr:WarrantyScope.
400
+ The warranty scope represents the types of services provided
401
+ \(e.g. labor and parts, just parts\) of the warranty included
402
+ in an gr:Offering. The actual services may be provided by the
403
+ gr:BusinessEntity making the offering, by the manufacturer of
404
+ the product, or by a third party. There may be multiple
405
+ warranty promises associated with a particular offering, which
406
+ differ in duration and scope \(e.g. pick-up service during the
407
+ first 12 months, just parts and labor for 36 months\).
408
+ Examples: 12 months parts and labor, 36 months parts)
409
+ property :WarrantyScope, :label => 'Warranty scope', :comment =>
410
+ %(The warranty scope represents types of services that will be
411
+ provided free of charge by the vendor or manufacturer in the
412
+ case of a defect \(e.g. labor and parts, just parts\), as part
413
+ of the warranty included in an gr:Offering. The actual
414
+ services may be provided by the gr:BusinessEntity making the
415
+ offering, by the manufacturer of the product, or by a third
416
+ party. Examples: Parts and Labor, Parts)
417
+
418
+ # Property definitions
419
+ property :taxID, :label => 'Tax ID (0..1)', :comment =>
420
+ %(The Tax / Fiscal ID of the gr:BusinessEntity, e.g. the TIN in
421
+ the US or the CIF/NIF in Spain. It is usually assigned by the
422
+ country of residence)
423
+ property :vatID, :label => 'VAT ID (0..1)', :comment =>
424
+ %(The Value-added Tax ID of the gr:BusinessEntity. See
425
+ http://en.wikipedia.org/wiki/Value_added_tax_identification_number
426
+ for details.)
427
+ property :amountOfThisGood, :label => 'amount of this good (1..1)', :comment =>
428
+ %(This property specifies the quantity of the goods included in
429
+ the gr:Offering via this gr:TypeAndQuantityNode. The quantity
430
+ is given in the unit of measurement attached to the
431
+ gr:TypeAndQuantityNode.)
432
+ property :availabilityEnds, :label => 'availability ends (0..1)', :comment =>
433
+ %(This property specifies the end of the availability of the
434
+ gr:ProductOrService included in the gr:Offering. The
435
+ difference to the properties gr:validFrom and gr:validThrough
436
+ is that those specify the period of time during which the
437
+ offer is valid and can be accepted. Example: I offer to lease
438
+ my boat for the period of August 1 - August 31, 2010, but you
439
+ must accept by offer no later than July 15. A time-zone should
440
+ be specified. For a time in GMT/UTC, simply add a "Z"
441
+ following the time: 2008-05-30T09:30:10Z. Alternatively, you
442
+ can specify an offset from the UTC time by adding a positive
443
+ or negative time following the time: 2008-05-30T09:30:10-09:00
444
+ or 2008-05-30T09:30:10+09:00. Note: There is another property
445
+ gr:availableAtOrFrom, which is used to indicate the
446
+ gr:Location \(e.g. store or shop\) from which the goods would
447
+ be available.)
448
+ property :availabilityStarts, :label => 'availability starts (0..1)', :comment =>
449
+ %(This property specifies the beginning of the availability of
450
+ the gr:ProductOrService included in the gr:Offering. The
451
+ difference to the properties gr:validFrom and gr:validThrough
452
+ is that those specify the period of time during which the
453
+ offer is valid and can be accepted. Example: I offer to lease
454
+ my boat for the period of August 1 - August 31, 2010, but you
455
+ must accept by offer no later than July 15. A time-zone should
456
+ be specified. For a time in GMT/UTC, simply add a "Z"
457
+ following the time: 2008-05-30T09:30:10Z. Alternatively, you
458
+ can specify an offset from the UTC time by adding a positive
459
+ or negative time following the time: 2008-05-30T09:30:10-09:00
460
+ or 2008-05-30T09:30:10+09:00. Note: There is another property
461
+ gr:availableAtOrFrom, which is used to indicate the
462
+ gr:Location \(e.g. store or shop\) from which the goods would
463
+ be available.)
464
+ property :billingIncrement, :label => 'billing increment (0..1)', :comment =>
465
+ %(This property specifies the minimal quantity and rounding
466
+ increment that will be the basis for the billing. The unit of
467
+ measurement is specified by the UN/CEFACT code attached to the
468
+ gr:UnitPriceSpecification via the gr:hasUnitOfMeasurement
469
+ property. Examples: - The price for gasoline is 4 USD per
470
+ gallon at the pump, but you will be charged in units of 0.1
471
+ gallons. - The price for legal consulting is 100 USD per hour,
472
+ but you will be charged in units of 15 minutes. This property
473
+ makes sense only for instances of gr:Offering that include not
474
+ more than one type of good or service.)
475
+ property :category, :label => 'category (0..*)', :comment =>
476
+ %(The name of a category to which this gr:ProductOrService,
477
+ gr:Offering, gr:BusinessEntity, or gr:Location belongs. Note
478
+ 1: For products, it is better to add an rdf:type statement
479
+ referring to a GoodRelations-compliant ontology for vertical
480
+ industries instead, but if you just have a short text label,
481
+ gr:category is simpler. Note 2: You can use greater signs or
482
+ slashes to informally indicate a category hierarchy, e.g.
483
+ "restaurants/asian_restaurants" or "cables > usb_cables")
484
+ property :closes, :label => 'closes (1..1)', :comment =>
485
+ %(The closing hour of the gr:Location on the given gr:DayOfWeek.
486
+ If no time-zone suffix is included, the time is given in the
487
+ local time valid at the gr:Location. For a time in GMT/UTC,
488
+ simply add a "Z" following the time: 09:30:10Z. Alternatively,
489
+ you can specify an offset from the UTC time by adding a
490
+ positive or negative time following the time: 09:30:10-09:00
491
+ 09:30:10+09:00. Note 1: Use 00:00:00 for the first second of
492
+ the respective day and 23:59:59 for the last second of that
493
+ day. Note 2: If a store opens at 17:00 on Saturdays and closes
494
+ at 03:00:00 a.m. next morning, use two instances of this
495
+ class, one with 17:00:00 - 23:59:59 for Saturday and another
496
+ one with 00:00:00 - 03:00:00 for Sunday. Note 3: If the shop
497
+ re-opens on the same day of the week or set of days of the
498
+ week, you must create a second instance of
499
+ gr:OpeningHoursSpecification.)
500
+ property :color, :label => 'color (0..1)', :comment =>
501
+ %(The color of the product.)
502
+ property :condition, :label => 'condition (0..1)', :comment =>
503
+ %(A textual description of the condition of the product or
504
+ service, or the products or services included in the offer
505
+ \(when attached to a gr:Offering\))
506
+ property :datatypeProductOrServiceProperty, :label => 'datatype product or service property (0..*)', :comment =>
507
+ %(This property is the super property for all pure datatype
508
+ properties that can be used to describe a gr:ProductOrService.
509
+ In products and services ontologies, only such properties that
510
+ are no quantitative properties and that have no predefined
511
+ gr:QualitativeValue instances are subproperties of this
512
+ property. In practice, this refers to a few integer properties
513
+ for which the integer value represents qualitative aspects,
514
+ for string datatypes \(as long as no predefined values
515
+ exist\), for boolean datatype properties, and for dates and
516
+ times.)
517
+ property :description, :label => 'description (0..1)', :comment =>
518
+ %(A short textual description of the resource. This property is
519
+ semantically equivalent to rdfs:comment and just meant as a
520
+ handy shortcut for marking up data.)
521
+ property :durationOfWarrantyInMonths, :label => 'duration of warranty in months (0..1)', :comment =>
522
+ %(This property specifies the duration of the gr:WarrantyPromise
523
+ in months.)
524
+ property :eligibleRegions, :label => 'eligible regions (0..*)', :comment =>
525
+ %(This property specifies the geo-political region or regions
526
+ for which the gr:Offering, gr:License, or
527
+ gr:DeliveryChargeSpecification is valid using the
528
+ two-character version of ISO 3166-1 \(ISO 3166-1 alpha-2\) for
529
+ regions or ISO 3166-2 , which breaks down the countries from
530
+ ISO 3166-1 into administrative subdivisions. Important: Do NOT
531
+ use 3-letter ISO 3166-1 codes!)
532
+ property :hasDUNS, :label => 'has DUNS (0..1)', :comment =>
533
+ %(The Dun & Bradstreet DUNS number for identifying a
534
+ gr:BusinessEntity. The Dun & Bradstreet DUNS is a nine-digit
535
+ number used to identify legal entities \(but usually not
536
+ branches or locations of logistical importance only\).)
537
+ property :"hasGTIN-14", :label => 'has GTIN-14 (0..*)', :comment =>
538
+ %(The Global Trade Item Number \(GTIN-14\) of the given
539
+ gr:ProductOrService or gr:Offering.)
540
+ property :"hasGTIN-8", :label => 'has GTIN-8 (0..*)', :comment =>
541
+ %(The 8-digit Global Trade Item Number \(GTIN-8\) of the given
542
+ gr:ProductOrService or gr:Offering, also known as EAN/UCC-8
543
+ \(8-digit EAN\).)
544
+ property :hasGlobalLocationNumber, :label => 'has Global Location Number (0..1)', :comment =>
545
+ %(The Global Location Number \(GLN, sometimes also referred to
546
+ as International Location Number or ILN\) of the respective
547
+ gr:BusinessEntity or gr:Location. The Global Location Number
548
+ is a thirteen-digit number used to identify parties and
549
+ physical locations.)
550
+ property :hasISICv4, :label => 'has ISIC v4 (0..*)', :comment =>
551
+ %(The International Standard of Industrial Classification of All
552
+ Economic Activities \(ISIC\), Revision 4 code for a particular
553
+ gr:BusinessEntity or gr:Location. See
554
+ http://unstats.un.org/unsd/cr/registry/isic-4.asp for more
555
+ information. Note: While ISIC codes are sometimes misused for
556
+ classifying products or services, they are designed and suited
557
+ only for classifying business establishments.)
558
+ property :hasMPN, :label => 'has MPN (0..*)', :comment =>
559
+ %(The Manufacturer Part Number or MPN is a unique identifier for
560
+ a product, service, or bundle from the perspective of a
561
+ particular manufacturer. MPNs can be assigned to products or
562
+ product datasheets, or bundles. Accordingly, the domain of
563
+ this property is the union of gr:ProductOrService \(the common
564
+ superclass of goods and datasheets\), and gr:Offering.
565
+ Important: Be careful when assuming two products or services
566
+ instances or offering instances to be identical based on the
567
+ MPN. Since MPNs are unique only for the same
568
+ gr:BusinessEntity, this holds only when the two MPN values
569
+ refer to the same gr:BusinessEntity. Such can be done by
570
+ taking into account the provenance of the data. Usually, the
571
+ properties gr:hasEAN_UCC-13 and gr:hasGTIN-14 are much more
572
+ reliable identifiers, because they are globally unique. See
573
+ also http://en.wikipedia.org/wiki/Part_number)
574
+ property :hasNAICS, :label => 'has NAICS (0..*)', :comment =>
575
+ %(The North American Industry Classification System \(NAICS\)
576
+ code for a particular gr:BusinessEntity. See
577
+ http://www.census.gov/eos/www/naics/ for more details. Note:
578
+ While NAICS codes are sometimes misused for classifying
579
+ products or services, they are designed and suited only for
580
+ classifying business establishments.)
581
+ property :hasStockKeepingUnit, :label => 'has Stock Keeping Unit (0..*)', :comment =>
582
+ %(The Stock Keeping Unit, or SKU is a unique identifier for a
583
+ product, service, or bundle from the perspective of a
584
+ particular supplier, i.e. SKUs are mostly assigned and
585
+ serialized at the merchant level. Examples of SKUs are the
586
+ ordering or parts numbers used by a particular Web shop or
587
+ catalog. Consequently, the domain of gr:hasStockKeepingUnit is
588
+ the union of the classes gr:Offering and gr:ProductOrService.
589
+ If attached to a gr:Offering, the SKU will usually reflect a
590
+ merchant-specific identifier, i.e. one valid only for that
591
+ particular retailer or shop. If attached to a
592
+ gr:ProductOrServiceModel, the SKU can reflect either the
593
+ identifier used by the merchant or the part number used by the
594
+ official manufacturer of that part. For the latter, gr:hasMPN
595
+ is a better choice. Important: Be careful when assuming two
596
+ products or services instances or offering instances to be
597
+ identical based on the SKU. Since SKUs are unique only for the
598
+ same gr:BusinessEntity, this can be assumed only when you are
599
+ sure that the two SKU values refer to the same business
600
+ entity. Such can be done by taking into account the provenance
601
+ of the data. As long as instances of gr:Offering are
602
+ concerned, you can also check that the offerings are being
603
+ offered by the same gr:Business Entity. Usually, the
604
+ properties gr:hasEAN_UCC-13 and gr:hasGTIN-14 are much more
605
+ reliable identifiers, because they are globally unique. See
606
+ also http://en.wikipedia.org/wiki/Stock_Keeping_Unit.)
607
+ property :hasCurrency, :label => 'has currency (1..1)', :comment =>
608
+ %(The currency for all prices in the gr:PriceSpecification given
609
+ using the ISO 4217 standard \(3 characters\).)
610
+ property :hasCurrencyValue, :label => 'has currency value (0..1)', :comment =>
611
+ %(This property specifies the amount of money for a price per
612
+ unit, shipping charges, or payment charges. The currency and
613
+ other relevant details are attached to the respective
614
+ gr:PriceSpecification etc. For a gr:UnitPriceSpecification,
615
+ this is the price for one unit or bundle \(as specified in the
616
+ unit of measurement of the unit price specification\) of the
617
+ respective gr:ProductOrService. For a
618
+ gr:DeliveryChargeSpecification or a
619
+ gr:PaymentChargeSpecification, it is the price per delivery or
620
+ payment. GoodRelations also supports giving price information
621
+ as intervals only. If this is needed, use
622
+ gr:hasMaxCurrencyValue for the upper bound and
623
+ gr:hasMinCurrencyValue for the lower bound. Using
624
+ gr:hasCurrencyValue sets the upper and lower bounds to the
625
+ same given value, i.e., x gr:hasCurrencyValue y implies x
626
+ gr:hasMinCurrencyValue y, x gr:hasMaxCurrencyValue y.)
627
+ property :hasMaxCurrencyValue, :label => 'has max currency value (1..1)', :comment =>
628
+ %(This property specifies the UPPER BOUND of the amount of money
629
+ for a price RANGE per unit, shipping charges, or payment
630
+ charges. The currency and other relevant details are attached
631
+ to the respective gr:PriceSpecification etc. For a
632
+ gr:UnitPriceSpecification, this is the UPPER BOUND for the
633
+ price for one unit or bundle \(as specified in the unit of
634
+ measurement of the unit price specification\) of the
635
+ respective gr:ProductOrService. For a
636
+ gr:DeliveryChargeSpecification or a
637
+ gr:PaymentChargeSpecification, it is the UPPER BOUND of the
638
+ price per delivery or payment. Using gr:hasCurrencyValue sets
639
+ the upper and lower bounds to the same given value, i.e., x
640
+ gr:hasCurrencyValue y implies x gr:hasMinCurrencyValue y, x
641
+ gr:hasMaxCurrencyValue y.)
642
+ property :hasMaxValue, :label => 'has max value (0..1)', :comment =>
643
+ %(This property captures the upper limit of a
644
+ gr:QuantitativeValue instance.)
645
+ property :hasMaxValueFloat, :label => 'has max value float (1..1)', :comment =>
646
+ %(This property captures the upper limit of a
647
+ gr:QuantitativeValueFloat instance.)
648
+ property :hasMaxValueInteger, :label => 'has max value integer (1..1)', :comment =>
649
+ %(This property captures the upper limit of a
650
+ gr:QuantitativeValueInteger instance.)
651
+ property :hasMinCurrencyValue, :label => 'has min currency value (1..1)', :comment =>
652
+ %(This property specifies the LOWER BOUND of the amount of money
653
+ for a price RANGE per unit, shipping charges, or payment
654
+ charges. The currency and other relevant details are attached
655
+ to the respective gr:PriceSpecification etc. For a
656
+ gr:UnitPriceSpecification, this is the LOWER BOUND for the
657
+ price for one unit or bundle \(as specified in the unit of
658
+ measurement of the unit price specification\) of the
659
+ respective gr:ProductOrService. For a
660
+ gr:DeliveryChargeSpecification or a
661
+ gr:PaymentChargeSpecification, it is the LOWER BOUND of the
662
+ price per delivery or payment. Using gr:hasCurrencyValue sets
663
+ the upper and lower bounds to the same given value, i.e., x
664
+ gr:hasCurrencyValue y implies x gr:hasMinCurrencyValue y, x
665
+ gr:hasMaxCurrencyValue y.)
666
+ property :hasMinValue, :label => 'has min value (0..1)', :comment =>
667
+ %(This property captures the lower limit of a
668
+ gr:QuantitativeValue instance.)
669
+ property :hasMinValueFloat, :label => 'has min value float (1..1)', :comment =>
670
+ %(This property captures the lower limit of a
671
+ gr:QuantitativeValueFloat instance.)
672
+ property :hasMinValueInteger, :label => 'has min value integer (1..1)', :comment =>
673
+ %(This property captures the lower limit of a
674
+ gr:QuantitativeValueInteger instance.)
675
+ property :hasUnitOfMeasurement, :label => 'has unit of measurement (1..1)', :comment =>
676
+ %(The unit of measurement for a gr:QuantitativeValue, a
677
+ gr:UnitPriceSpecification, or a gr:TypeAndQuantityNode given
678
+ using the UN/CEFACT Common Code \(3 characters\).)
679
+ property :hasValue, :label => 'has value (0..1)', :comment =>
680
+ %(This subproperty specifies that the upper and lower limit of
681
+ the given gr:QuantitativeValue are identical and have the
682
+ respective value. It is a shortcut for such cases where a
683
+ quantitative property is \(at least practically\) a single
684
+ point value and not an interval.)
685
+ property :hasValueFloat, :label => 'has value float (0..1)', :comment =>
686
+ %(This subproperty specifies that the upper and lower limit of
687
+ the given gr:QuantitativeValueFloat are identical and have the
688
+ respective float value. It is a shortcut for such cases where
689
+ a quantitative property is \(at least practically\) a single
690
+ point value and not an interval.)
691
+ property :hasValueInteger, :label => 'has value integer (0..1)', :comment =>
692
+ %(This subproperty specifies that the upper and lower limit of
693
+ the given gr:QuantitativeValueInteger are identical and have
694
+ the respective integer value. It is a shortcut for such cases
695
+ where a quantitative property is \(at least practically\) a
696
+ single point value and not an interval.)
697
+ property :isListPrice, :label => 'is list price (DEPRECATED)', :comment =>
698
+ %(This boolean attribute indicates whether a
699
+ gr:UnitPriceSpecification is a list price \(usually a vendor
700
+ recommendation\) or not. "true" indicates it is a list price,
701
+ "false" indicates it is not. DEPRECATED. Use the gr:priceType
702
+ property instead.)
703
+ property :legalName, :label => 'legal name (0..1)', :comment =>
704
+ %(The legal name of the gr:BusinessEntity.)
705
+ property :name, :label => 'name (0..1)', :comment =>
706
+ %(A short text describing the respective resource. This property
707
+ is semantically equivalent to dcterms:title and rdfs:label and
708
+ just meant as a handy shortcut for marking up data.)
709
+ property :opens, :label => 'opens (1..1)', :comment =>
710
+ %(The opening hour of the gr:Location on the given gr:DayOfWeek.
711
+ If no time-zone suffix is included, the time is given in the
712
+ local time valid at the gr:Location. For a time in GMT/UTC,
713
+ simply add a "Z" following the time: 09:30:10Z. Alternatively,
714
+ you can specify an offset from the UTC time by adding a
715
+ positive or negative time following the time: 09:30:10-09:00
716
+ or 09:30:10+09:00. Note 1: Use 00:00:00 for the first second
717
+ of the respective day and 23:59:59 for the last second of that
718
+ day. Note 2: If a store opens at 17:00 on Saturdays and closes
719
+ at 03:00:00 a.m. next morning, use 17:00:00 - 23:59:59 for
720
+ Saturday and 00:00:00 - 03:00:00 for Sunday. Note 3: If the
721
+ shop re-opens on the same day of the week or set of days of
722
+ the week, you must create a second instance of
723
+ gr:OpeningHoursSpecification.)
724
+ property :priceType, :label => 'price type (0..1)', :comment =>
725
+ %(This attribute can be used to distinguish multiple different
726
+ price specifications for the same gr:Offering. It supersedes
727
+ the former gr:isListPrice property. The following values are
728
+ recommended: The absence of this property marks the actual
729
+ sales price. SRP: "suggested retail price" - applicable for
730
+ all sorts of a non-binding retail price recommendations, e.g.
731
+ such published by the manufacturer or the distributor. This
732
+ value replaces the former gr:isListPrice property. INVOICE:
733
+ The invoice price, mostly used in the car industry - this is
734
+ the price a dealer pays to the manufacturer, excluding rebates
735
+ and charges.)
736
+ property :serialNumber, :label => 'serial number (0..*)', :comment =>
737
+ %(The serial number or any alphanumeric identifier of a
738
+ particular product. Note that serial number are unique only
739
+ for the same brand or the same model, so you cannot infer from
740
+ two occurrences of the same serial number that the objects to
741
+ which they are attached are identical. This property can also
742
+ be attached to a gr:Offering in cases where the included
743
+ products are not modeled in more detail.)
744
+ property :validFrom, :label => 'valid from (0..1)', :comment =>
745
+ %(This property specifies the beginning of the validity of the
746
+ gr:Offering, gr:PriceSpecification, gr:License, or
747
+ gr:OpeningHoursSpecification. A time-zone should be specified.
748
+ For a time in GMT/UTC, simply add a "Z" following the time:
749
+ 2008-05-30T09:30:10Z. Alternatively, you can specify an offset
750
+ from the UTC time by adding a positive or negative time
751
+ following the time: 2008-05-30T09:30:10-09:00 or
752
+ 2008-05-30T09:30:10+09:00. Note: If multiple contradicting
753
+ instances of a gr:Offering, gr:PriceSpecification, or
754
+ gr:OpeningHoursSpecification exist, it is a good heuristics to
755
+ assume that 1. Information with validity information for the
756
+ respective period of time ranks higher than information
757
+ without validity information. 2. Among conflicting nodes both
758
+ having validity information, the one with the shorter validity
759
+ span ranks higher.)
760
+ property :validThrough, :label => 'valid through (0..1)', :comment =>
761
+ %(This property specifies the end of the validity of the
762
+ gr:Offering, gr:PriceSpecification, gr:License, or
763
+ gr:OpeningHoursSpecification. A time-zone should be specified.
764
+ For a time in GMT/UTC, simply add a "Z" following the time:
765
+ 2008-05-30T09:30:10Z. Alternatively, you can specify an offset
766
+ from the UTC time by adding a positive or negative time
767
+ following the time: 2008-05-30T09:30:10-09:00 or
768
+ 2008-05-30T09:30:10+09:00. Note 1: If multiple contradicting
769
+ instances of a gr:Offering, gr:PriceSpecification, or
770
+ gr:OpeningHoursSpecification exist, it is a good heuristics to
771
+ assume that 1. Information with validity information for the
772
+ respective period of time ranks higher than information
773
+ without validity information. 2. Among conflicting nodes both
774
+ having validity information, the one with the shorter validity
775
+ span ranks higher. Note 2: For Google, attaching a
776
+ gr:validThrough statement to a gr:UnitPriceSpecification is
777
+ mandatory.)
778
+ property :valueAddedTaxIncluded, :label => 'value added tax included (0..1)', :comment =>
779
+ %(This property specifies whether the applicable value-added tax
780
+ \(VAT\) is included in the price of the gr:PriceSpecification
781
+ or not. Note: This is a simple representation which may not
782
+ properly reflect all details of local taxation.)
783
+ property :acceptedPaymentMethods, :label => 'accepted payment methods (0..*)', :comment =>
784
+ %(The gr:PaymentMethod or methods accepted by the
785
+ gr:BusinessEntity for the given gr:Offering.)
786
+ property :addOn, :label => 'add-on (0..*)', :comment =>
787
+ %(This property points from a gr:Offering to additional
788
+ offerings that can only be obtained in combination with the
789
+ first offering. This can be used to model supplements and
790
+ extensions that are available for a surcharge. Any
791
+ gr:PriceSpecification attached to the secondary offering is to
792
+ be understood as an additional charge.)
793
+ property :advanceBookingRequirement, :label => 'advance booking requirement (0..1)', :comment =>
794
+ %(The minimal and maximal amount of time that is required
795
+ between accepting the gr:Offering and the actual usage of the
796
+ resource or service. This is mostly relevant for offers
797
+ regarding hotel rooms, the rental of objects, or the
798
+ provisioning of services. The duration is specified relatively
799
+ to the beginning of the usage of the contracted object. It is
800
+ represented by attaching an instance of the class
801
+ gr:QuantitativeValueInteger. The lower and upper boundaries
802
+ are specified using the properties gr:hasMinValueInteger and
803
+ gr:hasMaxValueInteger to that instance. The unit of
804
+ measurement is specified using the property
805
+ gr:hasUnitOfMeasurement with a string holding a UN/CEFACT code
806
+ suitable for durations, e.g. MON \(months\), DAY \(days\), HUR
807
+ \(hours\), or MIN \(minutes\). The difference to the
808
+ gr:validFrom and gr:validThrough properties is that those
809
+ specify the interval during which the gr:Offering is valid,
810
+ while gr:advanceBookingRequirement specifies the acceptable
811
+ relative amount of time between accepting the offer and the
812
+ fulfilment or usage.)
813
+ property :appliesToDeliveryMethod, :label => 'applies to delivery method (0..*)', :comment =>
814
+ %(This property specifies the gr:DeliveryMethod to which the
815
+ gr:DeliveryChargeSpecification applies.)
816
+ property :appliesToPaymentMethod, :label => 'applies to payment method (1..*)', :comment =>
817
+ %(This property specifies the gr:PaymentMethod to which the
818
+ gr:PaymentChargeSpecification applies.)
819
+ property :availableAtOrFrom, :label => 'available at or from (0..*)', :comment =>
820
+ %(This states that a particular gr:Offering is available at or
821
+ from the given gr:Location \(e.g. shop or branch\).)
822
+ property :availableDeliveryMethods, :label => 'available delivery methods (0..*)', :comment =>
823
+ %(This specifies the gr:DeliveryMethod or methods available for
824
+ a given gr:Offering.)
825
+ property :deliveryLeadTime, :label => 'delivery lead time (0..1)', :comment =>
826
+ %(This property can be used to indicate the promised delay
827
+ between the receipt of the order and the goods leaving the
828
+ warehouse. The duration is specified by attaching an instance
829
+ of gr:QuantitativeValueInteger. The lower and upper boundaries
830
+ are specified using the properties gr:hasMinValueInteger and
831
+ gr:hasMaxValueInteger to that instance. A point value can be
832
+ modeled with the gr:hasValueInteger property. The unit of
833
+ measurement is specified using the property
834
+ gr:hasUnitOfMeasurement with a string holding a UN/CEFACT code
835
+ suitable for durations, e.g. MON \(months\), DAY \(days\), HUR
836
+ \(hours\), or MIN \(minutes\).)
837
+ property :depth, :label => 'depth (0..1)', :comment =>
838
+ %(The depth of the product. Typical unit code\(s\): CMT for
839
+ centimeters, INH for inches)
840
+ property :eligibleCustomerTypes, :label => 'eligible customer types (0..*)', :comment =>
841
+ %(The types of customers \(gr:BusinessEntityType\) for which the
842
+ given gr:Offering is valid.)
843
+ property :eligibleDuration, :label => 'eligible duration (0..1)', :comment =>
844
+ %(The minimal and maximal duration for which the given
845
+ gr:Offering or gr:License is valid. This is mostly used for
846
+ offers regarding accommodation, the rental of objects, or
847
+ software licenses. The duration is specified by attaching an
848
+ instance of gr:QuantitativeValue. The lower and upper
849
+ boundaries are specified using the properties gr:hasMinValue
850
+ and gr:hasMaxValue to that instance. If they are the same, use
851
+ the gr:hasValue property. The unit of measurement is specified
852
+ using the property gr:hasUnitOfMeasurement with a string
853
+ holding a UN/CEFACT code suitable for durations, e.g. MON
854
+ \(months\), DAY \(days\), HUR \(hours\), or MIN \(minutes\).
855
+ The difference to the gr:validFrom and gr:validThrough
856
+ properties is that those specify the absiolute interval during
857
+ which the gr:Offering or gr:License is valid, while
858
+ gr:eligibleDuration specifies the acceptable duration of the
859
+ contract or usage.)
860
+ property :eligibleTransactionVolume, :label => 'eligible transaction volume (0..1)', :comment =>
861
+ %(This property can be used to indicate the transaction volume,
862
+ in a monetary unit, for which the gr:Offering or
863
+ gr:PriceSpecification is valid. This is mostly used to specify
864
+ a minimal purchasing volume, to express free shipping above a
865
+ certain order volume, or to limit the acceptance of credit
866
+ cards to purchases above a certain amount. The object is a
867
+ gr:PriceSpecification that uses the properties
868
+ gr:hasMaxCurrencyValue and gr:hasMinCurrencyValue to indicate
869
+ the lower and upper boundaries and gr:hasCurrency to indicate
870
+ the currency using the ISO 4217 standard \(3 characters\).)
871
+ property :equal, :label => 'equal (0..*)', :comment =>
872
+ %(This ordering relation for qualitative values indicates that
873
+ the subject is equal to the object.)
874
+ property :greater, :label => 'greater (0..*)', :comment =>
875
+ %(This ordering relation for qualitative values indicates that
876
+ the subject is greater than the object.)
877
+ property :greaterOrEqual, :label => 'greater or equal (0..*)', :comment =>
878
+ %(This ordering relation for qualitative values indicates that
879
+ the subject is greater than or equal to the object.)
880
+ property :hasPOS, :label => 'has POS (0..*)', :comment =>
881
+ %(This property states that the respective gr:Location is a
882
+ point of sale for the respective gr:BusinessEntity. It allows
883
+ linking those two types of entities without the need for a
884
+ particular gr:Offering.)
885
+ property :hasBrand, :label => 'has brand (0..*)', :comment =>
886
+ %(This specifies the brand or brands \(gr:Brand\) associated
887
+ with a gr:ProductOrService, or the brand or brands maintained
888
+ by a gr:BusinessEntity.)
889
+ property :hasBusinessFunction, :label => 'has business function (1..*)', :comment =>
890
+ %(This specifies the business function of the gr:Offering, i.e.
891
+ whether the gr:BusinessEntity is offering to sell, to lease,
892
+ or to repair the particular type of product. In the case of
893
+ bundles, it is also possible to attach individual business
894
+ functions to each gr:TypeAndQuantityNode. The business
895
+ function of the main gr:Offering determines the business
896
+ function for all included objects or services, unless a
897
+ business function attached to a gr:TypeAndQuantityNode
898
+ overrides it. Note: While it is possible that an entity is
899
+ offering multiple types of business functions for the same set
900
+ of objects \(e.g. rental and sales\), this should usually not
901
+ be stated by attaching multiple business functions to the same
902
+ gr:Offering, since the gr:UnitPriceSpecification for the
903
+ varying business functions will typically be very different.)
904
+ property :hasEligibleQuantity, :label => 'has eligible quantity (0..1)', :comment =>
905
+ %(This specifies the interval and unit of measurement of
906
+ ordering quantities for which the gr:Offering or
907
+ gr:PriceSpecification is valid. This allows e.g. specifying
908
+ that a certain freight charge is valid only for a certain
909
+ quantity. Note that if an offering is a bundle, i.e. it
910
+ consists of more than one unit of a single type of good, or if
911
+ the unit of measurement for the good is different from unit
912
+ \(Common Code C62\), then gr:hasEligibleQuantity refers to
913
+ units of this bundle. In other words, "C62" for "Units or
914
+ pieces" is usually the appropriate unit of measurement.)
915
+ property :hasInventoryLevel, :label => 'has inventory level (0..1)', :comment =>
916
+ %(This property specifies the current approximate inventory
917
+ level for gr:SomeItems. The unit of measurement and the point
918
+ value or interval are indicated using the attached
919
+ gr:QuantitativeValueFloat instance. This property can also be
920
+ attached to a gr:Offering in cases where the included products
921
+ are not modeled in more detail.)
922
+ property :hasMakeAndModel, :label => 'has make and model (0..1)', :comment =>
923
+ %(This states that an actual product instance \(gr:Individual\)
924
+ or a placeholder instance for multiple, unidentified such
925
+ instances \(gr:SomeItems\) is one occurence of a particular
926
+ gr:ProductOrServiceModel. Example: myFordT hasMakeAndModel
927
+ FordT.)
928
+ property :hasManufacturer, :label => 'has manufacturer (0..1)', :comment =>
929
+ %(This object property links a gr:ProductOrService to the
930
+ gr:BusinessEntity that produces it. Mostly used with
931
+ gr:ProductOrServiceModel.)
932
+ property :hasNext, :label => 'has next (0..1)', :comment =>
933
+ %(This ordering relation for gr:DayOfWeek indicates that the
934
+ subject is directly followed by the object. Example: Monday
935
+ hasNext Tuesday Since days of the week are a cycle, this
936
+ property is not transitive.)
937
+ property :hasOpeningHoursDayOfWeek, :label => 'has opening hours day of week (1..*)', :comment =>
938
+ %(This specifies the gr:DayOfWeek to which the
939
+ gr:OpeningHoursSpecification is related. Note: Use multiple
940
+ instances of gr:OpeningHoursSpecification for specifying the
941
+ opening hours for multiple days if the opening hours differ.)
942
+ property :hasOpeningHoursSpecification, :label => 'has opening hours specification (0..*)', :comment =>
943
+ %(This property links a gr:Location to a
944
+ gr:OpeningHoursSpecification.)
945
+ property :hasPrevious, :label => 'has previous (0..1)', :comment =>
946
+ %(This ordering relation for gr:DayOfWeek indicates that the
947
+ subject is directly preceeded by the object. Example: Tuesday
948
+ hasPrevious Monday Since days of the week are a cycle, this
949
+ property is not transitive.)
950
+ property :hasPriceSpecification, :label => 'has price specification (0..*)', :comment =>
951
+ %(This links a gr:Offering to a gr:PriceSpecification or
952
+ specifications. There can be unit price specifications,
953
+ payment charge specifications, and delivery charge
954
+ specifications. For each type, multiple specifications for the
955
+ same gr:Offering are possible, e.g. for different quantity
956
+ ranges or for different currencies, or for different
957
+ combinations of gr:DeliveryMethod and target destinations.
958
+ Recommended retail prices etc. can be marked by the
959
+ gr:priceType property of the gr:UnitPriceSpecification.)
960
+ property :hasWarrantyPromise, :label => 'has warranty promise (0..*)', :comment =>
961
+ %(This specifies the gr:WarrantyPromise made by the
962
+ gr:BusinessEntity for the given gr:Offering.)
963
+ property :hasWarrantyScope, :label => 'has warranty scope (0..1)', :comment =>
964
+ %(This states the gr:WarrantyScope of a given
965
+ gr:WarrantyPromise.)
966
+ property :height, :label => 'height (0..1)', :comment =>
967
+ %(The height of the product. Typical unit code\(s\): CMT for
968
+ centimeters, INH for inches)
969
+ property :includes, :label => 'includes (0..1)', :comment =>
970
+ %(This object property is a shortcut for the original
971
+ gr:includesObject property for the common case of having
972
+ exactly one single gr:ProductOrService instance included in an
973
+ Offering. When linking to an instance of gr:SomeItems or
974
+ gr:Individual, it is equivalent to using a
975
+ gr:TypeAndQuantityNode with
976
+ gr:hasUnitOfMeasurement="C62"^^xsd:string and
977
+ gr:amountOfThisGood="1.0"^^xsd:float for that good. When
978
+ linking to a gr:ProductOrServiceModel, it is equivalent to 1.
979
+ defining an blank node for a gr:SomeItems 2. linking that
980
+ blank node via gr:hasMakeAndModel to the
981
+ gr:ProductOrServiceModel, and 3. linking from the gr:Offering
982
+ to that blank node using another blank node of type
983
+ gr:TypeAndQuantityNode with
984
+ gr:hasUnitOfMeasurement="C62"^^xsd:string and
985
+ gr:amountOfThisGood="1.0"^^xsd:float for that good.)
986
+ property :includesObject, :label => 'includes object (0..*)', :comment =>
987
+ %(This object property links a gr:Offering to one or multiple
988
+ gr:TypeAndQuantityNode or nodes that specify the components
989
+ that are included in the respective offer.)
990
+ property :isAccessoryOrSparePartFor, :label => 'is accessory or spare part for (0..*)', :comment =>
991
+ %(This states that a particular gr:ProductOrService is an
992
+ accessory or spare part for another product or service.)
993
+ property :isConsumableFor, :label => 'is consumable for (0..*)', :comment =>
994
+ %(This states that a particular gr:ProductOrService is a
995
+ consumable for another product or service.)
996
+ property :isSimilarTo, :label => 'is similar to (0..*)', :comment =>
997
+ %(This states that a given gr:ProductOrService is similar to
998
+ another product or service. Of course, this is a subjective
999
+ statement; when interpreting it, the trust in the origin of
1000
+ the statement should be taken into account.)
1001
+ property :isVariantOf, :label => 'is variant of (0..1)', :comment =>
1002
+ %(This states that a particular gr:ProductOrServiceModel is a
1003
+ variant of another product or service model. It is pretty safe
1004
+ to infer that the variant inherits all
1005
+ gr:quantitativeProductOrServiceProperty,
1006
+ gr:qualitativeProductOrServiceProperty, and
1007
+ gr:datatypeProductOrServiceProperty values that are defined
1008
+ for the first gr:ProductOrServiceModel. Example:
1009
+ foo:Red_Ford_T_Model gr:isVariantOf foo:Ford_T_Model)
1010
+ property :lesser, :label => 'lesser (0..*)', :comment =>
1011
+ %(This ordering relation for gr:QualitativeValue pairs indicates
1012
+ that the subject is lesser than the object.)
1013
+ property :lesserOrEqual, :label => 'lesser or equal (0..*)', :comment =>
1014
+ %(This ordering relation for gr:QualitativeValue pairs indicates
1015
+ that the subject is lesser than or equal to the object.)
1016
+ property :nonEqual, :label => 'non equal (0..*)', :comment =>
1017
+ %(This ordering relation for gr:QualitativeValue pairs indicates
1018
+ that the subject is not equal to the object.)
1019
+ property :offers, :label => 'offers (0..*)', :comment =>
1020
+ %(This links a gr:BusinessEntity to the offers \(gr:Offering\)
1021
+ it makes. If you want to express interest in receiving offers,
1022
+ use gr:seeks instead.)
1023
+ property :owns, :label => 'owns (0..*)', :comment =>
1024
+ %(This property indicates that a particular person or business
1025
+ owns a particular product. It can be used to expose the
1026
+ products in one's posession in order to empower recommender
1027
+ systems to suggest matching offers. Note that the product must
1028
+ be an instance of the class gr:Individual. This property can
1029
+ also be safely applied to foaf:Agent instances.)
1030
+ property :predecessorOf, :label => 'predecessor of (0..*)', :comment =>
1031
+ %(This property indicates that the subject is a previous, often
1032
+ discontinued variant of the gr:ProductOrServiceModel used as
1033
+ the object. Example: Golf III predecessorOf Golf IV This
1034
+ relation is transitive.)
1035
+ property :qualitativeProductOrServiceProperty, :label => 'qualitative product or service property (0..*)', :comment =>
1036
+ %(This is the super property of all qualitative properties for
1037
+ products and services. All properties in product or service
1038
+ ontologies for which gr:QualitativeValue instances are
1039
+ specified are subproperties of this property.)
1040
+ property :quantitativeProductOrServiceProperty, :label => 'quantitative product or service property (0..*)', :comment =>
1041
+ %(This is the super property of all quantitative properties for
1042
+ products and services. All properties in product or service
1043
+ ontologies that specify quantitative characteristics, for
1044
+ which an interval is at least theoretically an appropriate
1045
+ value, are subproperties of this property.)
1046
+ property :seeks, :label => 'seeks (0..*)', :comment =>
1047
+ %(This links a gr:BusinessEntity to gr:Offering nodes that
1048
+ describe what the business entity is interested in \(i.e., the
1049
+ buy side\). If you want to express interest in offering
1050
+ something, use gr:offers instead. Note that this substitutes
1051
+ the former gr:BusinessFunction gr:Buy, which is now
1052
+ deprecated.)
1053
+ property :successorOf, :label => 'successor of (0..*)', :comment =>
1054
+ %(This property indicates that the subject is a newer, often
1055
+ updated or improved variant of the gr:ProductOrServiceModel
1056
+ used as the object. Example: Golf III successorOf Golf II This
1057
+ relation is transitive.)
1058
+ property :typeOfGood, :label => 'type of good (1..1)', :comment =>
1059
+ %(This specifies the gr:ProductOrService that the
1060
+ gr:TypeAndQuantityNode is referring to.)
1061
+ property :valueReference, :label => 'value reference (0..*)', :comment =>
1062
+ %(The superclass of properties that link a gr:QuantitativeValue
1063
+ or a gr:QualitativeValue to a second gr:QuantitativeValue or a
1064
+ gr:QualitativeValue that provides additional information on
1065
+ the original value. A good modeling practice is to define
1066
+ specializations of this property \(e.g.
1067
+ foo:referenceTemperature\) for your particular domain.)
1068
+ property :weight, :label => 'weight (0..1)', :comment =>
1069
+ %(The weight of the gr:ProductOrService. Typical unit code\(s\):
1070
+ GRM for gram, KGM for kilogram, LBR for pound)
1071
+ property :width, :label => 'width (0..1)', :comment =>
1072
+ %(The width of the gr:ProductOrService. Typical unit code\(s\):
1073
+ CMT for centimeters, INH for inches)
1074
+ property :displayPosition, :label => 'display position (0..1)', :comment =>
1075
+ %(The position at which the option or element should be listed
1076
+ in a menu or user dialog, lower numbers come first. The main
1077
+ usage of this property are the days of the week
1078
+ \(gr:DayOfWeek\), but it is also possible to apply it e.g. to
1079
+ product features or any other conceptual element. Note: Rely
1080
+ on this property only for data originating from a single RDF
1081
+ graph; otherwise, unpredictable results are possible.)
1082
+ property :relatedWebService, :label => 'related Web Service (0..*)', :comment =>
1083
+ %(The URI of a SOAP or REST Web Service from which additional
1084
+ information about the gr:BusinessEntity, gr:Offering,
1085
+ gr:PriceSpecification, or gr:ProductOrService, or any other
1086
+ element, can be obtained. The recommended range is xsd:anyURI
1087
+ i.e., the URI of a SOAP or REST Web Service. In principle, any
1088
+ existing or upcoming vocabulary for Web Services can be used
1089
+ in combination with GoodRelations, because the association
1090
+ between \(a\) the service description and \(b\) the
1091
+ GoodRelations description can be found via the Web Service URI
1092
+ value used with this gr:relatedWebService property.)
1093
+ end
1094
+ end