FnOio/fno-specification

can `fno:type` be multivalued?

Opened this issue · 0 comments

From the spec fno:type is not restricted to a functional prop, so I guess it can be multivalued.

GeoSPARQL functions use multiple datatypes for many of their input params, eg see
https://github.com/opengeospatial/ogc-geosparql/blob/506527d4dce566bdc3667f13927b5d370c69934e/spec/ontology/vocabularies/funcsrules.ttl#L120

funcs:centroid_param1 a fno:Parameter ;
    fno:type geo:wktLiteral, geo:gmlLiteral, geo:geoJSONLiteral, geo:kmlLiteral, geo:dggsLiteral ;

Multiple output types can also be useful, eg a function plusOne could return integer or decimal depending on input.
This is used by the GeoSPARQL function geof:buffer "A query function that returns a buffer around the input geometry":
https://github.com/opengeospatial/ogc-geosparql/blob/506527d4dce566bdc3667f13927b5d370c69934e/spec/ontology/vocabularies/funcsrules.ttl#L937

funcs:buffer_output a fno:Output ;
    fno:type geo:wktLiteral, geo:gmlLiteral, geo:geoJSONLiteral, geo:kmlLiteral, geo:dggsLiteral .

Presumably it returns the same type as the input geometry.

For the avoidance of doubt, please include an example with multivalued input & output types.
You can copy the definition of funcs:buffer.