kg-construct / rml-cc

RML-CC: Collections and Containers definitions for RML
https://w3id.org/rml/cc/spec
Creative Commons Attribution 4.0 International
3 stars 3 forks source link

Domain and range of `rml:strategy` #23

Closed pmaria closed 2 years ago

pmaria commented 2 years ago

In section 3.2.2 rml:strategy the following domain and range are defined for rml:strategy

  • The domain of rml:strategy is rml:GatherMap.
  • The range of rml:strategy is an IRI.

In general I think we should be cautious specifying the domain. In this case, I can imagine that other constructs may also have a need for specifying a strategy. I think it's best to leave domain open for this property.

The range is specified to be an IRI. This should be a class. I think it makes sense to define rml:Strategy as a class for the strategy constants.

dachafra commented 2 years ago

I agree on defining rml:Strategy class. However, as the strategies (Append, CartesianProduct) are a list of controlled values, does it make sense to use here skos? rml:Strategy will be the skos:ConceptScheme and rml:Append, rml:CartesianProduct will be skos:Concept

pmaria commented 2 years ago

The downside of using SKOS in this case is that it becomes less easy to extend the language to describe a strategy. See e.g. rml:ReferenceFormulation where we are now expanding the language to describe specific reference formulations in more detail, e.g. to declare namespaces in the XPath reference formulation. I think we should keep the ability to extend these constants simple, so I would opt for using rdfs/owl classes and individuals.

andimou commented 2 years ago

+1 on @pmaria 's comment about extensibility and suggestion from both @anaigmo and @andimou.

If we use SKOS, then we expect that we always have a concept from this concept scheme. @anaigmo adds if we only have two concepts, it might not be worthwhile introducing a concenpt scheme,

(I know we discussed this with the community group and we concluded on using RML namespace everywhere but here we try to describe join strategies which is something beyond RML. I leave it as a comment for future discussions)

pmaria commented 2 years ago

During the CG meeting (28/09/2022) we decided:

chrdebru commented 2 years ago

Where will rml:strategy be declared?

chrdebru commented 2 years ago

I have rewritten this section assuming that rml:Strategy and rml:strategy will be declared in RML.

anaigmo commented 1 year ago

should the individuals (of :Strategy) :append and :cartessianProduct be declared in the core or in this module?

pmaria commented 1 year ago

The individuals should be declared in this module.