Skip to content

Commit 77d0836

Browse files
committed
feat: change URI scheme for identifiers in general
Technical identifiers are in the form `{notice}/Identifier/{id}` whereas general identifiers, i.e. those without a predefined fixed internal format according to the eForms SDK, [1] are in the form `{notice}/{ParentClass}/Identifier/{url-encoded-id}`. [1] https://docs.ted.europa.eu/eforms/latest/schema/identifiers.html
1 parent ed3d4ee commit 77d0836

54 files changed

Lines changed: 3023 additions & 3374 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/mappings-can/Business-can.rml.ttl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ tedm:MG-Identifier-identifier-Person_ND-UBO a rr:TriplesMap ;
113113
rr:subjectMap
114114
[
115115
rdfs:label "ND-UBO" ;
116-
rr:template "http://data.europa.eu/a4g/resource/{/*/cbc:ID[@schemeName='notice-id']}-{/*/cbc:VersionID}/BeneficialOwnerTechnicalIdentifier${replace(translate(path(), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '')}" ;
116+
rr:template "http://data.europa.eu/a4g/resource/{/*/cbc:ID[@schemeName='notice-id']}-{/*/cbc:VersionID}/Identifier/{encode-for-uri(cbc:ID)}" ;
117117
rr:class adms:Identifier
118118
] ;
119119
rr:predicateObjectMap

src/mappings-can/Contract-can.rml.ttl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ tedm:MG-Identifier-identifier-Contract_ND-SettledContract a rr:TriplesMap ;
3535
rr:subjectMap
3636
[
3737
rdfs:label "ND-SettledContract" ;
38-
rml:reference "if (exists(efac:ContractReference/cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/SettledContractIdentifier$' || replace(replace(replace(path(.), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
38+
rml:reference "if (exists(efac:ContractReference/cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Contract/Identifier/' || encode-for-uri(efac:ContractReference/cbc:ID) else null" ;
3939
rr:class adms:Identifier
4040
] ;
4141
rr:predicateObjectMap
@@ -263,7 +263,7 @@ tedm:MG-Identifier-identifier-Fund-isFundedBy-Contract_ND-ContractEUFunds a rr:T
263263
rr:subjectMap
264264
[
265265
rdfs:label "ND-ContractEUFunds" ;
266-
rml:reference "if (exists(efbc:FinancingIdentifier)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ContractFundIdentifier$' || replace(replace(replace(path(..), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
266+
rml:reference "if (exists(efbc:FinancingIdentifier)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Fund/Identifier/' || encode-for-uri(efbc:FinancingIdentifier) else null" ;
267267
rr:class adms:Identifier
268268
] ;
269269
rr:predicateObjectMap

src/mappings-can/Procedure-can.rml.ttl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ tedm:MG-Identifier-identifier-Procedure-refersToPreviousProcedure-DirectAwardTer
161161
rr:subjectMap
162162
[
163163
rdfs:label "ND-DirectAward" ;
164-
rml:reference "if (exists(cbc:Description)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Identifier/' || encode-for-uri(cbc:Description) else null" ;
164+
rml:reference "if (exists(cbc:Description)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Procedure/Identifier/' || encode-for-uri(cbc:Description) else null" ;
165165
rr:class adms:Identifier
166166
] ;
167167
rr:predicateObjectMap

src/mappings-can/ReviewObject-can.rml.ttl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ tedm:MG-Identifier-identifier-ReviewDecision_ND-ReviewStatus a rr:TriplesMap ;
7070
rr:subjectMap
7171
[
7272
rdfs:label "ND-ReviewStatus" ;
73-
rml:reference "if(efbc:AppealStageCode='dec') then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ReviewDecisionIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
73+
rml:reference "if(efbc:AppealStageCode='dec' and exists(efbc:AppealID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ReviewDecision/Identifier/' || encode-for-uri(efbc:AppealID) else null" ;
7474
rr:class adms:Identifier
7575
] ;
7676
rr:predicateObjectMap
@@ -190,7 +190,7 @@ tedm:MG-Identifier-identifier-ReviewRequest_ND-ReviewStatus a rr:TriplesMap ;
190190
[
191191
tedm:minSDKVersion "1.13" ;
192192
rdfs:label "ND-ReviewStatus" ;
193-
rml:reference "if(efbc:AppealStageCode='req') then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ReviewRequestIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
193+
rml:reference "if(efbc:AppealStageCode='req' and exists(efbc:AppealID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ReviewRequest/Identifier/' || encode-for-uri(efbc:AppealID) else null" ;
194194
rr:class adms:Identifier
195195
] ;
196196
rr:predicateObjectMap

src/mappings-can/Tender-can.rml.ttl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ tedm:MG-Identifier-identifier-Tender_ND-LotTender a rr:TriplesMap ;
3535
rr:subjectMap
3636
[
3737
rdfs:label "ND-LotTender" ;
38-
rml:reference "if (exists(efac:TenderReference/cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/TenderIdentifier$' || replace(replace(replace(path(.), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
38+
rml:reference "if (exists(efac:TenderReference/cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Tender/Identifier/' || encode-for-uri(efac:TenderReference/cbc:ID) else null" ;
3939
rr:class adms:Identifier
4040
] ;
4141
rr:predicateObjectMap

src/mappings-pin/PlannedProcurementPart-pin.rml.ttl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ tedm:MG-Identifier-identifier-PlannedProcurementPart_ND-Part a rr:TriplesMap ;
143143
rr:subjectMap
144144
[
145145
rdfs:label "ND-Part" ;
146-
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/PlannedProcurementPartIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
146+
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Identifier/' || encode-for-uri(cbc:ID) else null" ;
147147
rr:class adms:Identifier
148148
] ;
149149
rr:predicateObjectMap
@@ -178,7 +178,7 @@ tedm:MG-Identifier-hasInternalIdentifier-PlannedProcurementPart_ND-PartProcureme
178178
rr:subjectMap
179179
[
180180
rdfs:label "ND-PartProcurementScope" ;
181-
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/PlannedProcurementPartInternalIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
181+
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/PlannedProcurementPart/Identifier/' || encode-for-uri(cbc:ID) else null" ;
182182
rr:class adms:Identifier
183183
] ;
184184
rr:predicateObjectMap

src/mappings-versioned/ContractModificationInformation-can_v1.3-1.6.rml.ttl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ tedm:MG-Identifier-relatesToEFormSectionIdentifier-ContractModificationInformati
128128
rr:subjectMap
129129
[
130130
rdfs:label "ND-Modification" ;
131-
rml:reference "'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ModifiedSectionIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_')" ;
131+
rr:template "http://data.europa.eu/a4g/resource/{/*/cbc:ID[@schemeName='notice-id']}-{/*/cbc:VersionID}/ContractModificationInformation/Identifier/${encode-for-uri(.)}" ;
132132
rr:class adms:Identifier
133133
] ;
134134
rr:predicateObjectMap

src/mappings-versioned/ContractModificationInformation-can_v1.7+.rml.ttl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ tedm:MG-Identifier-relatesToEFormSectionIdentifier-ContractModificationInformati
131131
rr:subjectMap
132132
[
133133
rdfs:label "ND-ContractModification" ;
134-
rml:reference "if (exists(efbc:ChangedSectionIdentifier)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ModifiedSectionIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
134+
rml:reference "if (exists(efbc:ChangedSectionIdentifier)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ContractModificationInformation/Identifier/' || encode-for-uri(efbc:ChangedSectionIdentifier) else null" ;
135135
rr:class adms:Identifier
136136
] ;
137137
rr:predicateObjectMap

src/mappings/Lot.rml.ttl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,7 +1048,7 @@ tedm:MG-Identifier-identifier-Lot_ND-Lot a rr:TriplesMap ;
10481048
];
10491049
rr:subjectMap
10501050
[
1051-
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/LotIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
1051+
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Identifier/' || encode-for-uri(cbc:ID) else null" ;
10521052
rr:class adms:Identifier
10531053
] ;
10541054
rr:predicateObjectMap
@@ -1083,7 +1083,7 @@ tedm:MG-Identifier-hasInternalIdentifier-Lot_ND-LotProcurementScope a rr:Triples
10831083
rr:subjectMap
10841084
[
10851085
rdfs:label "ND-LotProcurementScope";
1086-
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/LotInternalIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
1086+
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Lot/Identifier/' || encode-for-uri(cbc:ID) else null" ;
10871087
rr:class adms:Identifier
10881088
] ;
10891089
rr:predicateObjectMap
@@ -2082,7 +2082,7 @@ tedm:MG-Identifier-identifier-Fund-isFundedBy-Lot_ND-Funding a rr:TriplesMap ;
20822082
rr:subjectMap
20832083
[
20842084
rdfs:label "ND-Funding";
2085-
rml:reference "if (exists(efbc:FinancingIdentifier)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/FundIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
2085+
rml:reference "if (exists(efbc:FinancingIdentifier)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Fund/Identifier/' || encode-for-uri(efbc:FinancingIdentifier) else null" ;
20862086
rr:class adms:Identifier
20872087
] ;
20882088
rr:predicateObjectMap

src/mappings/LotGroup.rml.ttl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ tedm:MG-Identifier-identifier-LotGroup_ND-LotsGroup a rr:TriplesMap ;
165165
];
166166
rr:subjectMap
167167
[
168-
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/LotsGroupIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
168+
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/Identifier/' || encode-for-uri(cbc:ID) else null" ;
169169
rr:class adms:Identifier
170170
] ;
171171
rr:predicateObjectMap
@@ -199,7 +199,7 @@ tedm:MG-Identifier-hasInternalIdentifier-LotGroup_ND-LotsGroupProcurementScope a
199199
rr:subjectMap
200200
[
201201
rdfs:label "ND-LotProcurementScope";
202-
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/LotInternalIdentifier$' || replace(replace(replace(path(), 'Q\\{[^}]+\\}', ''), '\\[([0-9]+)\\]', '$1'), '/', '_') else null" ;
202+
rml:reference "if (exists(cbc:ID)) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/LotGroup/Identifier/' || encode-for-uri(cbc:ID) else null" ;
203203
rr:class adms:Identifier
204204
] ;
205205
rr:predicateObjectMap

0 commit comments

Comments
 (0)