Skip to content

Commit a99067b

Browse files
valexandeschivmeister
authored andcommitted
feat: commit 2/3 for ContractAmendment dangling entities
1 parent 0903d2b commit a99067b

4 files changed

Lines changed: 15 additions & 9 deletions

File tree

src/mappings-can/ContractModificationInformation.rml.ttl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ tedm:MG-ContractAmendment-concernsContractAmendment-ContractModificationInformat
8181
rr:subjectMap
8282
[
8383
rdfs:label "ND-ModificationReason" ;
84-
rr:template "http://data.europa.eu/a4g/resource/{/*/cbc:ID[@schemeName='notice-id']}-{/*/cbc:VersionID}/ContractAmendment${replace(translate(path(..), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '')}" ;
84+
# Avoid creating a type-only epo:ContractAmendment proxy.
85+
# Enable ONLY when this TriplesMap also maps at least one real ContractAmendment predicate.
86+
# (When you add such predicates, replace `false()` with `exists(<source field(s)>)`.)
87+
rml:reference "if (false()) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ContractAmendment$' || replace(translate(path(..), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '') else null" ;
8588
rr:class epo-con:ContractAmendment
8689
] ;
8790
.

src/mappings-can/root-can-modif.rml.ttl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,10 @@ tedm:MG-ContractAmendment-announcesContractAmendment-ContractModificationNotice_
195195
rr:subjectMap
196196
[
197197
rdfs:label "ND-ContractModification" ;
198-
rr:template "http://data.europa.eu/a4g/resource/{/*/cbc:ID[@schemeName='notice-id']}-{/*/cbc:VersionID}/ContractAmendment${replace(translate(path(.), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '')}" ;
198+
# Avoid creating a type-only epo:ContractAmendment proxy.
199+
# Enable ONLY when this TriplesMap also maps at least one real ContractAmendment predicate.
200+
# (When you add such predicates, replace `false()` with `exists(<source field(s)>)`.)
201+
rml:reference "if (false()) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ContractAmendment$' || replace(translate(path(.), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '') else null" ;
199202
rr:class epo-con:ContractAmendment
200203
] ;
201204
.
@@ -205,7 +208,9 @@ tedm:MG-ContractAmendment_ND-ContractModification a rr:TriplesMap ;
205208
rml:logicalSource
206209
[
207210
rml:source "data/source.xml" ;
208-
rml:iterator "/*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:ContractModification/efbc:ModifiedContractIdentifier" ;
211+
# This mapping only produces a real predicate (epo:amendsContract) from SDK v1.11 onwards.
212+
# Prevent type-only ContractAmendment instances by not iterating for earlier SDKs.
213+
rml:iterator "if (xs:decimal(substring-after(/*/cbc:CustomizationID, 'eforms-sdk-')) >= 1.11) then /*/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:ContractModification/efbc:ModifiedContractIdentifier else null" ;
209214
rml:referenceFormulation ql:XPath
210215
] ;
211216
rr:subjectMap

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,10 @@ tedm:MG-ContractAmendment_ND-Modification a rr:TriplesMap ;
9797
rr:subjectMap
9898
[
9999
rdfs:label "ND-Modification" ;
100-
rr:template "http://data.europa.eu/a4g/resource/{/*/cbc:ID[@schemeName='notice-id']}-{/*/cbc:VersionID}/ContractAmendment${replace(translate(path(..), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '')}" ;
100+
# Avoid type-only epo:ContractAmendment:
101+
# In SDK v1.3-1.6 this TriplesMap only produces epo:amendsContract, and only when the changed section identifier
102+
# starts with "CON". If it doesn't, we must not instantiate the subject.
103+
rml:reference "if (exists(efbc:ChangedSectionIdentifier) and starts-with(normalize-space(efbc:ChangedSectionIdentifier), 'CON')) then 'http://data.europa.eu/a4g/resource/' || /*/cbc:ID[@schemeName='notice-id'] || '-' || /*/cbc:VersionID || '/ContractAmendment$' || replace(translate(path(..), concat(codepoints-to-string(123), codepoints-to-string(125), '/[]'), ' _'), 'Q .*? ', '') else null" ;
101104
rr:class epo-con:ContractAmendment
102105
] ;
103106
rr:predicateObjectMap

src/output-can.ttl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,6 @@
9393
a adms:Identifier;
9494
skos:notation "246561" .
9595

96-
<http://data.europa.eu/a4g/resource/126934e9-8491-4d90-954c-985afa877f18-01/ContractAmendment$_ContractAwardNotice1_UBLExtensions1_UBLExtension1_ExtensionContent1_EformsExtension1_ContractModification1>
97-
a epo:ContractAmendment .
98-
9996
<http://data.europa.eu/a4g/resource/126934e9-8491-4d90-954c-985afa877f18-01/ContractDuration$_ContractAwardNotice1_ProcurementProjectLot1_ProcurementProject1_PlannedPeriod1>
10097
a epo:SpecificDuration;
10198
time:numericDuration 17.0;
@@ -117,7 +114,6 @@
117114

118115
<http://data.europa.eu/a4g/resource/126934e9-8491-4d90-954c-985afa877f18-01/ContractModificationInformation$_ContractAwardNotice1_UBLExtensions1_UBLExtension1_ExtensionContent1_EformsExtension1_ContractModification1>
119116
a epo:ContractModificationInformation;
120-
epo:concernsContractAmendment <http://data.europa.eu/a4g/resource/126934e9-8491-4d90-954c-985afa877f18-01/ContractAmendment$_ContractAwardNotice1_UBLExtensions1_UBLExtension1_ExtensionContent1_EformsExtension1_ContractModification1>;
121117
epo:hasModificationDescription "Kooskõlas riigihangete seaduse § 123 lõike 1 punktiga 1, lõike 1 punktiga 2 ja lõike 1 punktiga 4."@et;
122118
epo:hasModificationJustification <http://publications.europa.eu/resource/authority/modification-justification/other>;
123119
epo:hasModificationReasonDescription "Muudatused läbivaatamise või täiendavate hankevõimaluste alusel ja muudatuste järele nende asjaolude tõttu, mida hoolas hankija ei suutnud ette näha."@et;
@@ -203,7 +199,6 @@ NB! Pakkujal tuleb valida „Täida andmed vormil\". Juhul kui pakkujal jääb r
203199

204200
<http://data.europa.eu/a4g/resource/126934e9-8491-4d90-954c-985afa877f18-01/Notice>
205201
a epo:ContractModificationNotice, epo:Notice, epo:Notice39;
206-
epo:announcesContractAmendment <http://data.europa.eu/a4g/resource/126934e9-8491-4d90-954c-985afa877f18-01/ContractAmendment$_ContractAwardNotice1_UBLExtensions1_UBLExtension1_ExtensionContent1_EformsExtension1_ContractModification1>;
207202
epo:hasESenderDispatchDate "2024-01-03T13:18:55.488+02:00"^^xsd:dateTime;
208203
epo:hasFormType <http://publications.europa.eu/resource/authority/form-type/cont-modif>;
209204
epo:hasNoticePublicationNumber "00005094-2024";

0 commit comments

Comments
 (0)