Skip to content

Commit 30bfc67

Browse files
ahmadjanaschivmeister
authored andcommitted
Add ContractModification/Completion Notice refersToAwardDecision
Up to now all notices would announce the AwardDecision, but this should not be the case for ContractModificationNotice and CompletionNotice. - Add conditions in the same TMap to instantiate either relationship - Refactor the TMap MGs and labels to better reflect the generic case - Add a can-modif sample file w/ relevant data for later testing/validation
1 parent 2889616 commit 30bfc67

26 files changed

Lines changed: 343 additions & 135 deletions

File tree

mappings/package_eforms_sdk1.10_epo4.0/transformation/mappings/AwardDecision-can.rml.ttl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ tedm:MG-AwardDecision_ND-SettledContract a rr:TriplesMap ;
5555
.
5656

5757
# this MG is the equivalent of (hence declared as owl:sameAs below)
58-
# MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult in the CM
59-
# but here in the TM we do not need to implement that
58+
# MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult and
59+
# MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult
60+
# in the CM but here in the TM we do not need to implement that (we optimize)
6061
tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
6162
rdfs:label "MG-AwardDecision" ;
6263
rml:logicalSource
@@ -95,4 +96,5 @@ tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
9596
] ;
9697
.
9798

98-
tedm:MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
99+
tedm:MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
100+
tedm:MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .

mappings/package_eforms_sdk1.10_epo4.0/transformation/mappings/root-can.rml.ttl

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,9 @@ tedm:MG-MonetaryValue-hasApproximateFrameworkAgreementValue-NoticeAwardInformati
432432
] ;
433433
.
434434

435-
tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
436-
rdfs:label "MG-ResultNotice" ;
435+
# these properties are shared among other CAN types such as DAP and cont-modif based on certain conditions
436+
tedm:MG-Notice_ND-LotResult a rr:TriplesMap ;
437+
rdfs:label "MG-Notice" ;
437438
rml:logicalSource
438439
[
439440
rml:source "data/source.xml" ;
@@ -442,26 +443,39 @@ tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
442443
] ;
443444
rr:subjectMap
444445
[
445-
rdfs:label "LotResult" ;
446+
rdfs:label "ND-LotResult" ;
446447
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_Notice" ;
447-
# these properties are shared among other CAN types such as DAP and cont-modif
448448
rr:class epo:Notice
449449
] ;
450450
rr:predicateObjectMap
451451
[
452-
rdfs:label "ND-LotResult" ;
453-
rdfs:comment "AwardDecision of MG-ResultNotice under ND-LotResult" ;
452+
rdfs:label "ND-LotResult (announcesAwardDecision)" ;
453+
rdfs:comment "AwardDecision of MG-AwardDecision-announcesAwardDecision-Notice under ND-LotResult" ;
454454
rr:predicate epo:announcesAwardDecision ;
455455
rr:objectMap
456456
[
457457
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
458458
rr:joinCondition [
459-
rr:child "path(.)" ;
460-
rr:parent "path(.)" ;
459+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'dir-awa-pre' or /*/cbc:NoticeTypeCode/@listName = 'result' or (/*/cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('25 26 27 28 29 30 31 32 33 34 35 36 37 T02', text())]))) then path(.) else null";
460+
rr:parent "path(.)" ;
461461
] ;
462462
] ;
463463
] ;
464-
.
464+
rr:predicateObjectMap
465+
[
466+
rdfs:label "ND-LotResult (refersToAwardDecision)" ;
467+
rdfs:comment "AwardDecision of MG-AwardDecision-refersToAwardDecision-Notice under ND-LotResult" ;
468+
rr:predicate epo:refersToAwardDecision ;
469+
rr:objectMap
470+
[
471+
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
472+
rr:joinCondition [
473+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'cont-modif' or /*/cbc:NoticeTypeCode/@listName = 'completion' or ( */cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('38 39 40', text())]))) then path(.) else null ";
474+
rr:parent "path(.)" ;
475+
] ;
476+
] ;
477+
] ;
478+
.
465479

466480
tedm:MG-Subcontractor-announcesRole-ResultNotice_ND-SubContractor a rr:TriplesMap ;
467481
rdfs:label "MG-Subcontractor" ;

mappings/package_eforms_sdk1.11_epo4.0/transformation/mappings/AwardDecision-can.rml.ttl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ tedm:MG-AwardDecision_ND-SettledContract a rr:TriplesMap ;
5555
.
5656

5757
# this MG is the equivalent of (hence declared as owl:sameAs below)
58-
# MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult in the CM
59-
# but here in the TM we do not need to implement that
58+
# MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult and
59+
# MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult
60+
# in the CM but here in the TM we do not need to implement that (we optimize)
6061
tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
6162
rdfs:label "MG-AwardDecision" ;
6263
rml:logicalSource
@@ -95,4 +96,5 @@ tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
9596
] ;
9697
.
9798

98-
tedm:MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
99+
tedm:MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
100+
tedm:MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .

mappings/package_eforms_sdk1.11_epo4.0/transformation/mappings/root-can.rml.ttl

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,9 @@ tedm:MG-MonetaryValue-hasApproximateFrameworkAgreementValue-NoticeAwardInformati
432432
] ;
433433
.
434434

435-
tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
436-
rdfs:label "MG-ResultNotice" ;
435+
# these properties are shared among other CAN types such as DAP and cont-modif based on certain conditions
436+
tedm:MG-Notice_ND-LotResult a rr:TriplesMap ;
437+
rdfs:label "MG-Notice" ;
437438
rml:logicalSource
438439
[
439440
rml:source "data/source.xml" ;
@@ -442,26 +443,39 @@ tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
442443
] ;
443444
rr:subjectMap
444445
[
445-
rdfs:label "LotResult" ;
446+
rdfs:label "ND-LotResult" ;
446447
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_Notice" ;
447-
# these properties are shared among other CAN types such as DAP and cont-modif
448448
rr:class epo:Notice
449449
] ;
450450
rr:predicateObjectMap
451451
[
452-
rdfs:label "ND-LotResult" ;
453-
rdfs:comment "AwardDecision of MG-ResultNotice under ND-LotResult" ;
452+
rdfs:label "ND-LotResult (announcesAwardDecision)" ;
453+
rdfs:comment "AwardDecision of MG-AwardDecision-announcesAwardDecision-Notice under ND-LotResult" ;
454454
rr:predicate epo:announcesAwardDecision ;
455455
rr:objectMap
456456
[
457457
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
458458
rr:joinCondition [
459-
rr:child "path(.)" ;
460-
rr:parent "path(.)" ;
459+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'dir-awa-pre' or /*/cbc:NoticeTypeCode/@listName = 'result' or (/*/cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('25 26 27 28 29 30 31 32 33 34 35 36 37 T02', text())]))) then path(.) else null";
460+
rr:parent "path(.)" ;
461461
] ;
462462
] ;
463463
] ;
464-
.
464+
rr:predicateObjectMap
465+
[
466+
rdfs:label "ND-LotResult (refersToAwardDecision)" ;
467+
rdfs:comment "AwardDecision of MG-AwardDecision-refersToAwardDecision-Notice under ND-LotResult" ;
468+
rr:predicate epo:refersToAwardDecision ;
469+
rr:objectMap
470+
[
471+
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
472+
rr:joinCondition [
473+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'cont-modif' or /*/cbc:NoticeTypeCode/@listName = 'completion' or ( */cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('38 39 40', text())]))) then path(.) else null ";
474+
rr:parent "path(.)" ;
475+
] ;
476+
] ;
477+
] ;
478+
.
465479

466480
tedm:MG-Subcontractor-announcesRole-ResultNotice_ND-SubContractor a rr:TriplesMap ;
467481
rdfs:label "MG-Subcontractor" ;

mappings/package_eforms_sdk1.12_epo4.0/transformation/mappings/AwardDecision-can.rml.ttl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ tedm:MG-AwardDecision_ND-SettledContract a rr:TriplesMap ;
5555
.
5656

5757
# this MG is the equivalent of (hence declared as owl:sameAs below)
58-
# MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult in the CM
59-
# but here in the TM we do not need to implement that
58+
# MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult and
59+
# MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult
60+
# in the CM but here in the TM we do not need to implement that (we optimize)
6061
tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
6162
rdfs:label "MG-AwardDecision" ;
6263
rml:logicalSource
@@ -95,4 +96,5 @@ tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
9596
] ;
9697
.
9798

98-
tedm:MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
99+
tedm:MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
100+
tedm:MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .

mappings/package_eforms_sdk1.12_epo4.0/transformation/mappings/root-can.rml.ttl

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,9 @@ tedm:MG-MonetaryValue-hasApproximateFrameworkAgreementValue-NoticeAwardInformati
432432
] ;
433433
.
434434

435-
tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
436-
rdfs:label "MG-ResultNotice" ;
435+
# these properties are shared among other CAN types such as DAP and cont-modif based on certain conditions
436+
tedm:MG-Notice_ND-LotResult a rr:TriplesMap ;
437+
rdfs:label "MG-Notice" ;
437438
rml:logicalSource
438439
[
439440
rml:source "data/source.xml" ;
@@ -442,26 +443,39 @@ tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
442443
] ;
443444
rr:subjectMap
444445
[
445-
rdfs:label "LotResult" ;
446+
rdfs:label "ND-LotResult" ;
446447
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_Notice" ;
447-
# these properties are shared among other CAN types such as DAP and cont-modif
448448
rr:class epo:Notice
449449
] ;
450450
rr:predicateObjectMap
451451
[
452-
rdfs:label "ND-LotResult" ;
453-
rdfs:comment "AwardDecision of MG-ResultNotice under ND-LotResult" ;
452+
rdfs:label "ND-LotResult (announcesAwardDecision)" ;
453+
rdfs:comment "AwardDecision of MG-AwardDecision-announcesAwardDecision-Notice under ND-LotResult" ;
454454
rr:predicate epo:announcesAwardDecision ;
455455
rr:objectMap
456456
[
457457
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
458458
rr:joinCondition [
459-
rr:child "path(.)" ;
460-
rr:parent "path(.)" ;
459+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'dir-awa-pre' or /*/cbc:NoticeTypeCode/@listName = 'result' or (/*/cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('25 26 27 28 29 30 31 32 33 34 35 36 37 T02', text())]))) then path(.) else null";
460+
rr:parent "path(.)" ;
461461
] ;
462462
] ;
463463
] ;
464-
.
464+
rr:predicateObjectMap
465+
[
466+
rdfs:label "ND-LotResult (refersToAwardDecision)" ;
467+
rdfs:comment "AwardDecision of MG-AwardDecision-refersToAwardDecision-Notice under ND-LotResult" ;
468+
rr:predicate epo:refersToAwardDecision ;
469+
rr:objectMap
470+
[
471+
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
472+
rr:joinCondition [
473+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'cont-modif' or /*/cbc:NoticeTypeCode/@listName = 'completion' or ( */cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('38 39 40', text())]))) then path(.) else null ";
474+
rr:parent "path(.)" ;
475+
] ;
476+
] ;
477+
] ;
478+
.
465479

466480
tedm:MG-Subcontractor-announcesRole-ResultNotice_ND-SubContractor a rr:TriplesMap ;
467481
rdfs:label "MG-Subcontractor" ;

mappings/package_eforms_sdk1.13_epo4.0/transformation/mappings/AwardDecision-can.rml.ttl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ tedm:MG-AwardDecision_ND-SettledContract a rr:TriplesMap ;
5555
.
5656

5757
# this MG is the equivalent of (hence declared as owl:sameAs below)
58-
# MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult in the CM
59-
# but here in the TM we do not need to implement that
58+
# MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult and
59+
# MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult
60+
# in the CM but here in the TM we do not need to implement that (we optimize)
6061
tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
6162
rdfs:label "MG-AwardDecision" ;
6263
rml:logicalSource
@@ -95,4 +96,5 @@ tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
9596
] ;
9697
.
9798

98-
tedm:MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
99+
tedm:MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
100+
tedm:MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .

mappings/package_eforms_sdk1.13_epo4.0/transformation/mappings/root-can.rml.ttl

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,9 @@ tedm:MG-MonetaryValue-hasApproximateFrameworkAgreementValue-NoticeAwardInformati
432432
] ;
433433
.
434434

435-
tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
436-
rdfs:label "MG-ResultNotice" ;
435+
# these properties are shared among other CAN types such as DAP and cont-modif based on certain conditions
436+
tedm:MG-Notice_ND-LotResult a rr:TriplesMap ;
437+
rdfs:label "MG-Notice" ;
437438
rml:logicalSource
438439
[
439440
rml:source "data/source.xml" ;
@@ -442,26 +443,39 @@ tedm:MG-ResultNotice_ND-LotResult a rr:TriplesMap ;
442443
] ;
443444
rr:subjectMap
444445
[
445-
rdfs:label "LotResult" ;
446+
rdfs:label "ND-LotResult" ;
446447
rr:template "http://data.europa.eu/a4g/resource/id_{replace(replace(/*/cbc:ID[@schemeName='notice-id'], ' ', '-' ), '/' , '-')}_Notice" ;
447-
# these properties are shared among other CAN types such as DAP and cont-modif
448448
rr:class epo:Notice
449449
] ;
450450
rr:predicateObjectMap
451451
[
452-
rdfs:label "ND-LotResult" ;
453-
rdfs:comment "AwardDecision of MG-ResultNotice under ND-LotResult" ;
452+
rdfs:label "ND-LotResult (announcesAwardDecision)" ;
453+
rdfs:comment "AwardDecision of MG-AwardDecision-announcesAwardDecision-Notice under ND-LotResult" ;
454454
rr:predicate epo:announcesAwardDecision ;
455455
rr:objectMap
456456
[
457457
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
458458
rr:joinCondition [
459-
rr:child "path(.)" ;
460-
rr:parent "path(.)" ;
459+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'dir-awa-pre' or /*/cbc:NoticeTypeCode/@listName = 'result' or (/*/cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('25 26 27 28 29 30 31 32 33 34 35 36 37 T02', text())]))) then path(.) else null";
460+
rr:parent "path(.)" ;
461461
] ;
462462
] ;
463463
] ;
464-
.
464+
rr:predicateObjectMap
465+
[
466+
rdfs:label "ND-LotResult (refersToAwardDecision)" ;
467+
rdfs:comment "AwardDecision of MG-AwardDecision-refersToAwardDecision-Notice under ND-LotResult" ;
468+
rr:predicate epo:refersToAwardDecision ;
469+
rr:objectMap
470+
[
471+
rr:parentTriplesMap tedm:MG-AwardDecision_ND-LotResult ;
472+
rr:joinCondition [
473+
rr:child "if (/*/cbc:NoticeTypeCode/@listName = 'cont-modif' or /*/cbc:NoticeTypeCode/@listName = 'completion' or ( */cbc:NoticeTypeCode/@listName = 'change' and exists(/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:NoticeSubType/cbc:SubTypeCode[contains('38 39 40', text())]))) then path(.) else null ";
474+
rr:parent "path(.)" ;
475+
] ;
476+
] ;
477+
] ;
478+
.
465479

466480
tedm:MG-Subcontractor-announcesRole-ResultNotice_ND-SubContractor a rr:TriplesMap ;
467481
rdfs:label "MG-Subcontractor" ;

mappings/package_eforms_sdk1.3_epo4.0/transformation/mappings/AwardDecision-can.rml.ttl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ tedm:MG-AwardDecision_ND-SettledContract a rr:TriplesMap ;
5555
.
5656

5757
# this MG is the equivalent of (hence declared as owl:sameAs below)
58-
# MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult in the CM
59-
# but here in the TM we do not need to implement that
58+
# MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult and
59+
# MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult
60+
# in the CM but here in the TM we do not need to implement that (we optimize)
6061
tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
6162
rdfs:label "MG-AwardDecision" ;
6263
rml:logicalSource
@@ -95,4 +96,5 @@ tedm:MG-AwardDecision_ND-LotResult a rr:TriplesMap ;
9596
] ;
9697
.
9798

98-
tedm:MG-AwardDecision-announcesAwardDecision-ResultNotice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
99+
tedm:MG-AwardDecision-announcesAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .
100+
tedm:MG-AwardDecision-refersToAwardDecision-Notice_ND-LotResult owl:sameAs tedm:MG-AwardDecision_ND-LotResult .

0 commit comments

Comments
 (0)