kg-construct / rml-lv

Specification repository for logical views in RML.
https://kg-construct.github.io/rml-lv/dev.html
3 stars 3 forks source link

A Field is an ExpressionMap #26

Closed tirrolo closed 1 month ago

tirrolo commented 3 months ago

Hi, spec says "A field is an ExpressionMap that gives a name to an expression."

Actually, also in the ontology, Fields are subclasses of expression maps. Thus, I would phrase this more explicitly as: "A field is a particular kind of ExpressionMap".

As for the ExpressionMap specification, we also suggest to list the additional properties of Fields (e.g., rml:fieldName or rml:field), instead of having them informally introduced in the text only.

pmaria commented 3 months ago

Hi, spec says "A field is an ExpressionMap that gives a name to an expression."

Actually, also in the ontology, Fields are subclasses of expression maps. Thus, I would phrase this more explicitly as: "A field is a particular kind of ExpressionMap".

Agreed.

As for the ExpressionMap specification, we also suggest to list the additional properties of Fields (e.g., rml:fieldName or rml:field), instead of having them informally introduced in the text only.

You mean add these properties to rml-core? We don't want to do that, since that would couple rml-core to rml-lv. The choice was made early on to have separate modules that build on core (or on each other) to give implementations a choice to implement only specific modules.

tirrolo commented 3 months ago

Hi, spec says "A field is an ExpressionMap that gives a name to an expression." Actually, also in the ontology, Fields are subclasses of expression maps. Thus, I would phrase this more explicitly as: "A field is a particular kind of ExpressionMap".

Agreed.

As for the ExpressionMap specification, we also suggest to list the additional properties of Fields (e.g., rml:fieldName or rml:field), instead of having them informally introduced in the text only.

You mean add these properties to rml-core? We don't want to do that, since that would couple rml-core to rml-lv. The choice was made early on to have separate modules that build on core (or on each other) to give implementations a choice to implement only specific modules.

No, I mean to have an explicit bullet list like core:

An [expression map](https://hive.inf.unibz.it/rml/rml-core/spec/docs/#dfn-expression-map) MAY have one the following properties:

    0 or 1 rml:constant, or
    0 or 1 rml:reference, or
    0 or 1 rml:template.

So, something like:

A field MUST have the following properties:
1 rml:fieldName, ...

and MAY have the following properties:
0 or 1 rml:referenceFormulation

This can be done only for properties specific to fields, since those inherited from ExpressionMaps are already defined in core.

pmaria commented 3 months ago

Ah I see. Also agreed.