Changelog/20100412

=Changelog: Service Update April 12, 2010=

Summary: In this service update, we added a few additional elements that have turned out to be useful in some scenarios and which are of generic interest. They should thus be part of the core ontology and not be defined in industry-specific complementing ontologies. The service update is fully backwards-compatible with previous releases.

There is an updated version of the UML class diagram with the modifications highlighted in red available:


 * UML Class Diagram as PNG
 * UML Class Diagram as PDF

The following changes were implemented:


 * 1) We changed the domain of gr:validFrom and gr:validThrough to the union of gr:Offering, gr:OpeningHoursSpecification, and gr:PriceSpecification instead of just gr:Offering and gr:UnitPriceSpecification. This allows specifying the validity interval of offers, opening hours, payment charge specifications, and delivery charge specifications.
 * 2) *The rdfs:comments have also been updated accordingly.
 * 3) *The cardinality recommendations have been changed from (1..1) to (0..1). so the property is no longer mandatory. However, attaching these properties at least to gr:Offerings is still highly recommended and may be honored by search engines with a higher ranking.
 * 4) Added a new object property gr:eligibleDuration with a domain of gr:Offering and a range of gr:QuantitativeValueInteger.
 * 5) *This allows constraining the minimal and maximal duration of a rental contract or hotel booking.
 * 6) Added anew object property gr:advanceBookingRequirement with a domain of gr:Offering and a range of gr:QuantitativeValueInteger.
 * 7) *This allows specifying the minimal and maximal time-span between accepting an offer and the availability of the good or service.
 * 8) *This can be very useful for rental car businesses, transportation, hotels, or ticket sales.
 * 9) Added two new datatype properties gr:availabilityStarts and gr:availabilityEnds with a domain of gr:Offering and a range of xsd:datetime.
 * 10) *This allows specifying the availability period of the respective resource, mostly needed for rental and vacation homes.
 * 11) *In the rental business, the validity of the offer and the availability of the resource are quite different.
 * 12) Fixed a bug in the labels of the following classes (they showed "DeliveryMode" instead of "DeliveryMethod" as the name of their class):
 * gr:DeliveryModeOwnFleet
 * gr:DeliveryModePickUp
 * gr:DHL
 * gr:FederalExpress
 * gr:UPS
 * 1) Added a new object property gr:owns with a domain of gr:BusinessEntity (foaf:Agent is also practically valid) and a range of gr:ActualProductOrServiceInstance.
 * 2) *This allows exposing actual ownership on a product, e.g. to support recommender systems.
 * 3) *foaf:Agent is not used as the domain because the FOAF ontology is beyond OWL DL and this would turn GoodRelations into an OWL Full ontology. However, if that dies not hurt in your environment, you can safely use foaf:Agent locally with your data.
 * 4) Added a new datatype property gr:serialNumber with a domain of gr:ActualProductOrService and range of xsd:string
 * 5) *This allows attaching serial numbers to actual products.
 * 6) *It can also serve as the super-property for industry-specific identifiers like VINs (vehicle identification numbers).
 * 7) *Note: The property is not a functional property, since serial numbers are not necessarily unique across different products.
 * 8) Added a set of object properties for ordering relations between gr:QualitativeValues. The domain and range is gr:QualitativeValue:
 * gr:greater
 * gr:lesser
 * gr:greaterOrEqual
 * gr:lesserOrEqual
 * gr:equal
 * gr:nonEqual
 * 1) *They allow specifying ordering relations between qualitative properties
 * 2) *Example: The garment sizes S, M, L, XL can be augmented by an explicit order now.
 * 3) Changed the range of gr:legalName from xsd:string to untyped literal.
 * 4) *This allows using language tags with the names of companies.
 * 5) *There is still usually just one official legal name per each company, but it is useful to indicate the natural language of that literal.
 * 6) Added a two new object properties for ordering relations between gr:DayOfWeek. The domain and range are gr:DayOfWeek
 * 7) *gr:hasPrevious
 * 8) *gr:hasNext
 * 9) *Also, respective statements have been added between all instances of gr:DayOfWeek.
 * 10) *This allows sorting the days of the week in opening hour specifications, e.g. prior to rendering results.
 * 11) Added two new transitive object properties with a domain and range of gr:ProductModel:
 * 12) *gr:successorOf
 * 13) *gr:predecessorOf
 * 14) *They can be used to link newer product models with discontinued older versions.
 * 15) *This can be useful for manufacturers to support the discovery of newer models when consumers search for discontinued ones.
 * 16) Added a new object property gr:eligibleTransactionVolume with a domain of the union of gr:PriceSpecification and gr:Offering and a range of gr:PriceSpecification.
 * 17) *This allows specifying, in monetary terms, the transaction volume for which an offer or price specification is valid.
 * 18) *Examples:
 * 19) **„Free shipping starting from 20 EURO“ (attached to a gr:DeliveryChargeSpecification)
 * 20) **„Minimal order volume 10 Euro“ (attached to a gr:Offering)
 * 21) **„Service fee for credit card payments below 10 Euro“ (attached to a gr:PaymentChargeSpecification)
 * 22) Fixed a typo in the description of gr:hasPriceSpecification
 * 23) Added a new datatype property gr:billingIncrement with a domain of gr:UnitPriceSpecification and a range of xsd:float.
 * 24) *This allows indicating the smallest billable unit of an item.
 * 25) *Example: Price 2 euros per hour, billing in units of 15 minutes
 * 26) Added a new object property gr:deliveryLeadTime with a domain of gr:Offering and a range of gr:QuantitativeValueInteger for indicating the time between order and shipment.
 * 27) *Example: We ship within 48 hours after receipt of your order
 * 28) Fixed a typo in the rdfs:comment of gr:includes (TypeAndQuantityNode instead od TypeAndQuantity)
 * 29) Fixed the cardinality recommendations for gr:seeks from (0..1) to (0..*), because a gr:BusinessEntity can quite clearly seek multiple offers. Note that the cardinality constraints are not formally modeled but just indicated in the rdfs:label.
 * 30) Fixed a typo in the rdfs:comment of gr:ProductOrService.
 * 31) Fixed a typo in the rdfs:comment of gr:ProductOrServicesSomeInstancesPlaceholders.
 * 32) Improved the rdfs:comment of gr:TypeAndQuantityNode.
 * 33) Fixed a typo in the rdfs:comment of gr:relatedWebService.
 * 34) The (textual)cardinality recommendation for gr:includesObject has been changed from 1..* to 0..*. You should still attach this property (or its shortcur gr:includes) to any Offering at least once, but there are cases when you will specify the included goods only by attaching a rdfs:description literal. The typical case is lifting unstructured classifieds to GoodRelations. You could then do lightweight Natural Language Processing to spot the price and the contact details (phone number) and expose those in a structured form, while extracting the semantics of the goods may be too difficult. This change follows the philosophy of "iterative refinement", e.g. make it easy to publish imperfect RDF data and hope for others on the Web to cleanse / augment it.