Re: [dxwg] Distribution service [RDISV]

In the context of Geoplatform.gov, we have to deal with the modeling of services, whose health status are checked on a regular basis(https://statuschecker.fgdc.gov/).
For this purpose, we introduce a first-class business object Service. A Service conforms to a standard (using dct:conformsTo) such as WMS, WMTS, WFS. A service can operates (srim:operatesOn) on different assets (dcat:Dataset, Layer, Map,..) and assets are servicedBy (srim:servicedBy) by one or more services. A service may support multiple versions of protocols (srim:supportVersion).

Now, here the caveat. A service can provide multiple assets (for example multiple feature collections in WFS or layers in WMS). When you model the distribution of this asset that is served by this service, you cannot just refer to the Service (using srim:servicedBy), you need more information about "how" to access the service. You need the set of parameters valid values for calling an operation of the service. For example, a Layer can be distributed from a WMS and its parameters needs the layer id. Idem for a WFS, you need to give a least the featureType identifier to refer to the collection.  My initial thought was to introduce an additional class called DataSource which capture standard, parameter description and bindings of parameter to value. However, we found out that extending dcat:Distribution by adding parameters and bindings will simplify the model by avoiding introducing a new first class object. 

We define the parameter model in a different namespace because we believe it can be reused in many different contexts outside DCAT:

Here a summary of its properties:

JSON | RDFProperty | Range | Description | Obligation | Card.
name | prm:name | xsd:string | Name of the parameter | M | 1
label | rdfs:label | xsd:string | Display label of the parameter | R | 0..1
optional | prm:optional | xsd:boolean | Boolean indicating if the parameter is optional or not. | R | 0..1
description | dct:description | xsd:string | Description of the parameter | R | 0..1
type | prm:valueType | xsd:string | value type of the parameter | M | 1
default | prm:default | rdfs:Literal | default value of the parameter if applicable. | O | 0..1
min | prm:min | rdfs:Literal | minimum value of the parameter if applicable. | O | 0..1
max | prm:max | rdfs:Literal | maximumum value of the parameter if applicable. | O | 0..1
values | prm:validValue | rdfs:Literal | valid values | O | 0..n


Here an example in JSON-LD of a layer distributed from a WMTS: note that we are using a url template when you have parameters
```
{
    "_created": "2018-01-24T16:10:01.321+0000",
    "_modified": "2018-01-24T16:10:01.321+0000",
    "id": "c25e93d08c41187d557855fd8a49d472",
    "type": "Layer",
    "uri": "http://www.geoplatform.gov/id/layer/c25e93d08c41187d557855fd8a49d472",
    "label": "Layer",
    "title": "Layer",
    "distribution": [
        {
            "type": "dcat:Distribution",
            "accessURL": "http://.../tiles/0/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
            "parameters": [
                {
                    "name": "Style",
                    "type": "enum",
                    "values": [
                        "default"
                    ]
                },
                {
                    "name": "TileMatrixSet",
                    "type": "enum",
                    "values": [
                        "default",
                        "EPSG:3857",
                        "EPSG:4326"
                    ]
                },
                {
                    "name": "TileMatrix",
                    "type": "integer",
                    "min": 0
                },
                {
                    "name": "TileRow",
                    "type": "integer",
                    "min": 0
                },
                {
                    "name": "TileCol",
                    "type": "integer",
                    "min": 0
                }
            ]
        }
    ],
```

I hope this will help to move forward this difficult issue.

-- 
GitHub Notification of comment by fellahst
Please view or discuss this issue at https://github.com/w3c/dxwg/issues/56#issuecomment-375893228 using your GitHub account

Received on Saturday, 24 March 2018 14:26:54 UTC