Closed
Description
Let's say we have two triple maps that refer to the same logical source (and with same, we really mean same URI, not "same because the descriptions lead to the semantically same logical source").
Sample source (CSV)
id,parent_id
1,2
2,1
Base mapping (YARRRML)
prefixes
ex: http://example.com#
sources:
test: [data.csv]
mappings:
test1:
s: ex:$(id)
po:
p: ex:parent
o:
mapping: test2
test2:
s: ex:$(parent_id)
We have following use cases that are underspecified in de spec
the spec currently says If the logical source of the child triples map and the logical source of the parent triples map of a referencing object map are not identical, then the referencing object map must have at least one join condition.
- If a join condition is specified AND the logical source is not the same: common case, execute join condition between each iteration pair
- If a join condition is specified AND the logical source is the same: same as above
- If no join condition is specified AND the logical source is not the same: do a full join (i.e., take all iterations into account)
- example output:
ex:1 ex:parent ex:2
,ex:1 ex:parent ex:1
,ex:2 ex:parent ex:2
,ex:2 ex:parent ex:1
- If no join condition is specified AND the logical source is the same: don't do a full join, but take the current iteration into account
- example output:
ex:1 ex:parent ex:2
,ex:2 ex:parent ex:1
- this last one is the edge case, but allows to 'join per iteration'. Question is: should we make this edge case explicit, or should there be a different way to tackle this edge case?