Skip to content

Commit 4353fc6

Browse files
committed
Fix wrong definesLotGroup iterator
The predicate mapping for `epo:definesLotGroup` was at a broad iterator (at ND-LotDistribution cac:LotDistribution instead of ND-GroupComposition cac:LotsGroup), where the mapping would fail if there were to be more than one LotsGroups. This is due to an upward traversal parent join which fails if there is more than one element (in this case LotsGroup), in notices like 217262-2025. Create a new TriplesMap at the right iterator to mitigate this. Fixes gh-155.
1 parent 195396f commit 4353fc6

11 files changed

Lines changed: 198 additions & 11 deletions

File tree

mappings/package_eforms_sdk1.10_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.11_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.12_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.13_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.3_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.5_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.6_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.7_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.8_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

mappings/package_eforms_sdk1.9_epo4.0/transformation/mappings/Procedure.rml.ttl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,23 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
447447
rr:datatype xsd:integer
448448
] ;
449449
] ;
450+
.
451+
452+
tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition a rr:TriplesMap ;
453+
rdfs:label "MG-ProcedureTerm";
454+
rml:logicalSource
455+
[
456+
rml:source "data/source.xml" ;
457+
rml:iterator "/*/cac:TenderingTerms/cac:LotDistribution/cac:LotsGroup";
458+
rml:referenceFormulation ql:XPath
459+
] ;
460+
rr:subjectMap
461+
[
462+
rdfs:label "ND-LotDistribution";
463+
rdfs:comment "Primary type declaration of MG-ProcedureTerm under ND-LotDistribution";
464+
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_ProcedureTerm_{unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path(..)) || '?response_type=raw')}" ;
465+
rr:class epo:ProcedureTerm
466+
] ;
450467
rr:predicateObjectMap
451468
[
452469
# VERINFO: across SDK versions only introduction of Scheme attribute and mapping-irrelevant changes
@@ -459,7 +476,7 @@ tedm:MG-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-LotDistribut
459476
rr:parentTriplesMap tedm:MG-LotGroup-definesLotGroup-ProcedureTerm-isSubjectToProcedureSpecificTerm-Procedure_ND-GroupComposition ;
460477
# this is an example of a joinCondition with a child element that is a descendant
461478
rr:joinCondition [
462-
rr:child "cac:LotsGroup/cbc:LotsGroupID";
479+
rr:child "cbc:LotsGroupID";
463480
rr:parent "../cbc:LotsGroupID";
464481
];
465482
] ;

0 commit comments

Comments
 (0)