smart-data-models / data-models

Data Models in common use based on real world use-cases. These definitions underpin a digital market of interoperable and replicable smart solutions.
https://smartdatamodels.org/
114 stars 56 forks source link

Request for inclusion of common fields in common schema #22

Closed dpatil-fw closed 3 years ago

dpatil-fw commented 3 years ago

Requesting for inclusion of some additional common attributes in common-schema.json, may be beneficial for uniform usage

Ratings related - aggregateRating, review as described below:

                "aggregateRating":{
                    "type":"object",
                    "description":"Property. Model:'https://schema.org/AggregateRating'. The average rating based on multiple ratings or reviews.",
                    "properties":{
                        "ratingCount":{
                            "type":"integer",
                            "description":"Property. The count of total number of ratings."
                        },
                        "bestRating":{
                            "type":"integer",
                            "description":"Property. The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed."
                        },
                        "worstRating":{
                            "type":"integer",
                            "description":"Property. The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed."
                        },
                        "ratingValue":{
                            "type":"integer",
                            "description":"Property. The rating for the content."
                        }
                    }
                },
                "review":{
                    "type":"array",
                    "description":"Property. Model:'https://schema.org/Review'. A review of an item - for example, of a restaurant, movie, or store.",
                    "items":{
                        "properties":{
                            "author":{
                                "type":"string",
                                "description":"Property. Model:'https://schema.org/Text'. The author of this content or rating."
                            },
                            "datePublished":{
                                "type":"string",
                                "format":"date-time",
                                "description":"Property. Model:'https://schema.org/Text'. Date of first broadcast/publication."
                            },
                            "reviewBody":{
                                "type":"string",
                                "description":"Property. Model:'https://schema.org/Text'. The actual body of the review. "
                            },
                            "name":{
                                "type":"string",
                                "description":"Property. Model:'https://schema.org/Text'. The name of the item. "
                            },
                            "reviewRating":{
                                "type":"object",
                                "description":"Property. Model:'https://schema.org/Rating'. A rating is an evaluation on a numeric scale, such as 1 to 5 stars.",
                                "properties":{
                                    "bestRating":{
                                        "type":"integer",
                                        "description":"Property. The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed."
                                    },
                                    "worstRating":{
                                        "type":"integer",
                                        "description":"Property. The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed."
                                    },
                                    "ratingValue":{
                                        "type":"integer",
                                        "description":"Property. The rating for the content."
                                    }
                                }
                            }
                        }
                    },
                    "minItems":1
                },

Payment related - currenciesAccepted, paymentAccepted

```
        "currenciesAccepted":{
                "type":"array",
                "description":"Property. Model:'https://es.wikipedia.org/wiki/ISO_4217'",
                "items":{
                    "type":"string",
                    "enum": [
                        "AED", "AFN", "ALL", "AMD"...
                     ]
                },
                "minItems":1,
                "uniqueItems":true
            },
            "paymentAccepted":{
                "type":"array",
                "description":"Property. Model:'https://schema.org/Text'. Payment method accepted in this store.",
                "items":{
                    "type":"string",
                    "enum":[
                        "Cash",
                        "Cheque",
                        "Credit Card",
                        "Cryptocurrency"
                    ]
                }
            }
albertoabellagarcia commented 3 years ago

Regarding the rating, where this rating method is used? because we have already another method in this data model https://github.com/smart-data-models/dataModel.TourismDestinations/blob/master/TouristTrip/schema.json

Regarding the second we have also another in the same model something which is mostly compatible https://github.com/smart-data-models/dataModel.TourismDestinations/blob/master/TouristTrip/schema.json

dpatil-fw commented 3 years ago

Review and Rating is used in most places mapped in google.
https://developers.google.com/maps/documentation/places/web-service/details At the above link, review and rating attributes are present. This will hold good for most PointOfInterest types like Hospital, Bank, Hotel, Restaurant etc, where user reviews are allowed and payment accepted.

The two samples you have shared is what we are looking for. But aren't the two inside TourismDestinations model - which is not a parent model. We would need to use the attributes under different models within the PointOfInterest data model. The current Store model also contains payment info.

For now, I have placed them in my local copy of PointOfInterest data model, from which other organizations are sub-classed. It serves our purpose. But assuming these attributes may be required in different data models in the future, was wondering if they could be placed in the more standard and global common-schema.json, so that it could be included from there directly.

albertoabellagarcia commented 3 years ago

Yes rating properties deserve to be in a shared schema to be directly accessible to other data models, as soon as there is any of them, I guess we will do it as it is been done in many other subjects like these ones: