rdf 1.1.0p4 → 1.1.0

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.
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